+=== release 0.10.36 ===
+
+2012-02-20 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ releasing 0.10.36, "Better"
+
+2012-02-20 23:19:49 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * po/ca.po:
+ * po/id.po:
+ po: update translations
+
+2012-02-17 15:08:36 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * win32/common/libgstaudio.def:
+ docs: add new audio base class API to docs and .def file
+
+2012-01-30 15:55:26 +0100 Ognyan Tonchev <ognyan@axis.com>
+
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ rtspconnection: only send new data immediately if there are no queued messages
+ Even if watch->messages->length is 0 there may still be some
+ data from a message that was only written partially at the
+ previous attempt stored in watch->write_data, so check for
+ that as well. We don't want to write data into the middle
+ of another message, which could happen when there wasn't
+ enough bandwidth.
+ https://bugzilla.gnome.org/show_bug.cgi?id=669039
+
+2012-02-16 12:19:20 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ audiodecoder: add some properties to tweak baseclass behaviour
+ ... so subclass can also rely upon never being bothered with some NULL buffer
+ it can't do any interesting with, or with any data before it received
+ any format configuration (and setup properly).
+
+2012-02-16 12:18:03 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ audioencoder: add some properties to tweak baseclass behaviour
+ ... so subclass can also rely upon never being bothered with less data
+ than it desires or with some NULL buffer it can't do any interesting with.
+
+2012-02-16 12:15:47 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: assert some more that subclass parsed frame has proper len
+
+2012-02-14 19:23:27 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: try harder to obtain a duration if we don't get one right away
+ If we don't get a duration right away, set the pipeline to playing
+ and sleep a bit, then try again. This is ugly, but the least worst
+ we can do right now. The alternative would be to make parsers etc.
+ return some bogus duration estimate even after only having pushed
+ a single frame, for example.
+ Fixes discoverer showing 0 durations for some mp3 and aac files
+ (e.g. soweto-adts.aac).
+
+2012-02-05 13:55:40 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ * win32/common/_stdint.h:
+ * win32/common/config.h:
+ 0.10.35.3 pre-release
+
+2012-02-01 15:28:45 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggstream.c:
+ * ext/ogg/gstoggstream.h:
+ oggdemux: fix granpos interpolation violating max keyframe distance
+ In case many packets fit on a page, we may not see a granpos for
+ a while, and granpos interpolation can wrap the 'frames since last
+ keyframe' part of the granpos, generating a granpos which is smaller
+ than what it should be.
+ This is fixed by detecting keyframe packets (at least for Theora),
+ and updating the last keyframe granpos from this.
+ This may still be generating potentially wrong granpos for streams
+ which have a Theora like granpos (keyframes, a max keyframe distance
+ and a count of frames since last keyframe), and which allow implicit
+ granules on packets. For these streams, a custom keyframe detection
+ routine should be plugged into their GstOggStream mapper.
+ https://bugzilla.gnome.org/show_bug.cgi?id=669164
+
+2012-02-01 16:46:13 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/vorbis/gstvorbisparse.c:
+ vorbisparse: pedantically recognize undefined headers too
+
+2012-02-01 16:32:24 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/vorbis/gstvorbisparse.c:
+ vorbisparse: fix header detection
+ It was matching non header packets.
+ This fixes various leaks, where buffers would be pushed onto a headers
+ list, but never popped.
+ Might also fix corruption as those buffers were dropped from the output
+ silently...
+ https://bugzilla.gnome.org/show_bug.cgi?id=669167
+
+2012-01-23 09:28:18 -0800 David Schleef <ds@schleef.org>
+
+ * gst-libs/gst/interfaces/propertyprobe.c:
+ propertyprobe: fix documentation
+
+2012-01-18 14:58:08 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: do not try to deactivate an inactive group
+ A group may have failed to activate due to an error (for instance,
+ having set the URI to a non existent location in about-to-finish).
+ https://bugzilla.gnome.org/show_bug.cgi?id=666395
+
+2012-01-17 16:05:41 +0200 Anssi Hannula <anssi.hannula@iki.fi>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: fix state change stall on PAUSED->READY->PAUSED
+ After a PAUSED->READY change the sink pads are currently not set to
+ blocking state. When the element is set back to PAUSED, the change will
+ be done asynchronously, but as the _pad_blocked_cb() callback is now not
+ called, the state change never completes.
+ Fix that by setting the sink pads to blocking state on a PAUSED->READY
+ change, which ensures that the _pad_blocked_cb() is called when needed
+ on any future READY->PAUSED change. The sink pads are already put to
+ blocking state on NULL->READY change, so this behavior is consistent.
+ Fixes bug #668097.
+
+2012-01-19 16:40:22 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gststreamsynchronizer.c:
+ streamsynchronizer: avoid unlikely NULL dereference
+
+2012-01-19 16:35:54 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/videoscale/vs_fill_borders.c:
+ videoscale: prevent implicit upgrade to integer type and sign extension
+
+2012-01-19 16:35:04 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tools/gst-discoverer.c:
+ gst-discoverer: remove extraneous variable
+
+2012-01-19 16:32:37 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: verify linking to overlay element
+
+2012-01-19 16:32:05 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: avoid finding sink in NULL bin in corner case
+
+2012-01-19 16:29:53 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstexiftag.c:
+ tag: exif: add missing break
+
+2012-01-17 18:19:30 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: initialize variable
+ ... to help out challenged compiler.
+
+2012-01-16 11:43:25 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/alsa/gstalsasink.c:
+ alsasink: fix high sample rates being rejected
+ An ALSA sink may select a different rate (as we use the _set_rate_near
+ API, which is not guaranteed to set the exact target rate).
+ The rest of the code seems to already handle this well, as output
+ from a 88200 Hz file seems to have the correct pitch when selecting
+ a 96 kHz rate.
+
+2012-01-16 11:40:47 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/alsa/gstalsasink.c:
+ alsasink: fix rate match message mistaking error code for sample rate
+
+2012-01-13 16:57:15 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+ * Android.mk:
+ Android, Add explicit path for zlib
+ This change fixes building gst-libs/gst/tag/ code with
+ the Android buildsystem.
+
+2012-01-13 14:50:49 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+ * ext/vorbis/gstvorbisdec.c:
+ Fix wrong access to undefined struct member
+ For the USE_TREMOLO case, GstVorbisDec doesn't have
+ a vb member. Besides, Tremolo's vorbis_dsp_synthesis()
+ expects a vorbis_dsp_state to be passed as first
+ argument. Not a vorbis_block.
+
+2012-01-13 14:47:13 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+ * ext/vorbis/gstvorbisdec.c:
+ Fix TREMELO -> TREMOLO typo
+
+2012-01-12 16:24:01 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraparse.c:
+ theoraparse: fix array leak
+
+2012-01-12 14:26:05 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: fix structure leak
+ I hit the 'misc' one, but let's also make sure the topology
+ one get freed as well, though I do not know if this can happen
+ twice.
+
+2012-01-11 20:47:00 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+ * gst-libs/gst/video/Makefile.am:
+ Add missing DEFAULT_INCLUDES on androgenizer call
+ Fix building of the libgstvideo module on Android by adding the
+ missing and needed $(DEFAULT_INCLUDES) to CFLAGS for the
+ androgenizer call on gst-libs/gst/video/Makefile.am
+ Before this change, building was failing due to gst-plugins-base/
+ and gst-plugins-base/gst-libs/gst/video being left out of the
+ include path.
+
+2012-01-11 16:17:42 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: fix push mode chain leak
+ When I first implemented push mode seeking, I removed the chain
+ freeing there as it could be used later. The current code does not
+ seem to do that though, so I'm restoring the previous freeing,
+ which plugs the leak while apparently not reintroducing use of
+ freed data with chained and normal files, both with gst-launch
+ playbin2 and Totem.
+
+2012-01-11 12:52:17 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+ discoverer: fix leaks caused by some base class dtors not being called
+
+2012-01-11 12:16:28 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: fix caps and discoverer object ref leaks
+
+2012-01-11 11:55:59 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: add a few consts where appropriate
+
+2012-01-11 11:55:36 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: fix pad leak
+
+2012-01-10 18:27:19 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: use GST_TYPE_TAG_LIST for tag lists
+ They may not be structures in 0.11/1.0.
+
+2012-01-10 18:07:19 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: fix potential tag list leaks
+ Not that I have ever seen these in practice, but if they
+ can't happen we may just as well just assign the new tag
+ list. Merge properly to be on the safe side, and also
+ avoid a useless tag list copy in the normal case where
+ there is no tag list yet.
+
+2012-01-10 17:48:44 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: fix potential caps leak
+ in last else chunk.
+
+2012-01-10 16:57:04 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: fix tag list leak
+
+2012-01-10 16:51:09 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: fix pad leak
+
+2012-01-10 16:14:29 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: fix hang on small truncated files
+ A first hang was happening when trying to locate a page backwards,
+ where we'd sync forever on the same page.
+ With that fixed, a second hang would happen after preparing an EOS
+ event, but with no chain created yet to send it to, the pipeline
+ would stay idle forever.
+ An element error is now emitted for this case.
+
+2012-01-09 12:31:02 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gstplay-enum.h:
+ playback: document DEINTERLACE flag
+
+2011-12-16 15:27:24 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: assume live stream if byte size cannot be determined
+ This prevents trying to seek and failing, then ending up unable
+ to stream because we can't get back at the headers.
+ A more robust way would be to find a good place to reinject the
+ headers when a seek fails, but I can't seem to get this to work.
+
+2012-01-07 20:12:17 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ rtspconnection: make hostname lookup more thread-safe
+ Don't write IP number string to return into a static
+ array which is shared amongst all threads (note: of
+ course a copy is returned).
+ https://bugzilla.gnome.org/show_bug.cgi?id=666711
+
+2012-01-07 19:39:42 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: make is_subtitle_caps thread-safe
+
+2011-11-01 17:57:59 +0100 Havard Graff <havard.graff@tandberg.com>
+
+ * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+ * gst-libs/gst/tag/tags.c:
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ * gst/encoding/gstsmartencoder.c:
+ * gst/playback/gstplaysink.c:
+ * tools/gst-discoverer.c:
+ Fix various unlikely, but still potential memoryleaks in error code paths
+ https://bugzilla.gnome.org/show_bug.cgi?id=667311
+
+2011-10-22 16:41:23 +0200 Havard Graff <havard.graff@tandberg.com>
+
+ * gst-libs/gst/app/gstappsrc.c:
+ appsrc: implement get_caps vfunc
+ This allows downstream elements to query what caps are available.
+ https://bugzilla.gnome.org/show_bug.cgi?id=667312
+
+2012-01-05 12:23:08 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tools/gst-discoverer.c:
+ tools: avoid unportable vararg macro construct in gst-discoverer
+ https://bugzilla.gnome.org/show_bug.cgi?id=667306
+
+2012-01-01 20:44:08 +0100 Idar Tollefsen <itollefs@cisco.com>
+
+ * configure.ac:
+ build: Run platform check for platform specific configuration.
+
+2011-10-12 11:28:10 +0200 Pascal Buhler <pabuhler@cisco.com>
+
+ * gst-libs/gst/rtp/gstrtcpbuffer.c:
+ rtcpbuffer: prevent overflow of 16bit header length.
+ RTCP header can be (2^16 + 1) * 4 bytes long, so when validating a bogus
+ packet it was possible to get a 16bit overflow resulting in a length of 0.
+ This would put the gst_rtcp_buffer_validate_data function in a endless loop.
+ https://bugzilla.gnome.org/show_bug.cgi?id=667313
+
+2011-09-24 14:05:42 +0200 Havard Graff <havard.graff@tandberg.com>
+
+ * gst/videotestsrc/videotestsrc.c:
+ videotestsrc: keep the calculation fixed-point
+ https://bugzilla.gnome.org/show_bug.cgi?id=667315
+
+2011-08-04 11:30:05 +0200 Idar Tollefsen <itollefs@cisco.com>
+
+ * ext/pango/gstclockoverlay.c:
+ * ext/pango/gsttimeoverlay.c:
+ pango: changes includes from brackets to quotes for local files
+ https://bugzilla.gnome.org/show_bug.cgi?id=667316
+
+2012-01-04 19:39:28 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From 63d592e to cb5da59
+
+2012-01-03 11:04:23 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gststreamsynchronizer.c:
+ streamsynchronizer: force fallback buffer_alloc when other pad not available
+ ... to avoid unnecessary spurious errors (upon e.g. shutdown).
+ If a real error is applicable in this unusual circumstance (missing other pad),
+ other (STREAM_LOCK protected) call paths can take care of that.
+
+2012-01-03 11:02:17 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gststreamsynchronizer.c:
+ streamsynchronizer: avoid crashing when operating on released pad
+
+2011-12-27 14:37:26 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: fix leak when initializing pads
+ Pads are initialized twice: when requesting pads and when
+ initializing collectpads. Avoid double initialization by
+ checking if collectpads are still going to be initialized when
+ creating request pads.
+
+2011-12-23 22:51:59 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: fix template caps creation on big endian systems
+
+2011-12-23 22:24:44 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstexiftag.c:
+ * tests/check/libs/tag.c:
+ tag: fix writing of Exif tag payloads <= 4 bytes
+ When the payload for an Exif tag is less than or equal to 4 bytes,
+ the data is simply put into the offset field. Fix writing these
+ kinds of payloads on big endian systems (and possibly also on
+ little endian systems). The caller will have already formatted
+ the bytes in memory according to the writer's endianness, so just
+ write out the bytes as they are in this case. Fixes tags unit test
+ on big endian systems.
+
+2011-12-22 16:54:18 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: add a few more debug statements
+
+2011-12-22 16:53:49 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ audiodecoder: tweak documentation
+
+2011-12-22 07:53:39 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ * tests/check/libs/tag.c:
+ tag: xmp: Keep compatibility with our old generated xmp
+ We used to add a trailing \n to the end of generated xmp packets.
+ Windows viewer was unhappy with it and we fixed it in
+ 96d2120c2bb0b29e1849098198f5fbef81939cdd
+ The problem is that this caused xmp generated before this fix
+ to not be recognized and parsed anymore. This patch makes it
+ recognize xmp with the trailing \n and without, fixing the
+ regression. Also adds tests for it.
+
+2011-12-14 16:34:39 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/video/video-blend.c:
+ gstvideo: fix a RGB ordering mixup in colorspace conversion code
+
+2011-12-20 12:42:18 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ audiodecoder: set a non-zero default maximum tolerated errors
+ Whereas the previous default 0 was backwards compatible in that it lead
+ to erroring out immediately upon any error, elements that are really
+ ported and using the base class error macro can be assumed to intend to
+ improve behaviour rather than maintaining the old one. So, make it easy
+ on those and any future one and tolerate some errors by default, as intended.
+ Fixes #666579.
+
+2011-12-15 11:01:01 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst-libs/gst/tag/gstexiftag.c:
+ tag: exif: do not include \0 in size passed to g_convert
+ When using g_convert, we should only pass the length
+ of the string content (without the \0) as g_convert will
+ only parse the real contents when changing formats. Including
+ the \0 causes it to add another \0, increasing the string
+ size when not needed.
+ For example, when writting a North geo location ref entry, that should
+ be a string with a single N letter, it would write:
+ "N\0\0", causing the string to have size 3, instead of 2 as expected.
+ In our case, we can pass -1 and let g_convert calculate the strlen as
+ we don't use the length anywhere else.
+ This fixes jifmux's tests on gst-plugins-bad.
+
+2011-10-03 14:51:56 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: tweak chain topology description
+ ... to also properly indicate chain's endpad if no elements are in the
+ chain (due to the endpad being a raw demuxer pad, or one setup without
+ decoders since uridecodebin or higher up decided not to need those).
+
+2011-12-13 12:55:45 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: fix late buffer leak
+
+2011-12-12 11:54:56 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/glib-compat-private.h:
+ glib-compat: Add license boilerplate for LGPL
+
+2011-12-10 02:08:49 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ * win32/common/_stdint.h:
+ * win32/common/audio-enumtypes.c:
+ * win32/common/config.h:
+ * win32/common/gstrtsp-enumtypes.c:
+ 0.10.35.2 pre-release
+
+2011-12-10 01:36:14 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * po/LINGUAS:
+ * po/cs.po:
+ * po/eo.po:
+ * po/es.po:
+ * po/gl.po:
+ * po/lv.po:
+ * po/sr.po:
+ po: update translations
+
+2011-12-09 15:39:12 +0000 Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+ * gst-plugins-base.spec.in:
+ Add latest header file to spec file
+
+2011-12-09 01:31:20 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefindfunctions: only typefind text with a BOM as text/utf16 or text/utf32
+ We added the utf typefinder because the mp3 typefinder was a tad
+ overzealous when it came to typefinding things as mp3, and replaced
+ it with even more overzealous utf16/32 typefinders.
+ Fixes unit test.
+
+2011-12-07 18:45:28 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/video-overlay-composition.c:
+ * gst-libs/gst/video/video-overlay-composition.h:
+ video: make composition_blend() return a boolean
+ Not that anyone will ever check that, and it's not clear what
+ they're supposed to do if it fails, but at least it's there.
+
+2011-12-07 18:31:58 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/video/video-overlay-composition.c:
+ * gst-libs/gst/video/video-overlay-composition.h:
+ docs: add new API to docs
+
+2011-12-07 17:57:08 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/video-overlay-composition.c:
+ * gst-libs/gst/video/video-overlay-composition.h:
+ * tests/check/libs/video.c:
+ * win32/common/libgstvideo.def:
+ video: add seqnum getters for overlay compositions and rectangles
+ API: gst_video_overlay_composition_get_seqnum()
+ API: gst_video_overlay_rectangle_get_seqnum()
+
+2011-11-23 15:45:57 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * gst-libs/gst/video/video.c:
+ video: support any type of video in _parse_caps
+ Slight change in semantics for convenience. Shouldn't cause any
+ problems since this function is usually only used on pre-filtered
+ caps and not random caps, and it's hard to imagine a situation
+ where someone would want to rely on the previous behaviour.
+
+2011-12-06 21:57:32 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ videorate: don't leak previous buffer when shutting down
+ Implement stop vfunc after port to basetransform, so we
+ can clean up properly. Fixes make elements/videorate.valgrind
+
+2011-12-06 20:30:55 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/libs/video.c:
+ tests: fix calculation of last pixel offset in video unit test
+ And check the right buffer (pix2) in one case.
+
+2011-12-06 15:01:05 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/examples/fft/Makefile.am:
+ examples: fix build of fft example
+ Should link against our own libgstfft-0.10.
+
+2011-12-06 14:55:38 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/video.c:
+ video: fix leak in gst_video_format_new_template_caps()
+ g_value_reset() is not the same as g_value_unset()
+
+2011-11-23 15:43:46 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: add suport for hardware accelerated videos
+ Don't plug converters for non-raw video.
+
+2011-12-05 15:48:07 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/video-overlay-composition.c:
+ video: don't use deprecated GStaticMutex with newer glib versions
+
+2011-12-05 15:34:42 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/examples/Makefile.am:
+ examples: dist fft sub-directory
+
+2011-11-28 10:05:50 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: unpremultiply text image
+ The GstVideoOverlayComposition only supports unpremultiplied ARGB
+ (for now anyway, support for pre-multiplied alpha is planned.)
+
+2011-11-23 12:49:02 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * ext/pango/gsttextoverlay.c:
+ * ext/pango/gsttextoverlay.h:
+ textoverlay: Attach OverlayComposition to buffers when needed
+ Add video/x-surface support in the caps
+ We should then attach it whenever the sink supports it, but this
+ is working for the time being
+
+2011-11-18 13:22:52 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * ext/pango/gsttextoverlay.c:
+ * ext/pango/gsttextoverlay.h:
+ textoverlay: Make the text_image data a buffer
+ This way we won't free data that would be attached to some buffer.
+
+2011-11-18 11:04:47 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: Sync the caps with the new supported formats
+ Thanks to the use of the new video composition library, we gain support to
+ more colospaces and formats, let's state it.
+
+2011-11-16 17:54:43 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * ext/pango/gsttextoverlay.c:
+ * ext/pango/gsttextoverlay.h:
+ textoverlay: Make use of the new video blending utility
+
+2011-11-25 16:46:09 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/libs/video.c:
+ tests: add basic unit test for video overlay composition and rectangles
+
+2011-11-12 14:59:35 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/Makefile.am:
+ * gst-libs/gst/video/video-overlay-composition.c:
+ * gst-libs/gst/video/video-overlay-composition.h:
+ * win32/common/libgstvideo.def:
+ video: add video overlay composition API for subtitles
+ Basic API to attach overlay rectangles to buffers,
+ or blend them directly onto raw video buffers.
+ To be used primarily for things like subtitles or
+ logo overlays, not meant to replace videomixer.
+ Allows us to associate subtitle overlays with
+ non-raw video surface buffers, so that subtitles
+ are not lost and can instead be rendered later
+ when those surfaces are displayed or converted,
+ whilst re-using all the existing overlay plugins
+ and not having to teach them about our special
+ video surfaces. Could also have been made part
+ of the surface buffer abstraction of course, but
+ a secondary goal was to consolidate the blending
+ code for raw video into libgstvideo, and this
+ kind of API allows us to do both in a way that's
+ minimally invasive to existing elements, and at
+ the same time is fairly intuitive.
+ More features and extensions like the ability to
+ pass the source data or text/markup directly will
+ be added later.
+ https://bugzilla.gnome.org/show_bug.cgi?id=665080
+ API: gst_video_buffer_get_overlay_composition()
+ API: gst_video_buffer_set_overlay_composition()
+ API: gst_video_overlay_composition_new()
+ API: gst_video_overlay_composition_add_rectangle()
+ API: gst_video_overlay_composition_n_rectangles()
+ API: gst_video_overlay_composition_get_rectangle()
+ API: gst_video_overlay_composition_make_writable()
+ API: gst_video_overlay_composition_copy()
+ API: gst_video_overlay_composition_ref()
+ API: gst_video_overlay_composition_unref()
+ API: gst_video_overlay_composition_blend()
+ API: gst_video_overlay_rectangle_new_argb()
+ API: gst_video_overlay_rectangle_get_pixels_argb()
+ API: gst_video_overlay_rectangle_get_pixels_unscaled_argb()
+ API: gst_video_overlay_rectangle_get_render_rectangle()
+ API: gst_video_overlay_rectangle_set_render_rectangle()
+ API: gst_video_overlay_rectangle_copy()
+ API: gst_video_overlay_rectangle_ref()
+ API: gst_video_overlay_rectangle_unref()
+
+2011-11-23 00:31:18 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/Makefile.am:
+ * gst-libs/gst/video/video-blend.h:
+ video: hide private video-blend.[ch] from gobject-introspection
+ And remove unused fields from helper structure.
+
+2011-11-15 18:00:00 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/videoblendorc-dist.c:
+ * gst-libs/gst/video/videoblendorc-dist.h:
+ video: add fallbacks for compilation without orc
+
+2011-10-17 17:25:11 +0200 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * gst-libs/gst/video/.gitignore:
+ * gst-libs/gst/video/Makefile.am:
+ * gst-libs/gst/video/video-blend.c:
+ * gst-libs/gst/video/video-blend.h:
+ * gst-libs/gst/video/videoblendorc.orc:
+ video: add some internal helper functions for image blending
+ This could be improved if we decide we don't need it to
+ be this generic/flexible.
+
+2011-12-05 09:38:33 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/interfaces/xoverlay.c:
+ xoverlay: Fix mistakes in the sample code
+ Fixes bug #665430.
+
+2011-12-04 20:50:25 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsamixer.c:
+ * ext/ogg/gstoggdemux.c:
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ * gst/playback/gstdecodebin.c:
+ * gst/playback/gstdecodebin2.c:
+ * gst/playback/gstplaybin2.c:
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gststreamsynchronizer.c:
+ * gst/tcp/gstmultifdsink.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-04 20:38:19 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsamixer.c:
+ * ext/alsa/gstalsamixer.h:
+ alsamixer: use GRectMutext instead of GStaticRecMutex with newer glib versions
+
+2011-12-04 20:21:26 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsamixer.c:
+ * ext/alsa/gstalsamixer.h:
+ alsamixer: embed static mutexes into the mixer structure
+ instead of allocating them dynamically
+
+2011-12-04 17:02:39 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/examples/encoding/encoding.c:
+ * tests/examples/overlay/gtk-xoverlay.c:
+ * tests/examples/overlay/qt-xoverlay.cpp:
+ * tests/examples/seek/jsseek.c:
+ * tests/examples/seek/scrubby.c:
+ * tests/examples/seek/seek.c:
+ * tests/icles/stress-playbin.c:
+ * tests/icles/test-colorkey.c:
+ * tests/icles/test-xoverlay.c:
+ * tools/gst-discoverer.c:
+ tools, tests: g_thread_init() is deprecated in glib master
+ It's not needed any longer.
+
+2011-12-04 16:43:38 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsadeviceprobe.c:
+ * ext/alsa/gstalsamixer.c:
+ * ext/alsa/gstalsasink.c:
+ * ext/alsa/gstalsasrc.c:
+ * ext/ogg/gstoggdemux.c:
+ * ext/pango/gsttextoverlay.c:
+ * gst-libs/gst/Makefile.am:
+ * gst-libs/gst/app/gstappsink.c:
+ * gst-libs/gst/app/gstappsrc.c:
+ * gst-libs/gst/audio/gstaudiosink.c:
+ * gst-libs/gst/audio/gstaudiosrc.c:
+ * gst-libs/gst/audio/gstringbuffer.c:
+ * gst-libs/gst/glib-compat-private.h:
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ * gst-libs/gst/video/convertframe.c:
+ * gst/encoding/gststreamcombiner.c:
+ * gst/encoding/gststreamsplitter.c:
+ * gst/playback/gstdecodebin.c:
+ * gst/playback/gstdecodebin2.c:
+ * gst/playback/gstplaybasebin.c:
+ * gst/playback/gstplaybin2.c:
+ * gst/playback/gstplaysinkconvertbin.c:
+ * gst/playback/gststreamsynchronizer.c:
+ * gst/playback/gstsubtitleoverlay.c:
+ * gst/playback/gsturidecodebin.c:
+ * gst/tcp/gstmultifdsink.c:
+ * sys/ximage/ximagesink.c:
+ * sys/xvimage/xvimagesink.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.
+ Replace g_thread_create() with g_thread_try_new().
+
+2011-12-04 15:23:21 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/xmpwriter.c:
+ xmpwriter: update for thread API deprecations in glib master
+
+2011-12-04 13:43:06 +0100 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/examples/fft/Makefile.am:
+ fft-example: re-add Makefile.am
+
+2011-12-02 23:35:50 +0100 Stefan Sauer <ensonic@users.sf.net>
+
+ * configure.ac:
+ configure: trim trailing whitespace
+
+2011-12-02 23:34:47 +0100 Stefan Sauer <ensonic@users.sf.net>
+
+ * configure.ac:
+ * tests/examples/Makefile.am:
+ * tests/examples/fft/.gitignore:
+ * tests/examples/fft/fftrange.c:
+ tests: add a test for fft result value-ranges
+ Add a small example that uses ffts of various types and parameters and check the
+ result value ranges.
+
+2011-09-13 21:10:43 +0200 Piotr Fusik <fox@scene.pl>
+
+ * docs/design/design-audiosinks.txt:
+ * docs/design/design-decodebin.txt:
+ * docs/design/design-encoding.txt:
+ * docs/design/design-orc-integration.txt:
+ * docs/design/draft-keyframe-force.txt:
+ * docs/design/draft-va.txt:
+ * ext/alsa/gstalsamixer.c:
+ * ext/libvisual/visual.c:
+ * ext/ogg/README:
+ * ext/ogg/gstoggdemux.c:
+ * ext/theora/gsttheoradec.c:
+ * ext/theora/gsttheoradec.h:
+ * ext/theora/gsttheoraparse.c:
+ * ext/vorbis/gstvorbisdec.c:
+ * gst-libs/gst/app/gstappsink.c:
+ * gst-libs/gst/app/gstappsrc.c:
+ * gst-libs/gst/app/gstappsrc.h:
+ * gst-libs/gst/audio/audio.c:
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ * gst-libs/gst/audio/gstbaseaudiosrc.c:
+ * gst-libs/gst/audio/gstringbuffer.c:
+ * gst-libs/gst/audio/multichannel.h:
+ * gst-libs/gst/fft/gstfftf32.c:
+ * gst-libs/gst/fft/gstfftf64.c:
+ * gst-libs/gst/fft/gstffts16.c:
+ * gst-libs/gst/fft/gstffts32.c:
+ * gst-libs/gst/interfaces/navigation.c:
+ * gst-libs/gst/interfaces/xoverlay.c:
+ * gst-libs/gst/netbuffer/gstnetbuffer.c:
+ * gst-libs/gst/pbutils/descriptions.c:
+ * gst-libs/gst/pbutils/encoding-profile.c:
+ * gst-libs/gst/pbutils/encoding-target.h:
+ * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ * gst-libs/gst/rtp/gstbasertpaudiopayload.c:
+ * gst-libs/gst/rtp/gstrtcpbuffer.c:
+ * gst-libs/gst/rtp/gstrtpbuffer.c:
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ * gst-libs/gst/rtsp/gstrtsprange.c:
+ * gst-libs/gst/tag/gstexiftag.c:
+ * gst-libs/gst/tag/gstvorbistag.c:
+ * gst-libs/gst/tag/gstxmptag.c:
+ * gst-libs/gst/tag/id3v2.3.0.txt:
+ * gst-libs/gst/tag/id3v2.4.0-frames.txt:
+ * gst-libs/gst/tag/id3v2.4.0-structure.txt:
+ * gst/adder/gstadder.c:
+ * gst/audioconvert/audioconvert.c:
+ * gst/audiorate/gstaudiorate.c:
+ * gst/audioresample/gstaudioresample.c:
+ * gst/audioresample/resample.c:
+ * gst/encoding/gststreamsplitter.c:
+ * gst/ffmpegcolorspace/avcodec.h:
+ * gst/ffmpegcolorspace/gstffmpegcodecmap.c:
+ * gst/ffmpegcolorspace/imgconvert.c:
+ * gst/ffmpegcolorspace/imgconvert_template.h:
+ * gst/ffmpegcolorspace/mem.c:
+ * gst/playback/README:
+ * gst/playback/gstdecodebin.c:
+ * gst/playback/gstdecodebin2.c:
+ * gst/playback/gstplaybasebin.c:
+ * gst/playback/gstplaybasebin.h:
+ * gst/playback/gstplaybin.c:
+ * gst/playback/gstplaybin2.c:
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gsturidecodebin.c:
+ * gst/tcp/gstmultifdsink.c:
+ * gst/tcp/gsttcp.c:
+ * gst/typefind/gsttypefindfunctions.c:
+ * gst/videotestsrc/gstvideotestsrc.c:
+ * m4/freetype2.m4:
+ * sys/v4l/v4lmjpegsrc_calls.c:
+ * sys/v4l/videodev_mjpeg.h:
+ * sys/ximage/ximagesink.c:
+ * sys/xvimage/xvimagesink.c:
+ * sys/xvimage/xvimagesink.h:
+ * tests/check/elements/adder.c:
+ * tests/check/elements/audioresample.c:
+ * tests/check/elements/gnomevfssink.c:
+ * tests/check/elements/textoverlay.c:
+ * tests/examples/encoding/encoding.c:
+ various: typo fixes
+ Fix typos in code and docs. Fixes. #658984
+
+2011-12-01 11:59:17 +0100 Stefan Sauer <ensonic@users.sf.net>
+
+ * gst/adder/gstadder.c:
+ adder: be more graceful in the clipfunction
+ Doing dynamic pipelines is hard in 0.10. As we don't have the sticky events in
+ 0.10 and sending such events in special elements like adder and tee was outvoted
+ on last attempt, be graceful to the misbehaviour instead.
+
+2011-12-01 01:22:19 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/elements/audioresample.c:
+ tests: fix caps leak in audioresample tests
+
+2011-12-01 01:07:26 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/pipelines/basetime.c:
+ tests: fix memory leak in basetime test
+
+2011-11-30 23:58:19 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: tone down debug message about file URIs with spaces
+ Complain a bit less loudly about URIs that have not been
+ escaped properly.
+
+2011-11-30 23:15:35 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ * ext/alsa/gstalsasrc.h:
+ Revert "alsasrc: Improve timestamp accuracy"
+ This reverts commit 0b774e0b7cf7a8ef1780fb6100228ca6e8ca8bcf.
+
+2011-11-30 23:15:22 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ Revert "alsasrc: Fix some compilation errors"
+ This reverts commit 2b84f5bd74ddb50f7832917ea8b4dd38d005631b.
+
+2011-11-30 23:15:12 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ Revert "alsa: Remove unused but set variable"
+ This reverts commit e9aed7f31c7e9e415f733e147140ce3ef2f57a61.
+
+2011-11-30 23:15:03 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ * ext/alsa/gstalsasrc.h:
+ Revert "alsasrc: fail gracefully when ALSA does not give timestamps"
+ This reverts commit c7282a5718c7f31f84fb31b2c38fab0f9a38e2b0.
+
+2011-11-30 23:14:54 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ Revert "alsasrc: handle the case where the drivers don't supply timestamps"
+ This reverts commit 8154b69112cdc4830cd6002ec6c1f2917d30437b.
+
+2011-11-28 10:55:39 +0100 Stefan Sauer <ensonic@google.com>
+
+ * ext/alsa/gstalsasrc.c:
+ Revert "alsasrc: style fix"
+ This reverts commit f70ca6d4cbfd2b672dcc7215814bf6b39ce2c3f8.
+
+2011-11-30 14:25:11 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Don't send undefined NEWSEGMENT events to the internal elements
+ This happens when the internal elements are added before any NEWSEGMENT
+ event arrived and in that case we shouldn't send a NEWSEGMENT event
+ to the internal elements at all. They will get the NEWSEGMENT event
+ from upstream later.
+
+2011-11-29 14:15:45 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Fix decoder-sink compatibility check for raw audio/video formats
+ If the sink supports raw audio/video, we first check
+ if the decoder could output any raw audio/video format
+ and assume it is compatible with the sink then. We don't
+ do a complete compatibility check here if converters
+ are plugged between the decoder and the sink because
+ the converters will convert between raw formats and
+ even if the decoder format is not supported by the decoder
+ a converter will convert it.
+ We assume here that the converters can convert between
+ any raw format.
+ Fixes bug #665120.
+
+2011-11-29 09:11:21 +0100 Alessandro Decina <alessandro.d@gmail.com>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: fix compiler warning
+
+2011-11-29 08:49:53 +0100 Alessandro Decina <alessandro.d@gmail.com>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ * win32/common/libgstvideo.def:
+ libgstvideo: minor fixes to key unit events
+ Make out args to gst_video_event_parse_{downstream|upstream}_force_key_unit
+ optional, update libgstvideo.def and fix docs a bit.
+ API: gst_video_event_new_upstream_force_key_unit
+ API: gst_video_event_new_downstream_force_key_unit
+ API: gst_video_event_is_force_key_unit
+ API: gst_video_event_parse_upstream_force_key_unit
+ API: gst_video_event_parse_downstream_force_key_unit
+ https://bugzilla.gnome.org/show_bug.cgi?id=607742
+
+2011-06-05 01:49:38 +0200 Andoni Morales Alastruey <ylatuya@gmail.com>
+
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ libgstvideo: Add force key unit events
+
+2011-11-28 20:11:09 +0100 Philippe Normand <philn@igalia.com>
+
+ * gst-libs/gst/fft/gstfft.h:
+ * gst-libs/gst/fft/gstfftf32.h:
+ * gst-libs/gst/fft/gstfftf64.h:
+ * gst-libs/gst/fft/gstffts16.h:
+ * gst-libs/gst/fft/gstffts32.h:
+ fft: Bracket public headers
+ This is especially needed if the gstfftw library is used from C++
+ code.
+ Fixes #665074
+
+2011-11-28 20:10:18 +0100 Philippe Normand <phil@base-art.net>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefindfunctions: Fix compiler warning
+
+2011-11-28 19:03:50 +0100 Alexey Fisher <bug-track@fisher-privat.net>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefind: fix build error
+ fix build errors:
+ gsttypefindfunctions.c:248:25: error: 'low' may be used uninitialized in this function [-Werror=uninitialized]
+ gsttypefindfunctions.c:239:24: error: 'high' may be used uninitialized in this function [-Werror=uninitialized]
+ Signed-off-by: Alexey Fisher <bug-track@fisher-privat.net>
+
+2011-11-28 19:06:57 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Fix stupid mistake in last commit
+
+2011-11-28 19:03:54 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Only return the converter caps if we actually have raw caps
+ Fixes bug #664818 (hopefully).
+
+2011-11-28 17:59:32 +0100 Kipp Cannon <kcannon@cita.utoronto.ca>
+
+ * gst/audioresample/gstaudioresample.c:
+ audioresample: Don't emit DISCONT buffers if no discontinuity happened
+ audioresample is derived from GstBaseTransform, and one of
+ GstBaseTransform's traits is that if the derived element does not
+ produce an output buffer from some input buffer then the first output
+ buffer after that gets flaged as a discontinuity, whether or not the
+ buffer actually is discontinuous from the output buffer that preceded
+ it. When downsampling, the audioresample element requires more than
+ one input sample for each output sample, and if the ratio of input to
+ output sample rates is high enough and the input buffers short enough
+ it can come to pass that the resampler does not receive enough samples
+ on its input to produce any output. Currently the resampler returns
+ GST_BASE_TRANSFORM_FLOW_DROPPED from the transform() method in this case,
+ causing the next buffer to be flagged as a discontinuity. If subsequent
+ elements in the pipeline reset themselves on disconts, this can cause
+ clicks and other undesireable behaviour.
+ Fixes bug #665004.
+
+2011-09-30 20:00:50 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/typefind/Makefile.am:
+ * gst/typefind/gsttypefindfunctions.c:
+ typefind: typefind UTF-16 and UTF-32
+ This avoids the MP3 typefinder from getting the highest score
+ every time it thinks there's something it might possibly be
+ able to parse.
+ https://bugzilla.gnome.org/show_bug.cgi?id=607619
+
+2011-11-28 13:27:29 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ * ext/theora/gsttheoradec.h:
+ Revert "theoradec: move the QoS logic to libgstvideo"
+ This reverts commit 149a4ce390a78e21309b210f7daba9db5d42afe6.
+ *grumble* I managed to merge something I did not mean to.
+
+2011-11-28 13:26:53 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ * win32/common/libgstvideo.def:
+ Revert "libgstvideo: add a new API to handle QoS events and dropping logic"
+ This reverts commit eb03323fb683e06ed8e7f557037f13252f150c25.
+ *grumble* I managed to merge something I did not mean to.
+
+2011-11-28 12:51:22 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/alsa/gstalsasink.c:
+ * ext/alsa/gstalsasrc.c:
+ * ext/gio/gstgiobasesink.c:
+ * ext/gio/gstgiobasesrc.c:
+ * ext/gnomevfs/gstgnomevfssink.c:
+ * ext/gnomevfs/gstgnomevfssrc.c:
+ * ext/libvisual/visual.c:
+ * ext/ogg/gstoggaviparse.c:
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggparse.c:
+ * ext/ogg/gstogmparse.c:
+ * ext/pango/gsttextoverlay.c:
+ * ext/pango/gsttextrender.c:
+ * ext/theora/gsttheoradec.c:
+ * ext/theora/gsttheoraenc.c:
+ * ext/theora/gsttheoraparse.c:
+ * ext/vorbis/gstvorbisdec.c:
+ * ext/vorbis/gstvorbisenc.c:
+ * ext/vorbis/gstvorbisparse.c:
+ * gst-libs/gst/app/gstappsink.c:
+ * gst-libs/gst/app/gstappsrc.c:
+ * gst-libs/gst/cdda/gstcddabasesrc.c:
+ * gst-libs/gst/tag/gsttagdemux.c:
+ * gst/adder/gstadder.c:
+ * gst/audioconvert/gstaudioconvert.c:
+ * gst/audiorate/gstaudiorate.c:
+ * gst/audioresample/gstaudioresample.c:
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ * gst/encoding/gstencodebin.c:
+ * gst/encoding/gstsmartencoder.c:
+ * gst/encoding/gststreamcombiner.c:
+ * gst/encoding/gststreamsplitter.c:
+ * gst/ffmpegcolorspace/gstffmpegcolorspace.c:
+ * gst/gdp/gstgdpdepay.c:
+ * gst/gdp/gstgdppay.c:
+ * gst/playback/gstdecodebin.c:
+ * gst/playback/gstdecodebin2.c:
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gststreamselector.c:
+ * gst/playback/gststreamsynchronizer.c:
+ * gst/playback/gstsubtitleoverlay.c:
+ * gst/playback/gsturidecodebin.c:
+ * gst/subparse/gstssaparse.c:
+ * gst/subparse/gstsubparse.c:
+ * gst/tcp/gstmultifdsink.c:
+ * gst/tcp/gsttcpclientsink.c:
+ * gst/tcp/gsttcpclientsrc.c:
+ * gst/tcp/gsttcpserversrc.c:
+ * gst/videorate/gstvideorate.c:
+ * gst/videoscale/gstvideoscale.c:
+ * gst/videotestsrc/gstvideotestsrc.c:
+ * sys/v4l/gstv4lmjpegsink.c:
+ * sys/v4l/gstv4lmjpegsrc.c:
+ * sys/v4l/gstv4lsrc.c:
+ * sys/ximage/ximagesink.c:
+ * sys/xvimage/xvimagesink.c:
+ * tests/check/elements/audiorate.c:
+ * tests/check/elements/decodebin.c:
+ * tests/check/elements/decodebin2.c:
+ * tests/check/elements/playbin.c:
+ * tests/check/elements/playbin2-compressed.c:
+ * tests/check/elements/playbin2.c:
+ * tests/check/elements/videoscale.c:
+ various: fix pad template leaks
+ https://bugzilla.gnome.org/show_bug.cgi?id=662664
+
+2011-09-07 16:04:14 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoradec.c:
+ * ext/theora/gsttheoradec.h:
+ theoradec: move the QoS logic to libgstvideo
+ https://bugzilla.gnome.org/show_bug.cgi?id=658241
+
+2011-09-05 13:56:05 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ * win32/common/libgstvideo.def:
+ libgstvideo: add a new API to handle QoS events and dropping logic
+ https://bugzilla.gnome.org/show_bug.cgi?id=658241
+
+2011-11-28 11:30:18 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ audioencoder: elaborate some documentation
+
+2011-11-28 11:28:06 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ audiodecoder: add some documentation
+
+2011-11-21 14:26:54 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: really discard NULL decoded frame altogether
+ ... including any timestamp, rather than having that one influence base_ts.
+
+2011-11-28 10:55:39 +0100 Stefan Sauer <ensonic@google.com>
+
+ * ext/alsa/gstalsasrc.c:
+ alsasrc: style fix
+ Use timestamp==0 instead of mixing it with !timestamp style checks.
+
+2011-11-28 09:12:37 +0100 Stefan Sauer <ensonic@users.sf.net>
+
+ * ext/alsa/gstalsasrc.c:
+ alsasrc: handle the case where the drivers don't supply timestamps
+ If highres-timestamp is 0, try lowres and if that fails fallback to system clock
+ timestamps.
+
+2011-11-01 15:21:54 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: set collectpads2 not to wait on sparse streams
+ https://bugzilla.gnome.org/show_bug.cgi?id=663174
+
+2011-11-25 15:35:39 +0100 Josep Torra <n770galaxy@gmail.com>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: make identiy silent
+
+2011-11-25 13:11:54 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/vorbis/Makefile.am:
+ * gst-libs/gst/audio/Makefile.am:
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ audio: remove unstable API guards from the audio decoder and encoder base classes
+
+2011-11-25 12:58:22 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ docs: mention explicitly that playbin2 signals are emitted from a streaming thread
+
+2011-11-25 11:11:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Set the multiqueue limits to the playing limits after overrun too
+ We don't expect any new pads anymore and prerolling is finished now.
+
+2011-11-25 11:08:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Cache the upstream seekability for demuxer decode chains and use it for the non-preroll multiqueue limits
+ After preroll the multiqueue limits are still set to the preroll
+ limits if use-buffering is set to TRUE. In that case we only want
+ time limits on the multiqueue if upstream is seekable.
+
+2011-11-08 13:55:58 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: fix prerolling for low bitrate streams from hlsdemux
+ Such streams were detected as seekable, as the query on the typefind
+ element was testing the m3u8 file listing the actual streams, and
+ not going through the demuxer(s).
+ We now check for seekability for each multiqueue following a demuxer,
+ so the query will flow through the elements which might prevent seeking.
+ https://bugzilla.gnome.org/show_bug.cgi?id=647769
+
+2011-10-24 11:46:05 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: minor cleanup
+
+2011-09-27 16:45:26 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/riff/riff-ids.h:
+ libgstriff: add a couple tags that need skipping
+ Found in a sample in the wild, appears to be ID3 tag.
+ https://bugzilla.gnome.org/show_bug.cgi?id=660249
+
+2011-11-24 14:41:13 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ videorate: Rename ARG_ enums to PROP_
+ This is more consistent with other code and these are
+ properties anyway, not arguments
+
+2011-11-24 14:29:49 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ * gst/videorate/gstvideorate.h:
+ videorate: Add property to force an output framerate
+ API: GstVideoRate:force-fps
+ Changing the framerate during playback is not possible
+ with a capsfilter downstream if upstream is not using
+ gst_pad_alloc_buffer(). In that case there's no way in
+ 0.10 to signal to videorate that the preferred framerate
+ has changed.
+ This new property will force the output framerate to
+ a specific value and can be changed during playback.
+
+2011-11-24 12:38:54 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Reconfigure if we switch from raw to incompatible raw caps
+ We might need to add converters and worked in passthrough mode before.
+
+2011-11-24 12:37:58 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Override acceptcaps function for the two ghostpads
+ The ghostpad acceptcaps functions are not valid in this case because
+ we don't only accept the caps accepted by the target but could also
+ insert converters. Fixes bug #663892.
+
+2011-11-24 11:34:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ playsinkaudioconvert: use-volume and use-converters are no construct-only properties anymore
+ Fixes bug #663893.
+
+2011-10-22 20:29:26 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: skip the second bisection when possible
+ If we already saw the keyframes that we need to find,
+ we do not need to bisect to find them.
+ This will always be the case for streams with audio only,
+ where each frame acts as a keyframe, but will occasionally
+ also happen for streams with video.
+ https://bugzilla.gnome.org/show_bug.cgi?id=662475
+
+2011-10-22 20:20:38 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggdemux.h:
+ oggdemux: improve push time seeking
+ Various tweaks to improve convergence, in particular for
+ the worst case, which is now cut in about half.
+ https://bugzilla.gnome.org/show_bug.cgi?id=662475
+
+2011-10-21 19:38:19 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggdemux.h:
+ oggdemux: gather some more stats about bisection
+ https://bugzilla.gnome.org/show_bug.cgi?id=662475
+
+2011-11-23 16:09:13 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/vorbis/gstvorbisenc.c:
+ vorbisenc: do not accept 256 channels, 255 is the max vorbis supports
+
+2011-11-22 13:29:10 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: extract opus comments if available
+
+2011-11-22 13:15:33 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: recognize opus headers from data, not packet count
+ Opus streams outside of Ogg may not have headers, and oggstream
+ may be used by oggmux to mux an Opus stream which does not come
+ from Ogg - thus without headers.
+ Determining headerness by packet count would strip the first two
+ packets from such an Opus stream, leading to a very small amount
+ of audio being clipped at the beginning of the stream.
+
+2011-11-22 13:01:35 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: add some more debug info when determining start time
+
+2011-11-22 12:55:56 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: fix opus duration calculation
+
+2011-11-22 12:00:58 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: early out on headers when determining packet duration
+
+2011-11-21 17:03:21 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ * ext/ogg/gstoggstream.h:
+ oggstream: account for opus pre-skip in granpos/time mapping
+
+2011-11-22 10:04:12 +0100 René Stadler <rene.stadler@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: avoid removing children from bin twice
+ GstBin base class removes children in dispose, so we need to do the same.
+
+2011-11-19 16:06:09 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggstream.c:
+ ogg: add opus support
+
+2011-11-16 19:00:44 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/vorbis/gstvorbisenc.c:
+ vorbisenc: reset tag setter interface when appropriate
+
+2011-11-16 19:00:30 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: invalidate format info when setup negotiation failed
+ ... which ensures nothing subsequently tries to slip past _chain
+ and into a possibly improperly setup subclass.
+
+2011-11-15 13:29:31 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: accept dropped buffers before we know the format
+ This allows flacdec to not emit audio for headers, while allowing
+ the base audio decoder to keep its timestamps in sync.
+
+2011-11-14 12:45:31 +0100 Robert Swain <robert.swain@gmail.com>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audio: Remove some unused variables
+
+2011-08-30 18:27:09 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/rtp/gstrtcpbuffer.h:
+ rtcpbuffer: Add feedback message types from RFC 5104
+ These are Codec Control messages (CCM)
+ https://bugzilla.gnome.org/show_bug.cgi?id=658419
+
+2011-10-19 16:30:27 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: improve reverse playback
+ ... by doing some more (reverse) timestamp interpolating and
+ refactoring downstream pushing.
+ Fixes #661983.
+
+2011-11-13 13:18:16 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/audio.h:
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audio: add GST_AUDIO_INFO_IS_VALID macro and use in audio decoder base class
+ API: GST_AUDIO_INFO_IS_VALID
+
+2011-11-12 15:51:52 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ * tests/examples/seek/jsseek.c:
+ * tests/examples/seek/seek.c:
+ * tests/icles/test-colorkey.c:
+ * tests/icles/test-xoverlay.c:
+ tests: require Gtk+ 3.0 for examples and Gtk-based test apps
+ The Gtk+ dependency is entirely optional, we're just not
+ supporting Gtk+ 2.x any longer.
+
+2011-11-07 17:36:44 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/Makefile.am:
+ audio: fix order in LIBADD
+ Local libs must come first.
+
+2011-11-11 13:32:23 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: fix visualisations again
+ Make caps writable before merging other caps into them.
+
+2011-11-10 15:55:31 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: make unsigned properties unsigned, not signed
+
+2011-11-09 00:36:51 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * common:
+ * configure.ac:
+ configure: suppress warnings about unused variables if debugging system is disabled in core
+ https://bugzilla.gnome.org/show_bug.cgi?id=662952
+
+2011-10-27 14:48:52 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: continue processing text when silent
+ This prevents playback wegding when text buffers are
+ left to pile up.
+ https://bugzilla.gnome.org/show_bug.cgi?id=662829
+
+2011-11-08 00:16:56 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * win32/common/libgstaudio.def:
+ win32: update .def file for new audiosink API
+ API: gst_base_audio_sink_get_alignment_threshold()
+ API: gst_base_audio_sink_set_alignment_threshold()
+ API: gst_base_audio_sink_get_discont_wait()
+ API: gst_base_audio_sink_set_discont_wait()
+
+2011-11-07 23:41:33 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/examples/seek/seek.c:
+ examples: sprinkle GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS in seek test utility
+ https://bugzilla.gnome.org/show_bug.cgi?id=630497
+
+2011-11-07 23:05:44 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/pango/gsttextoverlay.c:
+ * gst-libs/gst/audio/gstaudioiec61937.c:
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ * gst-libs/gst/audio/gstbaseaudiosink.h:
+ * gst-libs/gst/video/video.c:
+ docs: fix up some Since: markers
+
+2011-11-04 10:34:27 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: fix speed level failure test
+ It was testing the opposite of what it thought it was.
+ https://bugzilla.gnome.org/show_bug.cgi?id=663390
+
+2011-11-04 10:57:40 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: make logically static const data just so
+ https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 10:58:15 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: use th_packet_iskeyframe instead of peeking at bits
+ https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 10:59:00 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: trivial comment typos fixes
+ https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 10:59:12 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: warn when trying to set an ignored obsolete property
+ https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-11-04 11:10:46 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: refuse to get to READY if the encoder was disabled
+ https://bugzilla.gnome.org/show_bug.cgi?id=663391
+
+2011-10-18 17:58:49 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: survive skeleton finding length behind our backs in push mode
+ In push mode, we determine duration by doing a seek to the end of the
+ stream. However, a skeleton stream with an index will cause the duration
+ to be known already, and we end up never setting the push_time_duration
+ variable which we use to know duration has been determined.
+ https://bugzilla.gnome.org/show_bug.cgi?id=662049
+
+2011-10-05 15:29:54 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * tests/check/gst-plugins-base.supp:
+ valgrind: add ALSA leaks fixed by snd_config_update_free_global
+ If they go when calling snd_config_update_free_global, they're
+ not really bug leaks, but more like intentional ones we don't
+ want to get told about.
+ https://bugzilla.gnome.org/show_bug.cgi?id=615342
+
+2011-05-02 13:05:28 +0300 Felipe Contreras <felipe.contreras@gmail.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ * gst-libs/gst/audio/gstbaseaudiosink.h:
+ baseaudiosink: make discont-wait configurable
+ Now we can configure how much time to wait before deciding that a
+ discont has happened.
+ Also, adds getter and setter to allow derived implementations to set
+ this value upon construction.
+ Suggestions and several improvements by Havard Graff.
+ Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
+
+2011-11-07 11:31:47 +0100 Felipe Contreras <felipe.contreras@gmail.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: delay the resyncing of timestamp vs ringbuffertime
+ A common problem for audio-playback is that the timestamps might not
+ be completely linear. This is specially common when doing streaming over
+ a network, where you can have jittery and/or bursty packettransmission,
+ which again will often be reflected on the buffertimestamps.
+ Now, the current implementation have a threshold that says how far the
+ buffertimestamp is allowed o drift from the ideal aligned time in the
+ ringbuffer. This was an instant reaction, and ment that if one buffer
+ arrived with a timestamp that would breach the drift-tolerance, a resync
+ would take place, and the result would be an audible gap for the
+ listener.
+ The annoying thing would be that in the case of a "timestamp-outlier",
+ you would first resync one way, say +100ms, and then, if the next
+ timestamp was "back on track", you would end up resyncing the other way
+ (-100ms) So in fact, when you had only one buffer with slightly off
+ timestamping, you would end up with *two* audible gaps. This is the
+ problem this patch addresses.
+ The way to "fix" this problem with the previous implementation, would
+ have been to increase the "drift-tolerance" to a value that was greater
+ than the largest timestamp-outlier one would normally expect. The big
+ problem with this approach, however, is that it will allow normal
+ operations with a huge offset timestamp vs running-time, which is
+ detrimental to lip-sync. If the drift-tolerance is set to 200ms, it
+ basically means that lip-sync can easily end up being off by that much.
+ This patch will basically start a timer when the first breach of
+ drift-tolerance is detected. If any following timestamp for the next n
+ nanoseconds gets "back on track" within the threshold, it has basically
+ eliminated the effect of an outlier, and the timer is stopped. If,
+ however, all timestamps within this time-limit are breaching the
+ threshold, we are probably facing a more permanent offset in the
+ timestamps, and a resync is allowed to happen.
+ So basically this patch offers something as rare as both higher
+ accuracy, it terms of allowing smaller drift-tolerances, as well as much
+ smoother, less glitchy playback!
+ Commit message and improvments by Havard Graff.
+ Fixes bug #640859.
+
+2011-11-07 11:18:34 +0100 Felipe Contreras <felipe.contreras@gmail.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: rename some variables
+
+2011-05-21 16:16:42 +0300 Felipe Contreras <felipe.contreras@gmail.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: use gst_util_uint64_scale_int when appropriate
+ It's probably safer this way.
+
+2011-05-21 15:49:20 +0300 Felipe Contreras <felipe.contreras@gmail.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ * gst-libs/gst/audio/gstbaseaudiosink.h:
+ baseaudiosink: split drift-tolerance into alignment-threshold
+ So that drift-tolerance is used for clock slaving resync, and
+ alignment-threshold is for timestamp drift.
+
+2011-05-21 16:02:36 +0300 Felipe Contreras <felipe.contreras@gmail.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: trivial comment fixes
+ Some found by Havard Graff.
+ Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
+
+2011-11-04 10:37:12 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: Use gst_caps_merge() instead of gst_caps_union()
+ This keeps the caps order and is more efficient.
+
+2011-11-04 10:36:51 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Use gst_caps_merge() instead of gst_caps_union()
+ This keeps the caps order and is more efficient.
+
+2011-11-03 21:35:38 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+ * gst-libs/gst/tag/Makefile.am:
+ Add missing default include paths to androgenizer call
+ Fixes building tag/ with Android's NDK
+
+2011-11-03 14:10:31 +0200 Mart Raudsepp <mart.raudsepp@collabora.com>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Post all source pads in stream-topology messages as "element-srcpad" values
+ This allows us to easily get ahold of all pads on a stream-topology message, including
+ pre-decoder ones, while "pad" only gives us access to the raw pads (as used by discoverer).
+
+2011-10-20 13:04:52 +0300 Mart Raudsepp <mart.raudsepp@collabora.com>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Use existing "caps" quark for one of the structure sets
+
+2011-11-03 10:07:27 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Don't add identity multiple times
+
+2011-10-19 14:13:39 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsink: send flush start/stop event when we switch elements
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-19 14:13:30 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkconvertbin.c:
+ * gst/playback/gstplaysinkconvertbin.h:
+ playsink: re-add identity where appropriate
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-19 14:12:01 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ playsink: lock the new {set,get}_property functions
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 23:14:54 +0000 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Be more consistent with ghostpad targets
+ Set up targets on READY->PAUSED state change to passthrough by
+ default. This prevents the targets from being unset on the
+ first run, while the 'raw' variable would mean that some
+ target is set.
+
+2011-10-17 22:41:49 +0000 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: No need to remove the identity
+ The identity element should be handled by the GstBin's cleanup,
+ removing it on the remove_elements function might remove it
+ too soon, as this function can be called directly from playsink
+
+2011-10-17 22:41:11 +0000 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsinkconvertbin: Adding some debug messages
+ Adds a couple debug messages and some g_assert to make debugging
+ easier
+
+2011-10-17 22:02:03 +0000 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/playback/gstplaysinkvideoconvert.c:
+ playsink-videoconvert: Fix warning on build
+ Remove unused variable
+
+2011-10-17 21:05:30 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkaudioconvert.h:
+ * gst/playback/gstplaysinkconvertbin.c:
+ * gst/playback/gstplaysinkconvertbin.h:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.h:
+ playsink: handle after-the-fact changes in converters/volume booleans
+ The playsink was nastily poking a boolean in the structure.
+ Make those booleans properties, so we are told when they change,
+ and rebuild the conversion bin when they do.
+ Some cleanup to go with it too.
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 18:43:06 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsink: handle NULL cached caps in getcaps
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 18:06:00 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsink: consider both passthrough and converter caps in getcaps
+ Since we can switch between both modes.
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 17:54:27 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ * gst/playback/gstplaysinkconvertbin.h:
+ playsink: cache inner converter bin caps
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 17:26:48 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsink: keep both raw and non raw pipelines at all times
+ and switch between them as needed.
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 17:29:50 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkconvertbin.c:
+ playsink: only compare against the media type we expect
+ ie, audio/x-raw- for audio, video/x-raw- for video.
+ Add a trailing - to be more specific. I doubt there's anything
+ like audio/x-rawhide or something, but you never know.
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 16:55:30 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/Makefile.am:
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkaudioconvert.h:
+ * gst/playback/gstplaysinkconvertbin.c:
+ * gst/playback/gstplaysinkconvertbin.h:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.h:
+ playsink: refactor the converter bins since they are almost identical
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-17 13:00:05 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkaudioconvert.h:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.h:
+ playsink: fix passthrough mode (hopefully)
+ The code was doing counterintuitive rewiring of pads when the
+ bin did not contain any elements. We now add an identity element
+ in that case, which makes it simpler, and should fix the AC3
+ passthrough mode when using pulseaudio (but I don't see the bug
+ here so can't test).
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-10-07 11:16:44 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ playsink: handle NULL ghost pad target
+ For the src pad anyway.
+ https://bugzilla.gnome.org/show_bug.cgi?id=661262
+
+2011-11-03 09:56:14 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ Revert "playsinkaudioconvert: Fix warning when there is no target pad yet"
+ This reverts commit f35c51c14915729f0fdf2b348f351ea7e81027cc.
+ Better patch coming soon.
+
+2011-10-28 10:07:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: Remove obsolete #include
+
+2011-11-02 23:33:18 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/design/draft-subtitle-overlays.txt:
+ docs: add draft for subtitle overlays to design docs
+ Main purpose is to provide a generic way to make subtitles work on
+ top of non-raw video (vaapi, vdpau, etc.).
+
+2011-11-02 15:31:11 -0400 Colin Walters <walters@verbum.org>
+
+ * common:
+ * configure.ac:
+ configure: Allow setting GLIB_EXTRA_CFLAGS
+ Similar to gstreamer commit bb2020b1e794210cf7d44c6626122f611016a620
+
+2011-10-30 20:00:47 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: don't use soon-to-be-deprecated gst_filter_run()
+
+2011-10-28 13:58:47 +0200 Mersad Jelacic <mersad@axis.com>
+
+ * gst-libs/gst/audio/gstaudiosink.c:
+ audiosink: avoid deadlocking audioringbuffer thread
+ ... when it goes into wait for ringbuffer starting just after such
+ having been signalled.
+ Fixes #661738.
+
+2011-04-26 22:20:29 +0200 Philip Jägenstedt <philipj@opera.com>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefind: extract SOF marker in jpeg typefinder
+ The SOF types are defined by http://www.w3.org/Graphics/JPEG/itu-t81.pdf
+ This is needed to make sure that we plug a jpeg decoder that
+ can handle the type of JPEG we have (e.g. lossless JPEG)
+ https://bugzilla.gnome.org/show_bug.cgi?id=556648
+
+2009-08-10 01:48:29 +0000 Thiago Santos <thiagoss@embedded.ufcg.edu.br>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ oggmux: port to gstcollectpads2
+
+2011-10-27 23:39:31 +1100 Jan Schmidt <thaytan@noraisin.net>
+
+ * tests/examples/Makefile.am:
+ build: Fix build for moved volume subdir
+
+2011-10-27 09:51:46 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * Makefile.am:
+ * configure.ac:
+ * tests/examples/Makefile.am:
+ * tests/examples/audio/.gitignore:
+ * tests/examples/audio/Makefile.am:
+ * tests/examples/audio/volume.c:
+ * tests/examples/volume/.gitignore:
+ * tests/examples/volume/Makefile.am:
+ * tests/examples/volume/volume.c:
+ volume: move volume example to audio
+
+2011-10-27 09:42:36 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/examples/audio/Makefile.am:
+ audio examples. fix the makefile
+
+2011-10-27 09:33:55 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/examples/volume/volume.c:
+ volume: make global vars static
+
+2011-10-27 09:33:01 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/examples/audio/.gitignore:
+ * tests/examples/audio/Makefile.am:
+ * tests/examples/audio/audiomix.c:
+ audiomix: add a simple audiomix example
+
+2011-10-25 20:04:06 +1100 Jan Schmidt <thaytan@noraisin.net>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ playsinkaudioconvert: Fix warning when there is no target pad yet
+
+2011-10-13 11:34:49 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Link elements before testing if they can reach the READY state
+ This is made possible by filtering errors. This is required to let
+ harware accelerated element query the video context. The video context
+ is used to determine if the HW is capable, and thus if the element is
+ supported or not.
+ Fixes bug #662330.
+
+2011-10-21 21:57:17 +0200 René Stadler <rene.stadler@collabora.co.uk>
+
+ * gst/playback/gstplaybasebin.c:
+ playbasebin: remove avoidable call to gst_object_set_name
+
+2011-10-21 21:41:03 +0200 René Stadler <rene.stadler@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: remove avoidable call to gst_object_set_name
+
+2011-10-21 21:39:01 +0200 René Stadler <rene.stadler@collabora.co.uk>
+
+ * gst/audioconvert/Makefile.am:
+ * gst/audioconvert/channelmixtest.c:
+ audioconvert: bury dead test program
+
+2011-10-20 10:13:46 -0300 Reynaldo H. Verdejo Pinochet <reynaldo@collabora.com>
+
+ * Android.mk:
+ Disable ext/vorbis for the android ndk build
+ It currently makes the build fail. Idea is to enable
+ it back again once its building problems get sorted
+ out.
+
+2011-10-19 19:44:06 +0200 René Stadler <rene.stadler@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: fix leaks of pad templates and internal proxy pads
+
+2011-10-19 19:37:07 +0200 René Stadler <rene.stadler@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: fix leak of element reference through pad block
+ If the pad block never happens because there is no data flow at all, the
+ callback is never fired and the reference is never released. This causes a
+ reference cycle between the pad and element, so valgrind is not very vocal
+ about it (memory is still reachable).
+
+2011-10-18 21:42:21 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: having gather queue contents implies some draining is in order
+ ... which ensures e.g. processing and sending last fragment of reverse playback
+ downstream at EOS.
+
+2011-10-19 15:28:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/vorbis/gstvorbisdec.c:
+ vorbisdec: do not try to read past the buffer array
+ https://bugzilla.gnome.org/show_bug.cgi?id=662108
+
+2011-10-18 21:40:54 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/vorbis/gstvorbisdec.c:
+ vorbisdec: only finish header packet frame if received in-stream
+ ... rather than scaring audiodecoder with a frame extracted from caps.
+ Fixes #662108 (partially).
+
+2011-10-19 10:41:31 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * sys/ximage/ximagesink.c:
+ * sys/xvimage/xvimagesink.c:
+ x(v)imagesink: make it more clean that "synchronous" props are not for avsync
+
+2011-10-19 00:32:13 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: fix unused variable compiler warning if debugging in core is disabled
+ https://bugzilla.gnome.org/show_bug.cgi?id=660150
+
+2011-10-18 13:00:29 +0200 René Stadler <rene.stadler@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: fix event unref in (rare) error case
+
+2011-10-07 17:41:32 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: fire drained signal where appropriate
+ This will allow playbin2 to send its about-to-finish signal.
+ Taken out (apparently by mistake) by the EOS rewrite in july.
+ https://bugzilla.gnome.org/show_bug.cgi?id=661202
+
+2011-10-16 11:32:41 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not retry seeking indefinitely
+ https://bugzilla.gnome.org/show_bug.cgi?id=661897
+
+2011-10-10 13:11:59 +0200 Brian Cameron <brian.cameron@oracle.com>
+
+ * gst/videotestsrc/Makefile.am:
+ videotestsrc: fix LDADD missing GST_LIBS
+
+2011-10-09 21:19:32 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/vorbis/gstvorbisenc.c:
+ * ext/vorbis/gstvorbisenc.h:
+ vorbisenc: only push header buffers following initial events
+
+2011-10-09 16:48:18 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audioencoder: fix compile warning
+
+2011-10-08 20:17:43 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tests/check/pipelines/vorbisenc.c:
+ tests: vorbisenc: adjust discontinuity checking to audioencoder behaviour
+ ... which still detects gaps and marks DISCONT, depending on configuration,
+ but may come up with somewhat different timestamps when crossing the gap.
+
+2011-10-08 20:16:04 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tests/check/pipelines/vorbisdec.c:
+ tests: vorbisdec: properly configure audiodecoder when requiring perfect ts
+
+2011-10-08 20:14:27 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * tests/check/elements/vorbisdec.c:
+ tests: vorbisdec: remove empty header buffer check
+ ... as empty buffers are discarded, and header buffers are now
+ also optionally retrieved from caps anyway.
+
+2011-10-08 20:13:11 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: only resync to upstream upon discont in perfect ts mode
+ ... as documented, where discont is marked here if tolerance has been
+ exceeded.
+
+2011-10-08 20:11:22 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: fix timestamp tolerance handling
+
+2011-10-08 20:09:09 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: handle empty input by discarding
+
+2011-10-07 14:52:33 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/vorbis/Makefile.am:
+ * ext/vorbis/gstvorbisdec.c:
+ * ext/vorbis/gstvorbisdec.h:
+ vorbisdec: port to audiodecoder
+
+2011-10-07 14:33:04 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: make upstream queries MT-safe
+
+2011-10-07 14:32:33 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: make upstream queries and events MT-safe
+
+2011-10-05 15:43:35 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/vorbis/Makefile.am:
+ * ext/vorbis/gstvorbisenc.c:
+ * ext/vorbis/gstvorbisenc.h:
+ vorbisenc: port to audioencoder
+
+2011-10-06 18:21:29 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * tests/check/elements/audiotestsrc.c:
+ tests: actually test what we said we would
+ All tests were testing the default sine wave
+ https://bugzilla.gnome.org/show_bug.cgi?id=661106
+
+2011-10-06 18:20:32 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ audiotestsrc: add missing break
+ And make violet noise usable
+ https://bugzilla.gnome.org/show_bug.cgi?id=661105
+
+2011-10-06 15:38:49 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ playsink: fix caps negotiation through the new convenience bins
+ The bins' getcaps was bypassing the inner elements, and thus
+ failing to account for the caps transformations they allow,
+ which caused YUV video pipelines to fail with ximagesink, which
+ does not support YUV, even though the convenience bin includes
+ a colorspace converter for just this purpose.
+ https://bugzilla.gnome.org/show_bug.cgi?id=660816
+
+2011-10-06 11:53:26 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: fix mismatch between video/ and video/x-dvd-subpicture
+ The new code was checking for a prefix, and would find video/
+ first. Check in two passes, first checking for a perfect match,
+ and falling back to a prefix check if nothing was found.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657261
+
+2011-10-04 21:17:37 -0300 Thiago Santos <thiago.sousa.santos@collabora.com>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Re-enable parsers
+ Re-enable parsers in encodebin to allow more passthrough scenarios
+ to work. Specially the ones that require changing 'stream formats'.
+ i.e. h264 in mkv to mpegts.
+
+2011-10-05 12:45:19 +0200 Robert Swain <robert.swain@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Add audio- and text-sink props
+
+2011-10-04 23:09:42 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ auditestsrc: indent fix
+
+2011-10-04 16:22:55 +0200 Robert Swain <robert.swain@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Add video-sink property
+ The video-sink property allows manual specification via g_object_set ()
+ of the video sink element to be used.
+
+2011-10-03 15:20:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Minor cleanup of decoder-sink compatibility checking code
+
+2011-09-30 12:29:34 -0300 Thibault Saunier <thibault.saunier@collabora.com>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Make sure that the decoders we plug are compatible with the fixed sink
+ The fact that a decoder is not compatible with the fixed sink
+ is currently happenning in the case where we have hardware accelerated
+ video decoders on the system (especially vaapi elements that are actually plugged),
+ and the user is providing a sink that doesn't support the surface.
+ A simple example that shows how it used to crash on a system where gstreamer-vaapi
+ is installed:
+ gst-launch playbin2 video-sink=xvimagesink uri=/codec/supported/by/vaapi
+ What we are now doing in this case, is avoid using the accelerated
+ decoder and plug a "normal" decoder instead (if avalaible).
+ This commit doesn't handle the case where we have hardware accelerated
+ demuxing.
+
+2011-02-18 11:48:37 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/pbutils/encoding-profile.c:
+ * gst-libs/gst/pbutils/encoding-profile.h:
+ * win32/common/libgstpbutils.def:
+ encoding-profile: add a function to create a profile from a discoverer info
+ Only A/V streams are added at the moment, there does not seem to be
+ a similar way to add other streams (eg, subtitles).
+ https://bugzilla.gnome.org/show_bug.cgi?id=642878
+
+2011-09-27 00:26:29 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ * ext/alsa/gstalsasrc.h:
+ alsasrc: fail gracefully when ALSA does not give timestamps
+ https://bugzilla.gnome.org/show_bug.cgi?id=660170
+
+2011-10-03 10:55:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Use a TIME limit for pre-rolling in live streams and not in non-live streams
+ Fixes bug #647769 for real.
+
+2011-10-01 01:05:00 +0100 Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: add YV12 support
+ Basically the same as I420, just with chroma planes swapped.
+ https://bugzilla.gnome.org/show_bug.cgi?id=660604
+
+2011-09-30 09:44:12 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Fix typo on formatter adding condition
+ The condition is if the muxer doesn't have tag setter *and* isn't
+ a formatter itself. Any of those two conditions makes the muxer
+ good enough to not need a formatter.
+
+2011-09-28 15:41:16 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: really push pending events
+
+2011-09-28 14:32:20 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: remove more tags from upstream tag events such as bitrate tags
+ We want to remove all codec specific tags.
+
+2011-09-28 01:56:42 +0300 Raimo Järvi <raimo.jarvi@gmail.com>
+
+ * gst/videotestsrc/videotestsrc.c:
+ videotestsrc: Fix compiler warning on 64 bit mingw-w64
+ Fixes bug #660304.
+
+2011-09-28 01:11:30 +0300 Raimo Järvi <raimo.jarvi@gmail.com>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Fix compiler warnings on 64 bit mingw-w64
+ Fixes bug #660301.
+
+2011-09-27 16:18:05 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: only got_data if we really got some
+ ... which avoids going loopy with casual subclass.
+
+2011-09-27 16:57:45 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: really push pending events
+
+2011-09-27 16:16:54 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: send tag event after pending events
+ ... which probably includes a pending newsegment event.
+
+2011-09-27 16:16:29 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: protect pending_events with proper lock
+
+2011-09-27 15:31:20 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: clean up some documentation
+
+2011-09-27 00:32:41 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: minor docs fix
+
+2011-09-26 16:36:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: Adjust for GstAudioEncoder API changes
+
+2011-09-26 16:36:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * win32/common/libgstaudio.def:
+ win32: Adjust for GstAudioEncoder API changes
+
+2011-09-26 16:35:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: Improve set_frame_sample_{min,max} documentation
+
+2011-09-26 16:22:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ audiodecoder: Fix thread safety issues if both pads have different streaming threads
+
+2011-09-26 16:19:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: Delay sending of serialized events to finish_frame()
+
+2011-09-26 16:02:51 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ Revert "audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code"
+ This reverts commit 11e375486e07cfa0686a97b5cf6110909b3a828c.
+ GST_BOILERPLATE() can't define an abstract type and
+ G_DEFINE_ABSTRACT_TYPE() does not pass the class struct to
+ the instance_init function and there's no way to get the
+ class struct of the current type in instance_init().
+
+2011-09-26 15:59:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ audioencoder: Add support for requesting a minimum and maximum number of samples per frame
+ This extends the special case of a fixed number of samples per frame
+ that was supported before already.
+
+2011-09-26 15:45:40 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ audioencoder: Fix thread safety issues if both pads have different streaming threads
+
+2011-09-26 15:42:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: Delay sending of serialized events to finish_frame()
+ This makes sure that the caps are already set before any serialized
+ events are sent downstream.
+
+2011-09-26 15:34:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: Use GST_BOILERPLATE instead of custom GObject boilerplate code
+
+2011-09-26 15:14:41 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ audioencoder: add some tag handling convenience help
+
+2011-09-26 14:48:55 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: provide CODEC/AUDIO_CODEC handling
+
+2011-09-26 13:42:38 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: filter AUDIO_CODEC/CODEC tags from passing tag events
+
+2011-09-25 15:31:01 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefindfunctions: backport some const-ifications from 0.11 branch
+ To keep code identical as much as possible between the two branches,
+ for easier merging.
+
+2011-09-25 15:24:56 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefindfunctions: fix indentation
+
+2011-09-23 17:50:31 +0200 Robert Swain <robert.swain@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Avoid unnecessary read only caps copy
+
+2011-09-22 15:38:51 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: proxy some more optional downstream caps fields to upstream
+
+2011-09-22 15:38:22 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: changed is verily the opposite of equal
+
+2011-09-22 15:37:07 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ audioencoder: prevent crashing when comparing to a freshly inited GstAudioInfo
+
+2011-09-22 15:36:22 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/audio.h:
+ audio: some more accessor macros for GstAudioInfo
+
+2011-09-22 15:34:41 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ audiodecoder: fix documentation typo
+
+2011-09-19 18:32:26 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * tests/check/elements/videorate.c:
+ videorate: Add tests for the max-rate case
+
+2011-09-19 18:31:07 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * tests/check/elements/videorate.c:
+ videorate: Print which caps didn't match up
+
+2011-09-19 18:26:04 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ * gst/videorate/gstvideorate.h:
+ videorate: Add a max-rate property
+ In various use-case you want to dynamically change the framerate (e.g.
+ live streams where the available network bandwidth changes). Doing this
+ via capsfilters in the pipeline tends to be very cumbersome and racy,
+ using this property instead makes it very painless.
+
+2011-09-01 17:05:23 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * tests/check/elements/videorate.c:
+ videorate: Add test for caps negotiation
+
+2011-09-01 16:47:49 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ videorate: Add more strict caps negotiation
+ When in drop-only mode we can never provide a framerate that is higher
+ then the input, so let the caps negotiation reflect this.
+
+2011-09-20 13:35:55 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ videorate: don't unref event we don't own
+ http://bugzilla.gnome.org/show_bug.cgi?id=659562
+
+2011-09-20 14:04:45 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Only check if this is a discarded type if we have fixed caps
+ For unfixed caps we will get here again later when the caps are fixed.
+
+2011-09-20 14:03:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Only call autoplug-continue with fixed caps
+ With unfixed caps we can't reliably decide if the final caps
+ are going to be "raw" (e.g. supported by a sink) or not.
+ We will get here again later when the caps are fixed.
+
+2011-09-20 13:45:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/decodebin2.c:
+ decodebin2: Fix unit test by strictly implementing parser behaviour instead of relying on basetransform
+
+2011-01-13 15:35:30 +0000 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggstream.c:
+ oggstream: only use information from skeleton if we have nothing better
+ The codec setup headers are a lot more likely to have correct information,
+ especially as it's easy to remux a skeleton in a file where streams don't
+ have the same parameters (I've even seen a file with two skeletons).
+ Still, this is useful in the case we have a codec we can't decode, so we
+ can at least (theoretically) convert granpos to time, so we discard this
+ information if the codec setup has already provided it.
+ This fixes playback on (at lesat) the original archive.org encoding of
+ "The Night of the Living Dead" (now replaced by another encoding).
+ https://bugzilla.gnome.org/show_bug.cgi?id=612443
+
+2011-09-19 14:16:19 +0200 Age Bosma <agebosma@gmail.com>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.h:
+ discoverer: Don't use gtk-doc /* < ... > */ style comments for signals
+ The /*< ... >*/ style is only used for public|protected|private,
+ signal comments use /* signals */. This prevents the some code
+ parsers/binding generators to be confused by the comment.
+
+2011-09-19 14:02:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: Get the target of the video sinkpad, not the target sinkpad in the video setcaps handler
+
+2011-08-18 15:13:23 +0000 Youness Alaoui <youness.alaoui@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Initialize variable correctly
+ If subdrained isn't initialized to FALSE then a chain might think
+ that its group is drained when in fact it's not and this can cause
+ a switch too early or even cause a deadlock.
+
+2011-07-28 16:44:33 +0000 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Rewrite EOS-handling code
+ This is now really threadsafe and improves switching
+ between different groups.
+
+2011-09-19 11:53:02 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Fix non-prerolling pipelines and not-linked errors if a parser is available but no decoder
+ Fixes bug #658846.
+
+2011-08-01 07:54:02 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/rtsp/gstrtspdefs.c:
+ * gst-libs/gst/rtsp/gstrtspdefs.h:
+ rtspdefs: add RTCP-Interval header
+
+2011-09-19 11:24:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: Implement support for switching between raw and non-raw video streams
+
+2011-09-19 09:34:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: Protect against accessing the NULL parent of the pads during shutdown
+ Fixes bug #658901.
+
+2011-09-16 20:14:39 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: remove superfluous check in newsegment event handler
+ If we get a newsegment event from upstream, we can be quite
+ sure we're not operating pull-based.
+
+2011-09-16 20:11:56 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: minor printf format fix
+
+2011-09-14 12:23:19 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: fix wedge when seeking twice quickly in push mode
+ This could happen when testing with navseek, and pressing
+ right and left at roughly the same time. The current chain
+ is temporarily moved away, and this caused the flush events
+ not to be sent to the source pads, which would cause the
+ data queues downstream to reject incoming data after the
+ seek, and shut down, wedging the pipeline.
+ Now, I can't really decide whether this is a nasty steaming
+ hack or a good fix, but it certainly does fix the issue, and
+ does not seem to break anything else so far.
+ https://bugzilla.gnome.org/show_bug.cgi?id=621897
+
+2011-08-13 14:18:56 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggdemux.h:
+ oggdemux: implement push mode seeking
+ This patch implements seeking in push mode (eg, over the net)
+ in Ogg, using the double bisection method.
+ As a side effect, it also fixes duration determination of network
+ streams, by seeking to the end to check the actual duration.
+ Known issues:
+ - Getting an EOS while seeking stops the streaming task, I can't
+ find a way to prevent this (eg, by issuing a seek in the event
+ handler).
+ - Seeking twice in a VERY short succession with playbin2 fails
+ for streams with subtitles, we end up pushing in a dataqueue
+ which is flushing. Rare in normal use AFAICT.
+ - Seeking is slow on slow links - byte ranges guesses could be
+ made better, decreasing the number of required requests
+ - If no granule position is found in the last 64 KB of a stream,
+ duration will be left unknown (should be pretty rare)
+ https://bugzilla.gnome.org/show_bug.cgi?id=621897
+
+2011-09-15 22:04:56 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: fix compiler warning
+ Remove a check for gchar >= 128
+
+2011-09-15 16:47:26 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * gst/adder/gstadder.c:
+ adder: don't access the event after pushing
+ Fixes valgrind warnings.
+
+2011-09-15 14:27:35 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ Revert "playbin2: autoplug sink if stream is incompatible to the configured one"
+ This reverts commit b0b4e286c8cde2e79a959a444a2c68e99c3f29c6.
+ We agreed that the previous (pre-.35) behaviour is broken and a bug and the
+ current behaviour is correct, deterministic and allows the application to
+ handle stuff properly while the old behaviour can't be handled properly by
+ applications and just worked in some applications by luck.
+ The solution to the problem that was solved by relying on the old, broken
+ behaviour would be, to make decodebin2/playbin2 more aware of decoders and
+ improve the autoplugging of decoders by considering the caps supported by the
+ sink instead of just using something with the highest rank.
+ See bug #656923.
+
+2011-09-15 09:23:54 +0200 Josep Torra <n770galaxy@gmail.com>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: autoplug sink if stream is incompatible to the configured one
+ Fixes regression since 0.10.33 where sinks that can cope with non raw
+ caps or custom caps are not autoplugged if there's a sink configured
+ with the properties video-sink and audio-sink which cannot handle
+ the stream. This change checks for compatibility on the configured one
+ and use it if success. Otherwhise it tries with the found factories.
+
+2011-08-13 14:14:19 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not propagate discontinuities in sparse streams
+ The first packet of a sparse stream may arrive after an initial
+ delay in the stream. If ogg_stream_packetout reports a discontinuity
+ in a sparse stream, do not propagate it to other streams in the
+ chain unnecessarily.
+ https://bugzilla.gnome.org/show_bug.cgi?id=621897
+
+2011-09-12 15:48:59 +0200 Josep Torra <n770galaxy@gmail.com>
+
+ * gst/playback/gstplaysink.c:
+ Revert "playsink: only add text overlay if vido sink also accepts raw caps"
+ This reverts commit a22faad18a73a27a2a0c903748c1a355df4d8c13. Instead
+ of disabling subtitles completelly when video stream have custom caps,
+ just let the sutbtileoverlay cope with them as now it's able to.
+
+2011-09-12 15:46:46 +0200 Josep Torra <n770galaxy@gmail.com>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: gracefully handle non raw video streams
+ Implement handling of non raw video streams by avoiding colorspace
+ elements and autoplugging a compatible renderer if available. Fallback
+ to passthrough if no compatible renderer is found.
+
+2011-09-12 15:10:37 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: try to catch malformed URIs
+ Only log in debug log for now, since the check is a bit
+ half-hearted, its purpose is mostly to make sure people
+ use gst_filename_to_uri() or g_filename_to_uri().
+ https://bugzilla.gnome.org/show_bug.cgi?id=654673
+
+2011-09-12 19:53:51 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/tag.h:
+ docs: minor addition to GST_TAG_ID3V2_HEADER_SIZE docs
+
+2011-09-11 14:22:59 -0400 Thomas Vander Stichele <thomas (at) apestaart (dot) org>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: Fix descriptions of properties
+
+2011-09-10 18:30:55 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosrc.c:
+ baseaudiosrc: don't try to fixate "width" field for alaw/mulaw
+ Fixes warning when trying to fixate e.g. pulsesrc ! audio/x-alaw ! fakesink.
+
+2011-09-09 13:10:13 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/design/design-decodebin.txt:
+ docs: fix some typos in the decodebin design document
+
+2011-09-09 13:07:57 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/interfaces/colorbalance.c:
+ colorbalance: add some guards to interface methods
+ https://bugzilla.gnome.org/show_bug.cgi?id=658584
+
+2011-09-09 12:07:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefind: recognize Asylum modules
+ Note that there is already a AMF detection for a different
+ magic, I'm not sure if that's a different format with the
+ same initials or not. AMF is used for a few different formats
+ (including video), so...
+ This fixes playbin2 playing Asylum modules.
+ https://bugzilla.gnome.org/show_bug.cgi?id=658514
+
+2011-08-31 20:51:17 -0400 Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Improve subrip type check regex
+ This patch prevents timestamp like "1 1:00:00", which would have been seen
+ as hour 101 by our parser, and allow single digit hour, minute and seconds
+ as it's already supported by the parser, and also by other implementation
+ like in mplayer. This fixes bug 657872.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657872
+
+2011-09-08 14:46:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * docs/design/design-decodebin.txt:
+ decodebin: Update design documentation about how Parser/Converter are handled
+
+2011-09-08 13:25:27 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ Revert "decodebin2: Do a subset check before actually using a factory"
+ This reverts commit 50a88396ae6d54a83a10e7d2efd551d39033148e.
+ See bug #658541.
+
+2011-09-07 16:44:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/decodebin2.c:
+ decodebin2: Don't use bufferalloc in the test elements
+ This will cause not-linked errors that usually don't happen
+ because normal decoders/parsers will set srcpad caps before
+ allocating buffers from downstream.
+
+2011-09-07 16:43:36 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Make sure to fixate Parser/Converter caps before continuing autoplugging
+
+2011-09-07 16:04:43 +0200 Josep Torra <n770galaxy@gmail.com>
+
+ * gst/playback/gstplaysink.c:
+ playsink: only add text overlay if vido sink also accepts raw caps
+ Fixes regression, pipeline fails with not negotiated, on media
+ containing subtitles when decoder/sink with custom caps is used.
+
+2011-09-07 14:19:32 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Intersect the factory caps with the current caps for the capsfilter
+ Otherwise we'll include many incompatible caps in the capsfilter that
+ will only slow down negotiation.
+
+2011-09-07 14:07:00 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * docs/libs/Makefile.am:
+ * 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-09-07 14:04:10 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * gst/audiotestsrc/gstaudiotestsrc.h:
+ docs: add two mising enum docs
+
+2011-09-07 14:10:46 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/audiorate.c:
+ audiorate: Use complete audio caps, including the endianness field
+
+2011-09-07 12:32:01 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: fix element factory refcounting
+ g_value_get_object() does not give us our own ref.
+ Fixes "Trying to dispose object "flacparse", but it still has a parent "registry0".
+ You need to let the parent manage the object instead of unreffing the object directly."
+ and similar warnings.
+ https://bugzilla.gnome.org/show_bug.cgi?id=658416
+
+2011-09-07 11:06:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: do not automatically override quality when using target bitrate
+ If both quality and bitrate are set, libtheora will try to meet
+ both constraints, causing it to prefer emitting a smaller number
+ of good frames, to emitting the full number of frames that would
+ not meet the requested quality. This causes a slideshow effect
+ when the bitrate is low and the quality is high. And the default
+ theoraenc is high (48/63).
+ So only set quality when it is requested, and leave it unset
+ otherwise.
+ https://bugzilla.gnome.org/show_bug.cgi?id=658443
+
+2011-09-06 21:24:33 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * common:
+ Automatic update of common submodule
+ From a39eb83 to 11f0cd5
+
+2011-09-06 19:18:27 +0100 Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+ * gst-plugins-base.spec.in:
+ Add latest files to spec file
+
+2011-09-06 20:13:30 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * docs/libs/Makefile.am:
+ docs: activate overrides file to fix make distcheck
+
+2011-09-06 16:46:02 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst-libs/gst/audio/audio.h:
+ audio: rename IS_LE/BE to _IS_LITTLE_ENDIAN/BIG_ENDIAN
+
+2011-09-06 15:46:45 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/audio.c:
+ audio: update internal silent sample defines as well to match 0.11
+
+2011-09-06 15:16:15 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/audio/audio.c:
+ * gst-libs/gst/audio/audio.h:
+ audio: update audio format enums to match changes in 0.11
+ And add new audio format info stuff to docs.
+
+2011-09-06 15:40:02 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * common:
+ Automatic update of common submodule
+ From 605cd9a to a39eb83
+
+2011-09-06 14:16:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Do a subset check before actually using a factory
+ This prevents autoplugging if the caps have a non-empty intersection
+ but are not accepted by the next element's pad.
+
+2011-09-06 14:04:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ subtitleoverlay: Use subset check instead of non-empty-intersection check to check if pads are compatible
+
+2011-09-06 14:03:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Use subset check instead of non-empty-intersection check to check if pads are compatible
+
+2011-09-06 13:06:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Fix memory leak
+
+2011-09-06 12:14:33 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/decodebin2.c:
+ decodebin2: Add unit test for correct parser/converter negotiation
+
+2011-06-26 15:40:17 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Correctly negotiate format for parsers that can convert different stream formats
+ This is done by adding a capsfilter after every parser/converter that contains
+ all possible caps supported by downstream elements. A capsfilter is necessary
+ here because the decoder is only selected after the parser selected a format
+ and the parser can't know what downstream would support otherwise.
+
+2011-09-05 15:19:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: If a audio/video sink was already selected don't check caps of all other possible sinks
+
+2011-09-06 08:25:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/decodebin2.c:
+ decodebin2: Add Tim as author for the parser test
+
+2011-09-06 10:07:33 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ docs: more docs clean-ups
+
+2011-09-05 23:00:30 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ videorate: don't take the object lock twice in {set,get}_property
+ https://bugzilla.gnome.org/show_bug.cgi?id=658294
+
+2011-09-05 22:51:38 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/audio.h:
+ audio: fix GST_AUDIO_FORMAT_INFO_IS_*() macros to return a boolean
+
+2011-09-05 21:40:05 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/Makefile.am:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ docs: some docs love
+
+2011-09-05 20:45:22 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * docs/libs/gst-plugins-base-libs.types:
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ docs: add GstAudioDecoder and GstAudioEncoder to documentation
+
+2011-09-05 15:01:09 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/Makefile.am:
+ * gst-libs/gst/audio/gstaudiodecoder.c:
+ * gst-libs/gst/audio/gstaudiodecoder.h:
+ * gst-libs/gst/audio/gstaudioencoder.c:
+ * gst-libs/gst/audio/gstaudioencoder.h:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ * win32/common/libgstaudio.def:
+ audio: rename GstBaseAudioDecoder/Encoder to GstAudioDecoder/Encoder
+ API: gst_gst_audio_decoder_finish_frame()
+ API: gst_gst_audio_decoder_get_audio_info()
+ API: gst_gst_audio_decoder_get_byte_time()
+ API: gst_gst_audio_decoder_get_delay()
+ API: gst_gst_audio_decoder_get_latency()
+ API: gst_gst_audio_decoder_get_max_errors()
+ API: gst_gst_audio_decoder_get_min_latenc()y
+ API: gst_gst_audio_decoder_get_parse_state()
+ API: gst_gst_audio_decoder_get_plc()
+ API: gst_gst_audio_decoder_get_plc_aware()
+ API: gst_gst_audio_decoder_get_tolerance()
+ API: gst_gst_audio_decoder_get_type()
+ API: gst_gst_audio_decoder_set_byte_time()
+ API: gst_gst_audio_decoder_set_latency()
+ API: gst_gst_audio_decoder_set_max_errors()
+ API: gst_gst_audio_decoder_set_min_latency()
+ API: gst_gst_audio_decoder_set_plc()
+ API: gst_gst_audio_decoder_set_plc_aware()
+ API: gst_gst_audio_decoder_set_tolerance()
+ API: gst_gst_audio_encoder_finish_frame()
+ API: gst_gst_audio_encoder_get_audio_info()
+ API: gst_gst_audio_encoder_get_frame_max()
+ API: gst_gst_audio_encoder_get_frame_samples()
+ API: gst_gst_audio_encoder_get_hard_resync()
+ API: gst_gst_audio_encoder_get_latency()
+ API: gst_gst_audio_encoder_get_lookahead()
+ API: gst_gst_audio_encoder_get_mark_granule()
+ API: gst_gst_audio_encoder_get_perfect_timestamp()
+ API: gst_gst_audio_encoder_get_tolerance()
+ API: gst_gst_audio_encoder_get_type()
+ API: gst_gst_audio_encoder_proxy_getcaps()
+ API: gst_gst_audio_encoder_set_frame_max()
+ API: gst_gst_audio_encoder_set_frame_samples()
+ API: gst_gst_audio_encoder_set_hard_resync()
+ API: gst_gst_audio_encoder_set_latency()
+ API: gst_gst_audio_encoder_set_lookahead()
+ API: gst_gst_audio_encoder_set_mark_granule()
+ API: gst_gst_audio_encoder_set_perfect_timestamp()
+ API: gst_gst_audio_encoder_set_tolerance()
+ https://bugzilla.gnome.org/show_bug.cgi?id=642690
+
+2011-08-03 13:31:59 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Select muxer further
+ Sort muxers based on their caps and ranking before iterating to
+ find one that fits the profile.
+ Sorting is done by putting the elements that have a pad template
+ that can produce the exact caps that is on the profile. For example:
+ when asking for "video/quicktime, variant=iso", muxers that
+ have this exact caps on their pad templates will be put first on
+ the list than ones that have only "video/quicktime".
+ https://bugzilla.gnome.org/show_bug.cgi?id=651496
+
+2011-09-05 20:31:04 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Actually iterate over the factories instead of only taking the first one
+
+2011-09-05 15:51:25 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * tests/check/libs/profile.c:
+ * tests/check/libs/tag.c:
+ * tests/check/libs/video.c:
+ tests: supress ERROR log output for some tests
+ Be nice when we tests for correct error handling and don't spam stdout.
+
+2011-09-05 14:40:24 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ Revert "playsink: Try include 'pitch', if no other sink is provided"
+ This reverts commit 105814e2c78f9867c61531b9e8166e4ae994296f.
+ The general consensus seems to be that we should revert this for
+ now. If such behaviour is desired, we should probably enable it
+ via a flag. And maybe use the scaletempo plugin instead.
+
+2011-09-05 12:02:23 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Don't leak the videochain ts-offset element
+ Also don't leak the audiochain ts-offset element if one is
+ found but the sink doesn't support volume settings.
+
+2011-09-05 11:55:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Use gst_object_unref() instead of g_object_unref() for better debugging
+
+2011-03-17 19:13:58 -0700 David Schleef <ds@schleef.org>
+
+ * gst/videoscale/Makefile.am:
+ * gst/videoscale/gstvideoscale.c:
+ * gst/videoscale/gstvideoscale.h:
+ * gst/videoscale/vs_image.h:
+ * gst/videoscale/vs_lanczos.c:
+ videoscale: Add modified Lanczos scaling method
+ Adds a Lanczos-derived scaling method, which is rather slow, but very
+ high quality. Adds a few properties that can be used to tune various
+ scaling properties: sharpness, sharpen, envelope, dither. Not currently
+ Orcified, but was designed with that in mind.
+
+2011-05-16 14:46:52 -0700 David Schleef <ds@schleef.org>
+
+ * gst/playback/Makefile.am:
+ * gst/playback/gstplaybin.c:
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ * gst/playback/gstsubtitleoverlay.c:
+ playback: Add define for colorspace element
+ Single point of change if you want to switch from ffmpegcolorspace
+ to colorspace.
+
+2011-08-25 15:14:58 +0100 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ videorate: fix dynamically changing average period
+ The average_period_set variable can be accessed in different threads, so
+ always lock it when reading. Furthermore when switching to averaging
+ mode we should make sure we don't have cached buffers that aren't used
+ in that mode. And any modeswitch will cause the latency to change, so we
+ should post a NewLatency message
+
+2011-08-23 10:11:52 +0200 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * gst/videorate/Makefile.am:
+ * gst/videorate/gstvideorate.c:
+ * gst/videorate/gstvideorate.h:
+ videorate: Port to basetransform
+
+2011-08-22 15:52:57 +0200 Sjoerd Simons <sjoerd.simons@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ Correct added versions
+
+2011-08-31 14:45:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Only unref ts_offset elements if they're not NULL
+
+2011-08-31 12:39:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Keep the chain mutex locked while connecting to the notify::caps signal
+
+2011-08-30 18:21:31 +1000 Jan Schmidt <thaytan@noraisin.net>
+
+ * tests/examples/seek/seek.c:
+ seek: Accept pipeline descriptions for audiosink/videosink
+ Make the element_factory_make_or_warn utility function try parsing
+ the input string as a bin if element_factory_make() fails. This makes
+ the --audiosink/--videosink commandline options accept a pipeline
+ string.
+
+2011-08-30 18:21:31 +1000 Jan Schmidt <thaytan@noraisin.net>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Try include 'pitch', if no other sink is provided
+ As a default, try the pipeline 'pitch ! audioconvert ! autoaudiosink'
+ before trying plain autoaudiosink
+
+2011-08-27 14:57:41 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/Makefile.am:
+ * gst-libs/gst/pbutils/Makefile.am:
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ pbutils: don't depend on libgstvideo just to parse some caps
+ Let's extract those ints and fractions ourselves and not depend
+ on libgstvideo.
+
+2011-08-27 13:31:07 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/Makefile.am:
+ * gst-libs/gst/audio/Makefile.am:
+ * win32/common/libgstaudio.def:
+ audio: add GstBaseAudioDecoder and GstBaseAudioEncoder to build
+ However, libgstaudio now depends on libgstvideo (via pbutils).
+ https://bugzilla.gnome.org/show_bug.cgi?id=642690
+ API: gst_audio_info_clear()
+ API: gst_audio_info_convert()
+ API: gst_audio_info_copy()
+ API: gst_audio_info_free()
+ API: gst_audio_info_from_caps()
+ API: gst_audio_info_init()
+ API: gst_audio_info_to_caps()
+ API: gst_base_audio_decoder_finish_frame()
+ API: gst_base_audio_decoder_get_audio_info()
+ API: gst_base_audio_decoder_get_byte_time()
+ API: gst_base_audio_decoder_get_delay()
+ API: gst_base_audio_decoder_get_latency()
+ API: gst_base_audio_decoder_get_max_errors()
+ API: gst_base_audio_decoder_get_min_latency()
+ API: gst_base_audio_decoder_get_parse_state()
+ API: gst_base_audio_decoder_get_plc()
+ API: gst_base_audio_decoder_get_plc_aware()
+ API: gst_base_audio_decoder_get_tolerance()
+ API: gst_base_audio_decoder_get_type()
+ API: gst_base_audio_decoder_set_byte_time()
+ API: gst_base_audio_decoder_set_latency()
+ API: gst_base_audio_decoder_set_max_errors()
+ API: gst_base_audio_decoder_set_min_latency()
+ API: gst_base_audio_decoder_set_plc()
+ API: gst_base_audio_decoder_set_plc_aware()
+ API: gst_base_audio_decoder_set_tolerance()
+ API: gst_base_audio_encoder_finish_frame()
+ API: gst_base_audio_encoder_get_audio_info()
+ API: gst_base_audio_encoder_get_frame_max()
+ API: gst_base_audio_encoder_get_frame_samples()
+ API: gst_base_audio_encoder_get_hard_resync()
+ API: gst_base_audio_encoder_get_latency()
+ API: gst_base_audio_encoder_get_lookahead()
+ API: gst_base_audio_encoder_get_mark_granule()
+ API: gst_base_audio_encoder_get_perfect_timestamp()
+ API: gst_base_audio_encoder_get_tolerance()
+ API: gst_base_audio_encoder_get_type()
+ API: gst_base_audio_encoder_proxy_getcaps()
+ API: gst_base_audio_encoder_set_frame_max()
+ API: gst_base_audio_encoder_set_frame_samples()
+ API: gst_base_audio_encoder_set_hard_resync()
+ API: gst_base_audio_encoder_set_latency()
+ API: gst_base_audio_encoder_set_lookahead()
+ API: gst_base_audio_encoder_set_mark_granule()
+ API: gst_base_audio_encoder_set_perfect_timestamp()
+ API: gst_base_audio_encoder_set_tolerance()
+
+2011-08-27 13:15:54 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ docs: add since markers to baseaudio{decoder,encoder} documentation
+
+2011-08-27 12:47:40 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudiodecoder, baseaudioencoder: fix some compiler warnings
+ Leaving the GST_USE_UNSTABLE_API guards in until some of the
+ ported decoders have been updated and it's clear that I didn't
+ mess up anywhere porting things to the new audio API.
+
+2011-08-27 12:41:28 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioutils.c:
+ * gst-libs/gst/audio/gstbaseaudioutils.h:
+ baseaudioutils: remove, merged into or superseded by audio.c
+
+2011-08-27 12:39:50 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: port to new GstAudioInfo API
+
+2011-08-27 12:37:16 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ baseaudiodecoder: port to GstAudioInfo API
+
+2011-08-27 11:43:02 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/audio.c:
+ * gst-libs/gst/audio/audio.h:
+ audio: add gst_audio_info_{init,clear} and gst_audio_info_{copy,free}
+
+2011-08-22 20:15:15 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/audio.c:
+ * gst-libs/gst/audio/audio.h:
+ * gst-libs/gst/audio/multichannel.c:
+ * gst-libs/gst/audio/multichannel.h:
+ audio: add GstAudioFormat, GstAudioFormatInfo and GstAudioInfo
+ Same as in 0.11, but with caps parsing/serialising for 0.10 style
+ caps. Add setting default channel positions.
+
+2011-08-17 18:48:41 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: remove leftover experimental code
+
+2011-08-17 18:32:54 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioutils.c:
+ * gst-libs/gst/audio/gstbaseaudioutils.h:
+ audioutils: modify _parse, add GType support functions
+
+2011-08-16 21:11:42 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ baseaudiodecoder: move properties to private storage and add _get/_set
+
+2011-08-16 21:11:52 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: rename property
+
+2011-08-16 20:39:07 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ baseaudiodecoder: replace context helper structure by various _get/_set
+
+2011-08-16 18:59:13 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: move properties to private storage and add _get/_set
+
+2011-08-16 18:25:43 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: rename some properties
+
+2011-08-16 18:23:14 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: replace context helper structure by various _get/_set
+
+2011-08-16 17:27:07 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ * gst-libs/gst/audio/gstbaseaudioutils.c:
+ * gst-libs/gst/audio/gstbaseaudioutils.h:
+ baseaudio: rename GstAudioState to GstAudioFormatInfo
+
+2011-06-17 11:54:08 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: TEMP; avoid some imperfect ts jitter ?
+ ... even when not in perfect mode ?
+
+2011-04-28 12:01:43 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: debug format fixes
+
+2011-04-28 12:01:30 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: debug format fix
+
+2011-03-31 14:03:11 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: fixup documentation
+
+2011-03-29 15:51:40 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: fix FLUSH_STOP actions
+
+2011-03-28 13:16:27 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: preserve upstream seek event seqnum
+
+2011-03-22 11:09:56 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: use buffer running time for granule calculation
+
+2011-03-22 10:45:47 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: minor fix in ts resync
+
+2011-03-21 11:40:31 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ baseaudiodecoder: improve glitch resilience
+ Provide a replacement for GST_ELEMENT_ERROR to avoid aborting at the first
+ atom out of place, while on the other hand not failing indefinitely.
+
+2011-03-17 12:09:47 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ baseaudiodecoder: add limited legacy seeking support
+
+2011-03-16 14:41:40 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: cater for audio-codec tag
+
+2011-03-10 16:01:05 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ baseaudiodecoder: initial version
+
+2011-03-16 18:41:03 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: misc fixes
+
+2011-03-15 17:27:42 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ * gst-libs/gst/audio/gstbaseaudioutils.c:
+ * gst-libs/gst/audio/gstbaseaudioutils.h:
+ baseaudio: add audioutils for caps and query handling helper utils
+
+2011-03-14 12:39:49 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: mark unstable API
+
+2011-03-10 15:12:54 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: fix clearing context
+
+2011-03-10 15:12:19 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: simplify latency variable handling
+
+2011-03-10 14:28:48 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: minor fixes and code simplifications
+ Also modify and elaborate a bit on pre_push (though currently unused to no harm).
+
+2011-03-09 12:44:36 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: additional documentation on granule semantics and configuration
+
+2011-03-09 12:24:34 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: elaborate property names
+
+2011-03-09 12:22:04 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: rename state field xint to is_int
+
+2011-03-09 12:18:56 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ baseaudioencoder: gtk-doc syntax fixes
+
+2011-03-09 12:17:18 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ baseaudioencoder: minor fix and cleanup
+
+2011-03-01 14:08:18 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ baseaudiocodec: ... and also rename to baseaudiodecoder
+
+2011-03-01 13:58:31 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ gst-libs/gst/audio: Remove baseaudiodecoder
+ Adds little beyond baseaudiocodec (seeking, bit of query), and what it adds
+ is mainly out-of-scope (e.g. decoder seeking, should be done by upstream
+ demuxer/parser) and/or based on non-prime example (mad).
+
+2009-09-17 13:26:28 +0200 Iago Toral <itoral@igalia.com>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ baseaudiodecoder: Return TRUE if we run into special conversion cases.
+
+2009-09-01 14:17:53 +0200 Iago Toral <itoral@igalia.com>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ audio: initial version of GstBaseAudioCodec
+ Moved most of the code to GstBaseAudioCodec, GstBaseAudioDecode is
+ now really small, maybe we do not really need it (or its encoder
+ counterpart). Added more API for subclasses and documentation.
+
+2009-08-14 09:45:52 +0200 Iago Toral <itoral@igalia.com>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ Added src_queries to decoder class. Added handle_discont to decoder class. Reworked reset. Various other minor fixes.
+
+2009-08-06 15:28:00 +0200 Iago Toral <itoral@igalia.com>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ Added a draft implementation of gstbaseaudiodecoder
+
+2011-03-01 11:56:29 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiodecoder.c:
+ * gst-libs/gst/audio/gstbaseaudiodecoder.h:
+ Added audio directory for audio codec base classes
+
+2011-02-18 16:38:37 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ audioencoders: add streamheader helper utility
+
+2011-01-27 16:52:50 +0100 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudioencoder.c:
+ * gst-libs/gst/audio/gstbaseaudioencoder.h:
+ audioencoders: baseaudioencoder and ported encoders
+
+2011-08-26 10:03:26 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * win32/common/libgstpbutils.def:
+ win32: Add new discoverer API
+
+2011-08-26 10:03:17 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: Add new discoverer API
+
+2011-08-24 16:29:08 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ * gst-libs/gst/pbutils/gstdiscoverer.h:
+ * gst-libs/gst/pbutils/pbutils-private.h:
+ * tools/gst-discoverer.c:
+ discoverer: retrieve audio track language from tags too
+ https://bugzilla.gnome.org/show_bug.cgi?id=657257
+
+2011-08-24 15:09:47 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: consider subtitles as raw
+ Otherwise, discoverer will generated an "inner" codec
+ where there can be a tranformation (eg, kate -> DVD SPU,
+ and various ->text/x-pango-markup).
+ https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-24 15:05:38 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: add application/x-kate to subtitles caps
+ https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-24 14:59:38 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: get language from other tags if we did not get it already
+ https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-24 15:04:50 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ * gst-libs/gst/pbutils/gstdiscoverer.h:
+ * gst-libs/gst/pbutils/pbutils-private.h:
+ * tools/gst-discoverer.c:
+ discoverer: add subtitles API
+ https://bugzilla.gnome.org/show_bug.cgi?id=639055
+
+2011-08-21 14:51:45 -0700 David Schleef <ds@schleef.org>
+
+ * gst/playback/gstplaysink.c:
+ playback: reference count ts_offset
+ Apparently this object is being used after it's freed. This is one
+ way to fix it, although perhaps not the best way. Fixes: #656715.
+
+2011-08-25 14:55:14 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: fix caps leak
+ https://bugzilla.gnome.org/show_bug.cgi?id=657333
+
+2011-07-08 23:06:46 -0400 Olivier Crête <olivier.crete@collabora.com>
+
+ * gst-libs/gst/rtp/gstbasertppayload.c:
+ basertppayload: Make perfect timestamps reproducible across element restart
+ Without the perfect timestamp machinery, the RTP timestamp can be
+ computed directly from the running time of a buffer, but the perfect
+ timestamp patch broke that assumption. This patch restores it by
+ having the first perfect timestamp be the running time of that buffer
+ and counting from there.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=654434
+
+2011-08-24 17:39:11 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: fix leaks in skeleton writing
+ https://bugzilla.gnome.org/show_bug.cgi?id=563251
+
+2011-08-18 16:36:23 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ oggmux: generate message headers from received tags
+ Some message headers can be deduced from tags (eg, "Language").
+ https://bugzilla.gnome.org/show_bug.cgi?id=563251
+
+2011-08-18 10:05:17 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggparse.c:
+ ogg: use memory slices where appropriate
+ While there, avoid zeroing newly allocated memory where unnecessary
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-24 14:05:27 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ playsink{audio,video}convert: Send NEWSEGMENT events to sinkpads instead of pushing them
+
+2011-08-23 11:12:10 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not warn when reaching EOS while scanning for the end chain
+ After all, we were asking for it.
+ This gets rid of the last warning-about-expected-condition.
+ w00t.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 11:08:25 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: add media type to chain information reports
+ One more little step in making logs a little less abstruse.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 11:05:11 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: correctly identify skeleton EOS packet
+ It is 0 byte, and was triggering the "bad packet" logic.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:58:20 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not warn about expected occurences
+ In this case, finding a skeleton packet.
+ Once upon a time, it used to be rare indeed, but no more.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:47:53 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not warn when finding a non BOS page
+ After all, we do hope to find actual data for these streams.
+ However, warn if we could not set up a chain when we find a
+ non BOS page, as that means we don't have a valid Ogg stream.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:40:12 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: rename local variable for clarity
+ While the casual reader might end up bewildered by just why this
+ change might increase clarity, it just happens than, in the libogg
+ and associated sources, op is the canonical name for an ogg_packet
+ whlie og is the canonical name for an ogg_page, and reading this
+ code confuses me.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:32:36 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not try to determine duration of header packets
+ Headers are inherently durationless.
+ Instead, set duration to 0 to avoid increasing tracked granpos,
+ and do not warn about it, since it is totally expected.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:29:49 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: include stream type in warnings
+ It makes it easier to work out what's going on.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-23 10:28:33 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: set skeleton stream media type to application/x-ogg-skeleton
+ This is to match the typefinder, and to make logs clearer.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657151
+
+2011-08-17 17:09:44 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ oggmux: add skeleton write support
+ Version written is 3.0
+ Base times are left empty for now.
+ Content-Type should be the MIME type of the stream. It is set to
+ the GStreamer media type for now, which is probably the same for
+ the streams oggmux supports.
+ https://bugzilla.gnome.org/show_bug.cgi?id=563251
+
+2011-08-22 14:56:38 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not skip sparse streams when determining start times
+ This fixes demuxing of streams containing only sparse streams,
+ which would cause an infinite loop in _read_end_chain.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657062
+
+2011-08-22 14:55:59 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ oggdemux: do not ignore sparse streams' start time
+ But do not wait for them either, if we don't have a packet for them.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657062
+
+2011-07-21 17:16:26 -0400 Monty Montgomery <cmontgom@redhat.com>
+
+ * ext/vorbis/gstvorbisenc.c:
+ vorbisenc: Relax overly-tight jitter tolerances in gstvobisenc
+ vorbisenc currently reacts in a rater draconian fashion if input
+ timestamps are more than 1/2 sample off what it considers ideal. If data
+ is 'too late' it truncates buffers, if it is 'too soon' it completely
+ shuts down encode and restarts it. This is causingvorbisenc to produce
+ corrupt output when encoding data produced by sources with bugs that
+ produce a smple or two of jitter (eg, flacdec)
+
+2011-08-22 09:06:53 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: fix text buffer leak
+ Make sure to always unref the input text buffer.
+ Reported by bcxa.sz@gmail.com.
+ https://bugzilla.gnome.org/show_bug.cgi?id=657049
+
+2011-08-20 19:46:31 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/video/gstvideosink.h:
+ docs: fix xref for the property
+
+2011-08-20 19:16:42 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/audio/gstaudiofilter.c:
+ * gst-libs/gst/interfaces/colorbalance.c:
+ * gst-libs/gst/interfaces/mixer.c:
+ * gst-libs/gst/interfaces/navigation.c:
+ * gst-libs/gst/interfaces/streamvolume.h:
+ * gst-libs/gst/interfaces/xoverlay.c:
+ * gst-libs/gst/pbutils/gstdiscoverer-types.c:
+ * gst-libs/gst/pbutils/install-plugins.h:
+ * gst-libs/gst/rtp/gstrtpbuffer.c:
+ * gst-libs/gst/rtsp/gstrtsptransport.c:
+ * gst-libs/gst/rtsp/gstrtspurl.c:
+ * gst-libs/gst/sdp/gstsdpmessage.c:
+ * gst-libs/gst/video/gstvideosink.h:
+ docs: handle warnings emitted by gtk-doc
+ This is useful and in most cases someone had put arbitrary markup into the docs,
+ misspelled xref'ed symbols, forgot to add stuff to the docs etc..
+
+2011-08-20 17:53:11 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: partially revert my last commit
+ Somehow this was already there, but I missed that commit.
+
+2011-08-20 14:11:11 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/tag/licenses.c:
+ docs: add new taglicense docs and clean them up
+ Avoid ugly docbook tags unless needed.
+
+2011-08-20 12:37:10 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * 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/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: update for new translatable string
+
+2011-08-20 12:36:20 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/Makefile.am:
+ tag: fix distcheck issue
+ Dist licenses dict.
+
+2011-08-18 16:20:57 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggparse.c:
+ ogg: do not use 32 bit modifiers to print serial numbers
+ If ints are 64 bits, 32 bits should get promoted in varargs anyway,
+ and we don't care about 16 bit ints.
+ This makes the code a lot more readable, and still gets us nice
+ hexadecimal 32 bit serialnos.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-07-27 11:05:31 +0000 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Reconfigure when pads are added later
+ Instead of just assuming all pads are created at the same time,
+ remember which ones are actually new (via ->pending_blocked_pads).
+ This allows the following use-case to properly work:
+ * Upstream starts with audio-only
+ * Only that pad gets data, blocks and a real audio sink is created
+ * Upstream laters adds a video stream
+ * A new pad is requested, blocks and reconfiguration kicks in in
+ order to add a new real video sink
+
+2011-08-18 09:37:38 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/README:
+ ogg: get the operator precedence right, even if only a doc
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-18 09:30:46 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: vorbis has a preroll of 2
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 19:40:08 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggstream.c:
+ * ext/ogg/gstoggstream.h:
+ oggstream: new convenience function to get a stream's media type
+ This will make logging a lot clearer, both in code and in output.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 18:48:54 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ * ext/ogg/gstoggstream.c:
+ * ext/ogg/gstoggstream.h:
+ ogg: move the "always flush page" to oggstream
+ It avoids checking for specific media types in the muxer.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 18:38:39 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: use oggstream to decide which BOS packets to place first
+ Ogg recommends video BOS packets to be first.
+ Use the "is_video" flag in oggstream to select those, rather than
+ check for known mime types.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 18:03:16 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggdemux.c:
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggstream.h:
+ ogg: rationalize serialno type to guint32
+ It is a 32 bit unsigned number.
+ Sure, the libogg API uses a long, but that's an unfortunate oversight.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 17:39:18 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: factor the header packet creation code
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-17 17:18:47 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: headers should always have granpos 0
+ https://bugzilla.gnome.org/show_bug.cgi?id=656775
+
+2011-08-18 09:48:16 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/audioresample/resample.c:
+ audioresample: fix build without orc
+ https://bugzilla.gnome.org/show_bug.cgi?id=656781
+
+2011-08-15 01:22:02 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstid3tag.c:
+ * tests/check/libs/tag.c:
+ tag: id3: avoid some more relocations in genre table
+
+2011-08-12 12:07:32 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ * tests/check/elements/audioresample.c:
+ audioresample: add FFT based checks
+ Send a few simple tones through audioresample and check
+ that the main frequency spot is the same for the input and
+ the resampled output.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656392
+
+2011-08-15 23:41:24 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ rtspconnection: add OSX specific hack to detect when a connection is refused
+ Unlike linux, OSX wakes up select with POLLOUT (instead of POLLERR) when
+ connect() is done async and the connection is refused. Therefore always check
+ for the socket error state using getsockopt (..., SO_ERROR, ...) after a
+ connection attempt.
+
+2011-08-15 00:17:14 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: add new license API to docs
+
+2011-08-15 00:03:39 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ configure: try pkg-config first when looking for zlib
+
+2011-08-14 20:44:19 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2.3.0.txt:
+ * gst-libs/gst/tag/id3v2.4.0-frames.txt:
+ * gst-libs/gst/tag/id3v2.4.0-structure.txt:
+ tag: id3v2: add specs to git for reference
+
+2011-08-14 13:32:12 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: avoid some relocations, make table static
+
+2011-08-14 01:47:41 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2.c:
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: add debug category for ID3 tag parsing
+
+2011-07-18 18:09:53 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * configure.ac:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/tag/Makefile.am:
+ * gst-libs/gst/tag/id3v2.c:
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2frames.c:
+ * gst-libs/gst/tag/tag.h:
+ * gst-libs/gst/tag/tags.c:
+ * win32/common/libgsttag.def:
+ tag: id3v2: add id3v2 tag parsing helpers
+ https://bugzilla.gnome.org/show_bug.cgi?id=654388
+
+2011-02-22 15:19:00 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: return ID3TAGS_BROKEN_TAG for unsupported versions
+ This prevents us for trying to work with a NULL taglist.
+
+2011-01-02 19:23:51 +0000 Erich Schubert <erich@debian.org>
+
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: fix parsing of ID3v2.4 genre frames with multiple genres
+ We'd only extract the first genre (multiple times) instead of all
+ genres.
+ https://bugzilla.gnome.org/show_bug.cgi?id=638535
+
+2010-09-24 15:19:15 +0200 Edward Hervey <bilboed@bilboed.com>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: Sanitize id3 frame names
+ This is similar to what is done in qtdemux. Avoids providing invalid
+ structure/tags names
+
+2010-03-30 01:50:32 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: fix parsing of unsynced frames with data length indicator
+ Fixes bug #614158.
+
+2010-03-20 00:54:14 +0100 Benjamin Otte <otte@redhat.com>
+
+ * gst-libs/gst/tag/id3v2.c:
+ Add -Wwrite-strings to the configure flags
+ ... and fix all warnings
+
+2009-12-13 13:19:43 +0000 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: prefer two letter ISO 639-1 code for extended comment
+
+2009-10-09 15:59:25 +0200 Josep Torra <n770galaxy@gmail.com>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: fixes warnings building on macosx
+ Another round on the formating of that debug line.
+
+2009-10-09 14:44:02 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: cast pointer math results to glong
+
+2009-10-09 13:38:17 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: don't cast, but use the right format specified instead
+ This correct some of the previous macos fixes.
+
+2009-10-09 11:42:36 +0200 Josep Torra <n770galaxy@gmail.com>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: fix printf warnings on macosx
+
+2009-10-07 14:03:20 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: fprintf, sprintf, sscanf need stdio.h
+
+2009-09-22 15:03:20 +0200 Alessandro Decina <alessandro.d@gmail.com>
+
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: Fix compile warnings with gcc 4.0.1.
+
+2009-08-09 12:52:17 +0200 LoneStar <lone@auvtech.com>
+
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: Try GST_*_TAG_ENCODING and locale encoding if tags are not UTF8
+ Fixes bug #499242.
+
+2009-08-07 16:42:39 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: sizes in ID3 v2.3 are unlikely to be sync-safe integers
+ In ID3 v2.3 compressed frames will have a 4-byte data length indicator
+ after the frame header to indicate the size of the decompressed data.
+ This integer is unlikely to be a sync-safe integer for v2.3 tags,
+ only in v2.4 it's sync-safe.
+
+2009-08-07 16:36:55 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: fix typo in debug message
+
+2009-08-07 16:02:23 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2.c:
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2frames.c:
+ tag: id3v2: fix parsing of unsync'ed ID3 v2.4 tags and frames
+ Reversing the unsynchronisation seems to work slightly differently
+ for ID3 v2.3 tags and v2.4 tags: v2.3 tags don't have syncsafe frame
+ sizes in the frame header, so the unsynchronisation is applied to
+ the whole frame data including all the frame headers. v2.4 frames
+ have sync-safe sizes, however, so the unsynchronisation only needs
+ to be applied to the actual frame data, and it seems that's what's
+ being done as well. So we need to undo the unsynchronisation on a
+ per-frame basis for v2.4 tags for things to work properly.
+ Fixes extraction of coverart/images from APIC frames in ID3 v2.4
+ tags (#588148).
+ Add unit test for this as well.
+
+2009-04-24 01:51:35 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: parse unsynchronised tags properly
+ We didn't handle unsynchronization at all up to now, which might have
+ caused frames to not be extracted - esp. frames after an APIC picture
+ frame. Fixes #577468.
+
+2009-04-24 01:01:53 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/id3v2.c:
+ tag: id3v2: pass the right size value for size of all frames to the parser
+ Frame data size is tag size adjusted for size of the tag header and
+ footer, not tag size including header and footer.
+
+2008-06-04 10:42:46 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Use new utility functions in libgsttag to process coverart (#512333).
+ Original commit message from CVS:
+ * ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
+ * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+ Use new utility functions in libgsttag to process coverart (#512333).
+
+2008-01-11 21:08:59 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Generate the image-type values correctly. Leave them out of the caps when outputting a "preview image" tag, since it ...
+ Original commit message from CVS:
+ * ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
+ * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+ Generate the image-type values correctly. Leave them out of the caps
+ when outputting a "preview image" tag, since it only makes sense
+ to have one of those - the type is irrelevant.
+ * sys/sunaudio/gstsunaudiomixerctrl.c:
+ (gst_sunaudiomixer_ctrl_open):
+ If we can, mark the mixer multiple open when we use it, in case
+ (for some reason) the process wants to open it again elsewhere.
+
+2008-01-09 15:20:19 +0000 Tommi Myöhänen <ext-tommi.myohanen@nokia.com>
+
+ tag: id3v2: Make sure the ISO 639-X language code in ID3v2 COMM frames so we don't end up with non-UT...
+ Original commit message from CVS:
+ Based on patch by: Tommi Myöhänen <ext-tommi.myohanen nokia com>
+ * gst-libs/gst/tag/id3v2frames.c: (parse_comment_frame):
+ Make sure the ISO 639-X language code in ID3v2 COMM frames
+ is actually valid UTF-8 (or rather: ASCII), so we don't end
+ up with non-UTF8 strings in tags if there's garbage in the
+ language field. Also make sure the language code is always
+ lower case. Fixes: #508291.
+
+2007-12-14 10:17:10 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Parse WOAF frames and put the result into GST_TAG_CONTACT, which is where it would end up...
+ Original commit message from CVS:
+ * tag: id3v2: (parse_url_link_frame):
+ Parse WOAF frames and put the result into GST_TAG_CONTACT,
+ which is where it would end up if the same information was
+ put in a vorbis comment (don't think it's worth adding a
+ new URI tag for this). Fixes #488112.
+
+2007-11-14 21:39:47 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: We don't want the same string multiple times in a tag list for the same tag ever, for any tag, not jus...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c:
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+ We don't want the same string multiple times in a tag list for the
+ same tag ever, for any tag, not just for GST_TAG_GENRE, so make sure
+ this doesn't happen and remove special-case code for GST_TAG_GENRE.
+
+2007-10-11 17:55:29 +0000 Jason Kivlighn <jkivlighn@gmail.com>
+
+ tag: id3v2: Extract license/copyright URIs from ID3v2 WCOP frames (Fixes #447000).
+ Original commit message from CVS:
+ Based on patch by: Jason Kivlighn <jkivlighn gmail com>
+ * gst-libs/gst/tag/id3v2frames.c:
+ Extract license/copyright URIs from ID3v2 WCOP frames
+ (Fixes #447000).
+ * tests/check/elements/id3demux.c:
+ * tests/files/Makefile.am:
+ * tests/files/id3-447000-wcop.tag:
+ Add simple unit test.
+
+2007-10-06 16:13:14 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Port ID3 tag demuxer over to the new GstTagDemux in -base (now would be a good time to test re-importi...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/gstid3demux.c:
+ * gst-libs/gst/tag/gstid3demux.h:
+ * gst-libs/gst/tag/id3v2.c:
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2frames.c:
+ Port ID3 tag demuxer over to the new GstTagDemux in -base
+ (now would be a good time to test re-importing your music
+ collection).
+
+2007-03-12 13:28:29 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is the image format a vari...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+ Fix parsing of ID3 v2.2.0 PIC frames. Only in version >= 2.3.0 is
+ the image format a variable-length NUL-terminated string; in
+ versions before that the image format is a fixed-length string of
+ 3 characters (see #348644 for a sample tag).
+ Also make supplied mime type lower-case and fix up 'jpg' to 'jpeg'.
+
+2007-03-06 18:16:49 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise the four-digit number will be interp...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (parse_obsolete_tdat_frame):
+ Do not convert obsolete TDA/TDAT frames to TDRC frames, otherwise
+ the four-digit number will be interpreted as a year, whereas it is
+ month and day in DDMM format. Instead, parse TDAT frames and fix up
+ the date in the GST_TAG_DATE tag later if we also extracted a year.
+ Fixes #407349.
+
+2006-11-19 13:41:53 +0000 René Stadler <mail@renestadler.de>
+
+ tag: id3v2: Make sure that g_free always gets called on the same pointer that was returned by g_mallo...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+ Make sure that g_free always gets called on the same pointer that was
+ returned by g_malloc. Fixes #376594.
+ Do not leak memory if decompressed size is wrong.
+ Remove unneeded check of return value of g_malloc.
+ Patch by: René Stadler <mail@renestadler.de>
+
+2006-11-01 13:59:49 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: We require a -base more recent than 0.10.9, so it's safe to use
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+ We require a -base more recent than 0.10.9, so it's safe to use
+ GST_TYPE_TAG_IMAGE_TYPE unconditionally now.
+ * ext/dv/gstdvdec.c: (gst_dvdec_sink_event):
+ * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_sink_event):
+ Use _newsegment_full() now that we depend on a recent enough core.
+ * gst/wavparse/gstwavparse.c:
+ Remove cruft that we don't need any longer now that we depend on
+ a recent enough -base.
+
+2006-10-05 16:37:33 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Printf format fixes.
+ Original commit message from CVS:
+ * ext/cairo/gsttimeoverlay.c:
+ (gst_cairo_time_overlay_update_font_height):
+ * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_transform_caps):
+ * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_parse_image_data):
+ * ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain):
+ * ext/jpeg/gstsmokedec.c: (gst_smokedec_chain):
+ * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_chain):
+ * ext/libpng/gstpngdec.c: (user_endrow_callback):
+ * gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
+ * gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
+ (gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
+ (gst_avi_demux_stream_data):
+ * gst/cutter/gstcutter.c: (gst_cutter_chain):
+ * gst/debug/efence.c: (gst_efence_buffer_alloc),
+ (gst_fenced_buffer_copy):
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+ * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
+ * gst/matroska/matroska-mux.c: (gst_matroska_mux_start):
+ * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send),
+ (gst_rtspsrc_handle_message):
+ * gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
+ * sys/ximage/ximageutil.c: (ximageutil_xcontext_get):
+ Printf format fixes.
+
+2006-08-22 13:53:34 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: If strings in text fields are marked ISO8859-1, but contain valid UTF-8 already, then han...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (parse_text_identification_frame),
+ (parse_insert_string_field):
+ If strings in text fields are marked ISO8859-1, but contain
+ valid UTF-8 already, then handle them as UTF-8 and ignore
+ the encoding. (#351794)
+
+2006-08-16 13:01:32 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ configure.ac: Require CVS of GStreamer core and -base (for
+ Original commit message from CVS:
+ * configure.ac:
+ Require CVS of GStreamer core and -base (for
+ GST_TAG_EXTENDED_COMMENT and gst_tag_parse_extended_comment()).
+ * ext/taglib/gstid3v2mux.cc:
+ Write extended comment tags properly (#348762).
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (parse_comment_frame):
+ Extract COMM frames into extended comments, which makes it
+ easier to properly retain the description bit of the tag
+ and maintain this information when re-tagging (#348762).
+
+2006-07-25 16:47:04 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as well, and add the version to...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c:
+ (id3demux_add_id3v2_frame_blob_to_taglist):
+ Extract frames for ID3v2 versions prior to ID3v2.3.0 properly as
+ well, and add the version to the blob's buffer caps, since that
+ information will be needed for deserialisation later on (#348644).
+
+2006-07-23 11:33:54 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: On second thought, it might be wiser and more efficient not to do tag registration from a streaming th...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/gstid3demux.c: (plugin_init):
+ * gst-libs/gst/tag/id3v2.c:
+ (id3demux_add_id3v2_frame_blob_to_taglist):
+ * gst-libs/gst/tag/id3v2.h:
+ On second thought, it might be wiser and more efficient
+ not to do tag registration from a streaming thread.
+
+2006-07-23 10:56:27 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Put ID3v2 frames we can't parse as binary blobs into private tags, so that they are not lost ...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c:
+ (id3demux_add_id3v2_frame_blob_to_taglist),
+ (id3demux_id3v2_frames_to_tag_list):
+ Put ID3v2 frames we can't parse as binary blobs into private
+ tags, so that they are not lost when retagging, at least once
+ id3v2mux has been taught to re-inject those frames again.
+ See bug #334375.
+
+2006-07-21 10:57:00 +0000 Wim Taymans <wim.taymans@gmail.com>
+
+ tag: id3v2: Don't use \n in debug lines
+ Original commit message from CVS:
+ * gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
+ (gst_avi_demux_process_next_entry):
+ Fix some leaks.
+ * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+ Don't use \n in debug lines.
+
+2006-06-22 12:17:13 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Set image type from APIC frame as "image-type" field of GST_TAG_IMAGE buffer caps (#344605).
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
+ Set image type from APIC frame as "image-type" field
+ of GST_TAG_IMAGE buffer caps (#344605).
+
+2006-06-11 19:31:10 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Extract images from ID3v2 tags (APIC frames). Fixes #339704.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (scan_encoded_string), (parse_picture_frame):
+ Extract images from ID3v2 tags (APIC frames). Fixes #339704.
+ * configure.ac:
+ Require core >= 0.10.8 (for GST_TAG_IMAGE and
+ GST_TAG_PPEVIEW_IMAGE used in the patch above).
+
+2006-05-28 10:05:47 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: A track/volume number or count of 0 does not make sense, just ignore it along with negati...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+ A track/volume number or count of 0 does not make sense,
+ just ignore it along with negative numbers (a tag might
+ only contain a track count without a track number).
+
+2006-05-19 14:05:53 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Don't output any tag when we encounter a negative track number - the tag type is uint, so...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+ Don't output any tag when we encounter a negative track number - the
+ tag type is uint, so we end up outputting huge positive numbers
+ instead. (Fixes: #342029)
+
+2006-05-16 14:07:29 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Rework string parsing to always walk over BOM markers in UTF16 strings, using the endianness indicated by the innermost one ...
+ Original commit message from CVS:
+ * gst/autodetect/gstautoaudiosink.c:
+ (gst_auto_audio_sink_find_best):
+ * gst/autodetect/gstautovideosink.c:
+ (gst_auto_video_sink_find_best):
+ Make the name of the child element be based on the name of the
+ parent, so that debug output is more useful.
+ * gst-libs/gst/tag/id3v2frames.c: (find_utf16_bom),
+ (parse_insert_string_field), (parse_split_strings):
+ Rework string parsing to always walk over BOM markers in UTF16
+ strings, using the endianness indicated by the innermost one,
+ then trying the opposite endianness if that fails to convert
+ to valid UTF-8. Fixes #341774
+
+2006-05-12 08:21:37 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Some more debug info. No need to check whether the string returned by g_convert() is real...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (parse_insert_string_field):
+ Some more debug info. No need to check whether the string
+ returned by g_convert() is really UTF-8 - either it is or
+ we get NULL returned.
+
+2006-05-10 13:51:01 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Fix parsing of numeric genre strings some more, by ensuring that we only try and parse st...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3v2_genre_fields_to_taglist):
+ Fix parsing of numeric genre strings some more, by ensuring that
+ we only try and parse strings that a) Start with '(' and b) Consist
+ only of digits.
+ Also, when finding an escaping '((' sequence, bust it back to '(' by
+ swallowing the first parenthesis
+
+2006-04-28 11:37:22 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Recognise and skip any byte order marker (BOM) in
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (has_utf16_bom),
+ (parse_split_strings):
+ Recognise and skip any byte order marker (BOM) in
+ UTF-16 strings.
+
+2006-04-17 10:01:51 +0000 Alex Lancaster <alexlan@fedoraproject.org>
+
+ tag: id3v2: Recognise TCO (Genre) tags in ID3v2.2
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c:
+ Recognise TCO (Genre) tags in ID3v2.2. Patch by Alex Lancaster
+ (Fixes #338713)
+
+2006-03-30 23:37:16 +0000 Sébastien Moutte <sebastien@moutte.net>
+
+ tag: id3v2: use of GST_DEBUG instead of DEBUG(a...) for WIN32
+ Original commit message from CVS:
+ * ext\jpeg\smokecodec.c:
+ use of GST_DEBUG instead of DEBUG(a...) for WIN32
+ * ext\speex\gstspeexenc.c: (gst_speexenc_set_header_on_caps):
+ move first instruction after all variables declarations
+ * gst\alpha\gstalpha.c:
+ * gst\effectv\gstshagadelic.c:
+ * gst\smpte\paint.c:
+ * gst\videofilter\gstvideobalance.c:
+ define M_PI if it's not defined (it's not defined on WIN32)
+ * gst\cutter\gstcutter.c: (gst_cutter_chain):
+ * gst\id3demux\id3v2frames.c: (parse_relative_volume_adjustment_two):
+ * gst\level\gstlevel.c: (gst_level_set_property), (gst_level_transform_ip):
+ * gst\matroska\matroska-demux.c: (gst_matroska_demux_parse_info),
+ (gst_matroska_demux_video_caps):
+ * gst\matroska\matroska-mux.c: (gst_matroska_mux_start), (gst_matroska_mux_finish):
+ * gst\wavparse\gstwavparse.c: (gst_wavparse_stream_data):
+ use gst_guint64_to_gdouble for conversions
+ * gst\goom\filters.c: (setPixelRGB_):
+ fix a debug which was using undefined variable
+ * gst\level\gstlevel.c: (gst_level_set_caps), (gst_level_transform_ip):
+ * gst\matroska\ebml-read.c: (gst_ebml_read_sint):
+ replace LL suffix with L suffix (LL isn't supported by MSVC6.0)
+ * win32/vs6:
+ add vs6 projects files for most of plugins-good
+
+2006-03-22 13:00:34 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Don't attempt typefinding on too-short buffers that have been completely trimmed away.
+ Original commit message from CVS:
+ * gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
+ * gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_chain):
+ Don't attempt typefinding on too-short buffers that have been
+ completely trimmed away.
+ * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
+ Improve the debug output
+
+2006-03-16 16:06:22 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: We only care about gain and peak data for the master volume.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c:
+ (parse_relative_volume_adjustment_two):
+ We only care about gain and peak data for the master volume.
+
+2006-03-16 13:22:28 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ tag: id3v2: Read replay gain tags
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (parse_id_string), (parse_unique_file_identifier),
+ (parse_relative_volume_adjustment_two), (id3v2_tag_to_taglist):
+ Read replay gain tags (#323721).
+
+2006-03-14 17:56:02 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ configure.ac: Bump -base requirement to 0.10.5 for gst_tag_from_id3_user_tag(), used by id3demux.
+ Original commit message from CVS:
+ * configure.ac:
+ Bump -base requirement to 0.10.5 for gst_tag_from_id3_user_tag(),
+ used by id3demux.
+ * gst-libs/gst/tag/gstid3demux.c: (plugin_init):
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (parse_user_text_identification_frame),
+ (parse_unique_file_identifier):
+ Add support for UFID and TXXX frames and extract musicbrainz tags.
+
+2006-02-18 20:48:09 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Handle 0 data size in otherwise valid frames.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+ * gst-libs/gst/tag/id3v2frames.c: (id3v2_genre_fields_to_taglist):
+ Handle 0 data size in otherwise valid frames.
+ Handle numeric strings in 2.4.0 even when not in parentheses
+
+2006-02-16 10:58:18 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: 3 2.3.0 used synch-safe integers for the tag size, but not for the frame size. (Fixes #331368)
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c: (id3demux_id3v2_frames_to_tag_list):
+ ID3 2.3.0 used synch-safe integers for the tag size, but not for the
+ frame size. (Fixes #331368)
+
+2006-02-13 12:00:51 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Add more validation to ensure that a char encoding conversion produced a valid UTF-8 string.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (parse_insert_string_field),
+ (parse_split_strings):
+ Add more validation to ensure that a char encoding conversion
+ produced a valid UTF-8 string.
+
+2006-02-04 13:30:12 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Adjust for data length indicators when parsing (Fixes #329810)
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (parse_split_strings):
+ Adjust for data length indicators when parsing (Fixes #329810)
+ Fix stupid bug parsing UTF-8 tag text.
+ Output tag strings with multiple fields as multiple tags, so the
+ app gets all the data.
+
+2006-02-03 13:06:24 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Never output a tag with a null contents string.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (parse_text_identification_frame),
+ (id3v2_tag_to_taglist), (id3v2_genre_string_to_taglist),
+ (id3v2_genre_fields_to_taglist):
+ Never output a tag with a null contents string.
+
+2006-01-30 23:13:05 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Someone should kick my butt. Remove ID3v1 tags from the end of the file.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_chain),
+ (gst_id3demux_read_id3v1), (gst_id3demux_sink_activate),
+ (gst_id3demux_send_tag_event):
+ * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v1_tag):
+ Someone should kick my butt. Remove ID3v1 tags from the end of the
+ file.
+ Improve error messages. Send the TAG message as soon as we complete
+ typefinding, instead of waiting until we send the first buffer.
+ Downstream tag event is still sent before the first buffer.
+
+2006-01-25 18:23:05 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Never trust ANY information encoded in a media file, especially when it's giving you size...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+ Never trust ANY information encoded in a media file, especially
+ when it's giving you sizes. (Fixes #328452)
+
+2006-01-23 14:32:47 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Remove errant break statement, and fix compilation with older GCC.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3v2_tag_to_taglist):
+ Remove errant break statement, and fix compilation with
+ older GCC.
+
+2006-01-23 09:22:17 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: Rewrite parsing of text tags to handle multiple NULL terminated strings. Parse numeric genre strings a...
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (parse_comment_frame), (parse_text_identification_frame),
+ (id3v2_tag_to_taglist), (id3v2_are_digits),
+ (id3v2_genre_string_to_taglist), (id3v2_genre_fields_to_taglist),
+ (parse_split_strings), (free_tag_strings):
+ Rewrite parsing of text tags to handle multiple NULL terminated
+ strings. Parse numeric genre strings and ID3v2 type
+ "(3)(6)Alternative" style genre strings.
+ Parse dates that are only YYYY or YYYY-mm format.
+
+2006-01-15 20:21:48 +0000 Sergey Scobich <sergey.scobich@gmail.com>
+
+ tag: id3v2: Fix compilation of id3demux when zlib is not present.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame):
+ Fix compilation of id3demux when zlib is not present.
+ (Fixes #326602; patch by: Sergey Scobich)
+
+2006-01-06 11:46:53 +0000 Edward Hervey <bilboed@bilboed.com>
+
+ tag: id3v2: Add gst_element_no_more_pads() for proper decodebin behaviour.
+ Original commit message from CVS:
+ * gst-libs/gst/tag/gstid3demux.c: (gst_id3demux_add_srcpad):
+ Add gst_element_no_more_pads() for proper decodebin behaviour.
+ * gst-libs/gst/tag/id3v2frames.c: (parse_comment_frame),
+ (parse_text_identification_frame), (parse_split_strings):
+ Failure to decode some tags is not a GST_ERROR() but a
+ GST_WARNING()
+ When iterating over a chunk of text, check that we haven't gone too
+ far.
+
+2005-12-28 18:55:32 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: If a broken tag has 0 bytes payload, at least still skip the 10 byte header
+ Original commit message from CVS:
+ * gst-libs/gst/tag/id3v2.c: (id3demux_read_id3v2_tag):
+ If a broken tag has 0 bytes payload, at least still skip
+ the 10 byte header
+
+2005-12-18 15:14:44 +0000 Jan Schmidt <thaytan@mad.scientist.com>
+
+ tag: id3v2: all new LGPL id3 demuxer, can use zlib for compressed frames
+ Original commit message from CVS:
+ * configure.ac:
+ Check for optional dependency on zlib for id3demux
+ * gst-libs/gst/tag/Makefile.am:
+ * gst-libs/gst/tag/gstid3demux.c: (gst_gst_id3demux_get_type),
+ (gst_id3demux_base_init), (gst_id3demux_class_init),
+ (gst_id3demux_reset), (gst_id3demux_init), (gst_id3demux_dispose),
+ (gst_id3demux_add_srcpad), (gst_id3demux_remove_srcpad),
+ (gst_id3demux_trim_buffer), (gst_id3demux_chain),
+ (gst_id3demux_set_property), (gst_id3demux_get_property),
+ (id3demux_get_upstream_size), (gst_id3demux_srcpad_event),
+ (gst_id3demux_read_id3v1), (gst_id3demux_read_id3v2),
+ (gst_id3demux_sink_activate), (gst_id3demux_src_activate_pull),
+ (gst_id3demux_src_checkgetrange), (gst_id3demux_read_range),
+ (gst_id3demux_src_getrange), (gst_id3demux_change_state),
+ (gst_id3demux_pad_query), (gst_id3demux_get_query_types),
+ (simple_find_peek), (simple_find_suggest),
+ (gst_id3demux_do_typefind), (gst_id3demux_send_tag_event),
+ (plugin_init):
+ * gst-libs/gst/tag/gstid3demux.h:
+ * gst-libs/gst/tag/id3v2.c: (read_synch_uint),
+ (id3demux_read_id3v1_tag), (id3demux_read_id3v2_tag),
+ (id3demux_id3v2_frame_hdr_size), (convert_fid_to_v240),
+ (id3demux_id3v2_frames_to_tag_list):
+ * gst-libs/gst/tag/id3v2.h:
+ * gst-libs/gst/tag/id3v2.4.0-frames.txt:
+ * gst-libs/gst/tag/id3v2.4.0-structure.txt:
+ * gst-libs/gst/tag/id3v2frames.c: (id3demux_id3v2_parse_frame),
+ (parse_comment_frame), (parse_text_identification_frame),
+ (id3v2_tag_to_taglist), (parse_split_strings):
+ All new LGPL id3 demuxer. Can use zlib for compressed frames,
+ otherwise it discards them. Works on my test files.
+ * gst/wavparse/gstwavparse.c: (gst_wavparse_loop):
+ Don't send EOS to a non-existing srcpad
+ The debug category can be static
+
+2011-08-11 18:50:08 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/audioresample/gstaudioresample.c:
+ audioresample: fix quality setting being ignored by the resampler state
+ https://bugzilla.gnome.org/show_bug.cgi?id=636562
+
+2011-08-11 15:54:15 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * configure.ac:
+ * gst/audioresample/resample.c:
+ * gst/audioresample/resample_sse.h:
+ * gst/audioresample/speex_resampler_double.c:
+ * gst/audioresample/speex_resampler_float.c:
+ audioresample: use SSE/SSE2 when possible
+ Compile in the code on i386 and x86_64, and use ORC to determine
+ when the runtime platform can run the code.
+ https://bugzilla.gnome.org/show_bug.cgi?id=636562
+
+2011-08-11 19:23:42 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/audioresample/resample_sse.h:
+ audioresample: fix SSE2 building with double precision
+ The full double implementation was missing.
+ https://bugzilla.gnome.org/show_bug.cgi?id=636562
+
+2011-08-11 12:12:07 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstexiftag.c:
+ tag: exif: Check for utf8 before trying to convert
+ If the string is already on utf8, there is no need to
+ try to convert it, because it is useless and it might garble
+ the string.
+
+2011-08-10 13:16:13 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * tests/check/libs/tag.c:
+ tests: tag: exif: Add tests for 'non-trivial' chars
+ Adds two new cases to check that characters are properly
+ converted to ascii when writen to exif and parsed correctly
+ back to utf8 when read.
+
+2011-08-09 16:02:28 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstexiftag.c:
+ tag: exif: Exif strings should be ascii
+ Use g_convert to turn all strings into extended ascii before writing
+ to the exif buffer and converting back from ascii to utf8 when
+ reading them.
+
+2011-08-10 15:57:02 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * win32/common/libgsttag.def:
+ win32: update libgsttag.def for new API
+
+2011-08-10 15:21:41 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/Makefile.am:
+ tag: don't build helper programs that generate/update data by default
+ No point building these by default. Also, these generated files
+ should go into the srcdir, not the builddir in this case, since
+ they're version controlled.
+
+2011-08-10 15:20:37 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/mklicensestables.c:
+ tag: fix stray printf in mklicensestables
+ Don't dump debug output to stdout.
+
+2011-08-10 15:06:59 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/licenses.c:
+ tag: fix compilation of new licenses code with GLib versions < 2.28
+ Add local g_variant_lookup_value() fallback for now when compiling
+ against older GLib versions.
+
+2011-08-10 14:57:14 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/tag/licenses.c:
+ * gst-libs/gst/tag/tag.h:
+ tag: add GType for GstTagLicenseFlags
+ API: gst_tag_license_flags_get_type()
+
+2011-08-10 10:49:38 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: fix runtime warnings when doing position query
+ Add missing 'break'.
+
+2011-07-15 13:19:38 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ * tests/check/libs/tag.c:
+ * tests/files/Makefile.am:
+ * tests/files/license-uris:
+ tag: add unit test for new license API
+ https://bugzilla.gnome.org/show_bug.cgi?id=646868
+
+2011-07-15 13:14:16 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * .gitignore:
+ * gst-libs/gst/tag/Makefile.am:
+ * gst-libs/gst/tag/mklicensestables.c:
+ tag: add mklicensestables utility
+ Add (uninstalled) tool to create licenses-table.dat from liblicense's
+ RDF files. It's not very pretty and makes loats of assumptions about
+ the input, but should work. If things change, we can fix it then.
+ https://bugzilla.gnome.org/show_bug.cgi?id=646868
+
+2011-07-15 13:07:55 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/Makefile.am:
+ * gst-libs/gst/tag/license-translations.dict:
+ * gst-libs/gst/tag/licenses-tables.dat:
+ * gst-libs/gst/tag/licenses.c:
+ * gst-libs/gst/tag/tag.h:
+ tag: add convenience API to handle creative commons licenses
+ Based on liblicense's RDF files.
+ API: GstTagLicenseFlags
+ API: gst_tag_get_licenses()
+ API: gst_tag_get_license_flags()
+ API: gst_tag_get_license_nick()
+ API: gst_tag_get_license_title()
+ API: gst_tag_get_license_version()
+ API: gst_tag_get_license_description()
+ API: gst_tag_get_license_jurisdiction()
+ https://bugzilla.gnome.org/show_bug.cgi?id=646868
+
+2011-08-08 10:00:40 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefind: bump probability if all frames we found are similar
+ Similar meaning same layer, same bitrate, and same number of channels
+ This fixes misdetection of (some MP3 files that have zero padding
+ between the ID3 tag and the MP3 stream) as H.264 video.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656018
+
+2011-08-05 16:53:47 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstvorbistag.c:
+ gstvorbistag: map ENCODER Vorbis comment to application-name
+ What GStreamer calls encoder ("encoder used to encode this stream") is
+ stored in the vendor string in Vorbis/Theora/Kate and possibly others.
+ The Vorbis comment packet used in those streams uses ENCODER as the name
+ of the encoding program, which GStreamer calls application-name.
+ https://bugzilla.gnome.org/show_bug.cgi?id=656034
+
+2011-08-05 11:32:09 +0100 Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+ * gst/volume/gstvolume.c:
+ volume: fix sample depth typo
+ https://bugzilla.gnome.org/show_bug.cgi?id=656022
+
+2011-08-05 13:05:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/volume/gstvolumeorc-dist.c:
+ volume: Update disted ORC files
+
+2011-08-03 14:14:55 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Set queues to silent=true
+ As encodebin doesn't connect to the queue signals, it can set
+ queues to silent mode to make queue not emit them.
+ Check https://bugzilla.gnome.org/show_bug.cgi?id=621299 for
+ more info on queue's silent property.
+
+2011-08-03 13:40:19 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Fix typo on installing properties
+ queue buffers and bytes properties have ids swapped, fix it.
+
+2011-08-03 10:18:29 +0200 Jonathan Liu <net147@gmail.com>
+
+ * ext/ogg/gstoggstream.c:
+ oggstream: Fix crashes with 0-byte vorbis packets
+ Fixes bug #655574.
+
+2011-07-28 14:43:53 +0200 Jens Georg <jensg@openismus.com>
+
+ * gst-libs/gst/pbutils/codec-utils.c:
+ pbutils: Add SP levels 4a, 5 and 6
+ https://bugzilla.gnome.org/show_bug.cgi?id=655503
+
+2011-07-26 16:10:17 +0200 Philip Jägenstedt <philipj@opera.com>
+
+ * ext/theora/gsttheoradec.c:
+ theoradec: segfault on 0-byte ogg_packet in _chain_reverse
+
+2011-07-29 10:23:02 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/Makefile.am:
+ * win32/common/libgsttag.def:
+ Add new GstTagMux base class
+ Hook up new tag muxing base class to build system.
+ https://bugzilla.gnome.org/show_bug.cgi?id=555437
+ API: GstTagMux
+
+2011-07-29 10:22:26 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/tag/gsttagmux.c:
+ * gst-libs/gst/tag/gsttagmux.h:
+ docs: add documentation for GstTagMux
+
+2011-07-28 20:38:37 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gsttagmux.c:
+ tagmux: require subclass to install sink pad template
+ Require the subclass to install both source and sink pad
+ templates. Also, print some warnings if the subclass doesn't
+ do that.
+ https://bugzilla.gnome.org/show_bug.cgi?id=555437
+
+2011-07-15 20:57:47 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gsttagmux.h:
+ tagmux: const-ify GstTagList argument of render vfuncs
+
+2011-07-15 20:39:20 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gsttagmux.c:
+ * gst-libs/gst/tag/gsttagmux.h:
+ tagmux: fix up private base class header so it can be made public
+ Move private bits into a private struct, add some padding.
+ https://bugzilla.gnome.org/show_bug.cgi?id=555437
+
+2011-07-28 23:31:03 +0100 Michael Smith <msmith@songbirdnest.com>
+
+ * gst-libs/gst/tag/gsttagmux.c:
+ * gst-libs/gst/tag/gsttagmux.h:
+ tagmux: add support for end tags
+ Originally "id3tag: Add new id3 tagging plugin, supports v1, v2.3,
+ and v2.4." from gst-plugins-bad. This is an artificial bridge commit.
+
+2010-06-06 18:00:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst-libs/gst/tag/gsttagmux.c:
+ ext: Don't use GST_DEBUG_FUNCPTR for GObject vfuncs
+
+2007-11-20 11:41:13 +0000 Julien Moutte <julien@moutte.net>
+
+ Fix build on Mac OS X 10.5
+ Original commit message from CVS:
+ 2007-11-20 Julien MOUTTE <julien@moutte.net>
+ * gst-libs/gst/tag/gsttagmux.c: (gst_tag_lib_mux_render_tag),
+ (gst_tag_lib_mux_adjust_event_offsets):
+ * gst/qtdemux/qtdemux.c: (qtdemux_parse_theora_extension):
+ * sys/osxaudio/Makefile.am:
+ * sys/osxvideo/cocoawindow.h:
+ * sys/osxvideo/cocoawindow.m: Fix build on Mac OS X 10.5
+
+2007-09-13 15:04:15 +0000 Sebastian Dröge <slomo@circular-chaos.org>
+
+ Update my mail address.
+ Original commit message from CVS:
+ * ext/taglib/gstapev2mux.cc:
+ * ext/taglib/gstapev2mux.h:
+ * gst-libs/gst/tag/gsttagmux.c:
+ * tests/check/elements/apev2mux.c:
+ Update my mail address.
+
+2006-05-30 14:35:18 +0000 Sebastian Dröge <mail@slomosnail.de>
+
+ Add apev2mux element (#343122).
+ Original commit message from CVS:
+ Patch by: Sebastian Dröge <mail at slomosnail de >
+ * docs/plugins/gst-plugins-good-plugins-docs.sgml:
+ * docs/plugins/gst-plugins-good-plugins-sections.txt:
+ * ext/taglib/Makefile.am:
+ * ext/taglib/gstapev2mux.cc:
+ * ext/taglib/gstapev2mux.h:
+ * ext/taglib/gstid3v2mux.cc:
+ * gst-libs/gst/tag/gsttagmux.c: (plugin_init):
+ * gst-libs/gst/tag/gsttagmux.h:
+ Add apev2mux element (#343122).
+ * tests/check/Makefile.am:
+ * tests/check/elements/apev2mux.c:
+ (test_taglib_apev2mux_create_tags),
+ (test_taglib_apev2mux_check_tags), (fill_mp3_buffer), (got_buffer),
+ (demux_pad_added), (test_taglib_apev2mux_check_output_buffer),
+ (test_taglib_apev2mux_with_tags), (GST_START_TEST),
+ (apev2mux_suite), (main):
+ Add unit test for apev2mux element.
+
+2006-05-18 12:46:08 +0000 James Doc Livingston <doclivingston@gmail.com>
+
+ gst-libs/gst/tag/gsttagmux.c: Merge event tags and tag setter tags correctly (#339918). Also, don't leak taglist in case...
+ Original commit message from CVS:
+ Patch by: James "Doc" Livingston <doclivingston gmail com>
+ * gst-libs/gst/tag/gsttagmux.c: (gst_tag_lib_mux_render_tag):
+ Merge event tags and tag setter tags correctly (#339918). Also,
+ don't leak taglist in case of an error.
+
+2006-05-01 11:46:33 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+
+ docs/plugins/Makefile.am: also check .cc files for gtk-doc markup
+ Original commit message from CVS:
+ * docs/plugins/Makefile.am:
+ also check .cc files for gtk-doc markup
+ * configure.ac:
+ * docs/plugins/gst-plugins-good-plugins-docs.sgml:
+ * docs/plugins/gst-plugins-good-plugins-sections.txt:
+ * tests/check/Makefile.am:
+ * tests/check/elements/id3v2mux.c: (id3v2mux_suite), (main):
+ * ext/Makefile.am:
+ * ext/taglib/Makefile.am:
+ * ext/taglib/gstid3v2mux.h:
+ * gst-libs/gst/tag/gsttagmux.c:
+ * gst-libs/gst/tag/gsttagmux.h:
+ move taglib-based id3v2muxer to -good. Fixes #336110.
+
+2006-04-30 16:16:59 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+
+ * gst-libs/gst/tag/gsttagmux.c:
+ small cleanups
+ Original commit message from CVS:
+ small cleanups
+
+2006-04-29 18:46:36 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ ext/taglib/gsttaglib.cc: Post an error message on the bus in the (extremely unlikely) case of an error.
+ Original commit message from CVS:
+ * ext/taglib/gsttaglib.cc:
+ Post an error message on the bus in the (extremely unlikely)
+ case of an error.
+
+2006-04-29 18:18:24 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ ext/taglib/: Split the actual ID3v2 tag rendering code into its own subclass.
+ Original commit message from CVS:
+ * ext/taglib/Makefile.am:
+ * ext/taglib/gstid3v2mux.cc:
+ * ext/taglib/gstid3v2mux.h:
+ * ext/taglib/gsttaglib.cc:
+ * ext/taglib/gsttaglib.h:
+ Split the actual ID3v2 tag rendering code into
+ its own subclass.
+
+2006-04-28 15:33:09 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+
+ * gst-libs/gst/tag/gsttagmux.c:
+ * gst-libs/gst/tag/gsttagmux.h:
+ pedantic cleanups
+ Original commit message from CVS:
+ pedantic cleanups
+
+2006-04-01 16:50:49 +0000 Thomas Vander Stichele <thomas@apestaart.org>
+
+ * gst-libs/gst/tag/gsttagmux.c:
+ add taglib checks and docs
+ Original commit message from CVS:
+ add taglib checks and docs
+
+2006-03-26 19:56:37 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ ext/taglib/gsttaglib.*: Fix newsegment event handling a bit. We need to cache the first newsegment event, because we ...
+ Original commit message from CVS:
+ * ext/taglib/gsttaglib.cc:
+ * ext/taglib/gsttaglib.h:
+ Fix newsegment event handling a bit. We need to
+ cache the first newsegment event, because we can't
+ adjust offsets yet when we get it, as we don't
+ know the size of the tag yet for sure at that point.
+ Also do some minor cleaning up here and there and add
+ some debug statements.
+
+2006-03-25 21:57:24 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ ext/taglib/gsttaglib.cc: We do not want to proxy the caps on the sink pad; our source pad should have application/x-i...
+ Original commit message from CVS:
+ * ext/taglib/gsttaglib.cc:
+ We do not want to proxy the caps on the sink pad; our
+ source pad should have application/x-id3 caps; also,
+ don't use already-freed strings in debug messages;
+ finally, adjust buffer offsets on buffers sent out.
+
+2006-03-20 08:59:29 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ ext/taglib/gsttaglib.h: Fix left-over gst_my_filter_get_type.
+ Original commit message from CVS:
+ * ext/taglib/gsttaglib.h:
+ Fix left-over gst_my_filter_get_type.
+
+2006-03-13 17:22:19 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ ext/taglib/gsttaglib.cc: Add gtk-doc blurb (unused for the time being); match registered plugin name to the filename ...
+ Original commit message from CVS:
+ * ext/taglib/gsttaglib.cc:
+ Add gtk-doc blurb (unused for the time being); match registered
+ plugin name to the filename of the plugin (taglibmux => taglib)
+
+2006-03-12 15:02:02 +0000 Tim-Philipp Müller <tim@centricular.net>
+
+ ext/taglib/: Add support for writing MusicBrainz IDs.
+ Original commit message from CVS:
+ * ext/taglib/Makefile.am:
+ * ext/taglib/gsttaglib.cc:
+ * ext/taglib/gsttaglib.h:
+ Add support for writing MusicBrainz IDs.
+
+2006-03-11 10:58:08 +0000 Alex Lancaster <alexlan@fedoraproject.org>
+
+ ext/taglib/gsttaglib.cc: and add support for TCOP (copyright)
+ Original commit message from CVS:
+ 2006-03-11 Christophe Fergeau <teuf@gnome.org>
+ Patch by: Alex Lancaster
+ * ext/taglib/gsttaglib.cc: fix writing of TPOS tags (album number),
+ and add support for TCOP (copyright)
+
+2006-03-09 17:44:17 +0000 Christophe Fergeau <teuf@gnome.org>
+
+ new id3v2 muxer based on TagLib
+ Original commit message from CVS:
+ 2006-03-09 Christophe Fergeau <teuf@gnome.org>
+ reviewed by: Tim-Philipp Müller <tim at centricular dot net>
+ * configure.ac:
+ * ext/Makefile.am:
+ * ext/taglib/Makefile.am:
+ * ext/taglib/gsttaglib.cc:
+ * ext/taglib/gsttaglib.h: new id3v2 muxer based on TagLib
+
+2011-07-28 11:21:26 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: rename flags names
+ Rename flags names from native-audio/-video to
+ no-audio/video-conversion to be more explicit on what it does
+
+2011-07-20 18:10:57 +0200 Stefan Sauer <ensonic@google.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: fix latency calculation for live elements
+ Max_latency was computed on already adjusted min_latency. Introduce a new
+ variable for clarity. Spotted by Blaise Gassend.
+ Fixes #644284
+
+2011-07-28 11:44:20 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: fix max latency calculation
+ ... to allow infinite max, as also claimed by comment.
+
+2011-06-01 10:21:39 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: drop samples that are too late
+ ... rather than having all of them rendered at 0 or subsequently aligned,
+ likely inevitably leading to repeated resyncing.
+
+2011-07-26 13:51:31 +0200 Stefan Sauer <ensonic@google.com>
+
+ * tests/check/pipelines/basetime.c:
+ basetime: fix failing test
+ Always use audiotestsrc as it seems to have been the intention according to the
+ comment header. The test does not work with live-audiosources.
+
+2011-07-25 19:51:24 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * tests/check/elements/playbin2-compressed.c:
+ tests: rename the test suite to match the binary
+ This unbreaks determining the name for make elements/playbin2-compressed.check
+ from the test output.
+
+2011-07-25 19:39:55 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/adder/gstadder.c:
+ * gst/adder/gstadder.h:
+ adder: rework pending event handling
+ Use atomic ops on pending flags. Rename the segment_pending to
+ new_segment_pending. Set new_segment_pending not when we received seek, but
+ when we received the first upstream new_segment.
+
+2011-07-25 19:11:59 +0200 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/adder/gstadder.c:
+ adder: more debug logging for events
+
+2011-07-26 12:33:56 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Allow all EOS to go through if we don't have a next group
+ Only drop them if the current group isn't drained .. AND there is a
+ next group to switch to.
+ Should Fix #655268
+
+2011-07-25 18:37:15 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Avoid resetting playsink when not needed
+ When we don't have specific {audio|video|text}-sink properties, don't
+ set them on playsink when reconfiguring.
+ If we do that, we end up setting the previous configured sink to
+ GST_STATE_NULL resulting in any potentially pending push being returned
+ with GST_FLOW_WRONG_STATE which will cause the upstream elements to
+ silently stop.
+ https://bugzilla.gnome.org/show_bug.cgi?id=655279
+
+2011-07-25 12:04:02 +0200 Stefan Sauer <ensonic@google.com>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: improve the example
+ Mentioned that this is not ment to be used with subtitles and suggest alternatives.
+
+2011-07-25 10:41:04 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: Properly handle multi-stream chains
+ When we have a multi-stream (i.e. audio and video) input and the demuxer
+ adds/removes pads for a new stream (common in a mpeg-ts stream when the
+ program stream mapping is updated), the algorithm for EOS handling was
+ previously wrong (it would only drop the EOS of the *last* pad but would
+ let the EOS on the other pads go through).
+ The logic has only been changed a tiny bit for EOS handling resulting in:
+ * If there is no next group, let the EOS go through
+ * If there is a next group, but not all pads are drained in the active
+ group, drop the EOS event
+ * If there is a next group and all pads are drained, then the ghostpads
+ will be removed and the EOS event will be dropped automatically.
+
+2011-07-23 14:21:27 +0200 Stefan Sauer <ensonic@google.com>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: add example for feeding from stdin
+
+2011-07-23 13:46:31 +0200 Stefan Sauer <ensonic@google.com>
+
+ * tests/check/pipelines/basetime.c:
+ test: print actual timestamp on failure
+
+2011-07-20 13:46:31 +0200 Stefan Sauer <ensonic@google.com>
+
+ * ext/pango/gsttextoverlay.c:
+ textoverlay: keep untimestamped textbuffer until next one
+ Instead of discarding untimestamped text-buffers immeditely after rendering,
+ keep them until we receive the next text buffer.
+ Fixes #654959
+
+2011-07-15 16:46:54 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/elements/decodebin2.c:
+ tests: add decodebin2 test for parser autoplugging
+ Make sure decodebin2 doesn't try to plug the same parser twice
+ in a row.
+
+2011-07-06 19:40:48 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/elements/decodebin.c:
+ * tests/files/Makefile.am:
+ * tests/files/test.mp3:
+ tests: add decodebin1 test for parser autoplugging
+ Make sure decodebin1 doesn't try to plug the same parser twice
+ in a row (so we can change all parsers to accept parsed input as
+ well without breaking applications still using the old decodebin1
+ element).
+
+2011-07-07 15:02:19 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/playback/gstdecodebin.c:
+ decodebin: don't plug the same parser multiple times in a row
+ This allows us to make parsers accept both parsed and unparsed input
+ without decodebin plugging them in a loop until things blow up, ie.
+ without affecting applications that still use the old playbin or the
+ old decodebin.
+ (Making parsers accept parsed input is useful for later when we want
+ to use parsers to convert the stream-format into something the decoder
+ can handle. It's also much more convenient for application authors
+ who can plug parsers unconditionally in transcoding pipelines, for
+ example).
+
+2011-07-14 13:56:02 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/pbutils/codec-utils.c:
+ * win32/common/libgstpbutils.def:
+ docs: add Since marker to gtk-doc chunk for new codec utils API
+ And add new API to .def file.
+ API: gst_codec_utils_h264_get_level_idc()
+
+2011-03-07 17:55:48 -0500 Olivier Crête <olivier.crete@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/pbutils/codec-utils.c:
+ * gst-libs/gst/pbutils/codec-utils.h:
+ codec-utils: Add method to convert H.264 text level in a level_idc
+
+2011-07-09 18:33:38 -0700 David Schleef <ds@schleef.org>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: check for EOS on both current and best pad
+ Oops, need both. Fixes #654270.
+
+2011-07-09 18:24:26 -0700 David Schleef <ds@schleef.org>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: check for EOS on current pad, not best
+ Fixes #654270.
+
+2011-07-09 11:59:42 +0200 Piotr Fusik <fox@scene.pl>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefind: fixed detection of audio/x-sap
+ Fixes: #654295.
+ Signed-off-by: David Schleef <ds@schleef.org>
+
+2011-06-30 20:33:36 +0200 Luis de Bethencourt <luis@debethencourt.com>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: fix compiler warning
+ cspace and cspace2 may run uninitialized.
+
+2011-06-29 13:12:49 +0200 Robert Swain <robert.swain@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Add flags to disable conversion elements
+ Add a flags property and two flags to allow one to disable the
+ conversion elements within encodebin. Doing so insists that the
+ uncompressed input to encodebin for the appropriate stream type is
+ sufficient to meet the caps requirements of the encoders, muxers and
+ encodebin target.
+ This is mostly beneficial to bypass slow caps negotiations in the
+ conversion elements.
+
+2011-06-29 09:59:05 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ * tests/check/libs/tag.c:
+ tag: xmp: Remove extra chars from end of xmp packet
+ Windows picture viewer is unhappy with extra trailing chars at the
+ end of the xmppacket footer. So remove them as they aren't needed.
+
+2011-06-29 11:30:51 +0200 Robert Swain <robert.swain@collabora.co.uk>
+
+ * gst/encoding/gststreamsplitter.c:
+ streamsplitter: Fix getcaps src pad caps merge
+ Caps returned from gst_pad_peer_get_caps_reffed () may not be writable.
+ If they are not is should cause an assertion in gst_caps_merge (),
+ however, sometimes assertions are disabled in binary builds of -base and
+ it's safer to just be sure the caps are writable. Also, check that the
+ reffed caps pointer is not NULL.
+
+2011-06-15 13:51:31 +0200 Philip Jägenstedt <philipj@opera.com>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefind: NULL check in degas_type_find
+ The length check isn't sufficient, an source might
+ report the correct length, but then still fail to
+ read the requested number of bytes for some reason.
+ https://bugzilla.gnome.org/show_bug.cgi?id=652642
+
+2011-06-26 01:06:58 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/design/design-decodebin.txt:
+ docs: minor addition to decodebin2 design doc
+
+2011-06-26 01:06:19 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/libs/navigation.c:
+ tests: the navigation interface isn't GstImplementsInterface-wrapped
+
+2011-06-26 00:49:46 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/interfaces/streamvolume.h:
+ interfaces: GstStreamVolume isn't wrapped by GstImplementsInterface
+ This interface depends on properties and isn't per-instance.
+
+2011-06-26 00:40:20 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/rtsp/gstrtspextension.h:
+ rtsp: GstRTSPExtension isn't wrapped by GstImplementsInterface
+ Fix copy'n'paste error in headers, GstRTSPExtension isn't
+ something that's per-instance.
+
+2011-06-26 00:36:36 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/xmpwriter.h:
+ tag: GstXmpWriter doesn't use the GstImplementsInterface
+ No need for per-instance checking of interface implementation here,
+ presumably just a copy'n'paste issue.
+
+2011-06-11 19:03:57 +1000 Jonathan Matthew <jonathan@d14n.org>
+
+ * gst-libs/gst/pbutils/encoding-target.c:
+ encoding-target: set names on audio and video profiles
+ https://bugzilla.gnome.org/show_bug.cgi?id=652342
+
+2011-06-23 11:28:04 -0700 David Schleef <ds@schleef.org>
+
+ * common:
+ Automatic update of common submodule
+ From 69b981f to 605cd9a
+
+2011-06-18 13:32:17 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ Bump git version after unplanned 0.10.35 release
+ Merge branch '0.10.35'
+ Conflicts:
+ configure.ac
+ docs/plugins/inspect/plugin-adder.xml
+ docs/plugins/inspect/plugin-alsa.xml
+ docs/plugins/inspect/plugin-app.xml
+ docs/plugins/inspect/plugin-audioconvert.xml
+ docs/plugins/inspect/plugin-audiorate.xml
+ docs/plugins/inspect/plugin-audioresample.xml
+ docs/plugins/inspect/plugin-audiotestsrc.xml
+ docs/plugins/inspect/plugin-cdparanoia.xml
+ docs/plugins/inspect/plugin-decodebin.xml
+ docs/plugins/inspect/plugin-encoding.xml
+ docs/plugins/inspect/plugin-ffmpegcolorspace.xml
+ docs/plugins/inspect/plugin-gdp.xml
+ docs/plugins/inspect/plugin-gio.xml
+ docs/plugins/inspect/plugin-gnomevfs.xml
+ docs/plugins/inspect/plugin-libvisual.xml
+ docs/plugins/inspect/plugin-ogg.xml
+ docs/plugins/inspect/plugin-pango.xml
+ docs/plugins/inspect/plugin-playback.xml
+ docs/plugins/inspect/plugin-subparse.xml
+ docs/plugins/inspect/plugin-tcp.xml
+ docs/plugins/inspect/plugin-theora.xml
+ docs/plugins/inspect/plugin-typefindfunctions.xml
+ docs/plugins/inspect/plugin-uridecodebin.xml
+ docs/plugins/inspect/plugin-videorate.xml
+ docs/plugins/inspect/plugin-videoscale.xml
+ docs/plugins/inspect/plugin-videotestsrc.xml
+ docs/plugins/inspect/plugin-volume.xml
+ docs/plugins/inspect/plugin-vorbis.xml
+ docs/plugins/inspect/plugin-ximagesink.xml
+ docs/plugins/inspect/plugin-xvimagesink.xml
+ gst-libs/gst/audio/Makefile.am
+ gst/subparse/gstsubparse.c
+ win32/common/_stdint.h
+ win32/common/config.h
+
+2011-06-18 11:16:19 +0200 Edward Hervey <bilboed@bilboed.com>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: Allow GError* argument to be NULL
+ This is how other methods taking GError* arguments behave.
+ Fixes #652838
+
+=== release 0.10.35 ===
+
+2011-06-15 19:29:48 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ Release 0.10.35
+ This is an ad-hoc release that is almost identical to 0.10.34:
+ * work around GLib atomic ops API change
+ * don't use G_CONST_RETURN in public headers
+ * subparse: typefinding fixes for subtitles in non-UTF8 charsets
+
+2011-06-15 15:08:32 +0100 Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+ * gst-plugins-base.spec.in:
+ Add gobject introspection files to spec
+
+2011-06-15 14:53:56 +0100 Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+ * gst-plugins-base.spec.in:
+ remove old v4l plugin from spec file
+
+2011-06-15 14:49:41 +0100 Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+ * tests/examples/Makefile.am:
+ Add missing dist subdir
+
+2011-06-15 14:21:30 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/audio/Makefile.am:
+ audio: link test program against libgstaudio
+
+2011-06-14 10:31:18 +0530 Debarshi Ray <rishi@gnu.org>
+
+ * gst-libs/gst/pbutils/codec-utils.c:
+ codec-utils: restore 7350 as a valid sampling frequency for AAC
+ This was lost during c77f88cac675a1dbb89e40da8e3c28320523bfca.
+
+2011-06-09 18:30:33 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstid3tag.c:
+ * gst-libs/gst/tag/gstvorbistag.c:
+ * gst-libs/gst/tag/tag.h:
+ libs: replace G_CONST_RETURN with 'const'
+ G_CONST_RETURN will be deprecated soon.
+ https://bugzilla.gnome.org/show_bug.cgi?id=652211
+
+2011-05-31 22:14:09 -0700 David Schleef <ds@schleef.org>
+
+ * gst/audioresample/resample.c:
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ * gst/videoscale/vs_4tap.c:
+ * gst/videotestsrc/generate_sine_table.c:
+ * gst/videotestsrc/videotestsrc.c:
+ * tests/icles/test-xoverlay.c:
+ convert M_PI to G_PI, for msvc
+
+2011-06-06 14:41:41 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/tag/gsttagdemux.c:
+ tagdemux: no input data implies no type can be found
+ ... and posting a proper error message to this effect is appropriately
+ informative and prevents auto-plugging otherwise stalling.
+
+2011-06-04 13:36:55 -0700 David Schleef <ds@schleef.org>
+
+ * gst/adder/gstadder.c:
+ adder: Work around changes in g_atomic API
+ See #651514 for details.
+
+2011-05-31 20:38:56 -0700 David Schleef <ds@schleef.org>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: fix c99-ism
+
+2011-05-23 16:02:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Try to typefind even if conversion to UTF8 failed
+ Fixes bug #600043.
+
+2011-05-23 15:51:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Interprete typefind strings passed to GRegex as raw bytes instead of valid UTF8
+
+2011-05-20 10:48:39 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/lang.c:
+ lang: fix possible array overrun
+ We where checking for i<G_N_ELEMENTS, but where accessing i+1.
+
+2011-06-14 10:31:18 +0530 Debarshi Ray <rishi@gnu.org>
+
+ * gst-libs/gst/pbutils/codec-utils.c:
+ codec-utils: restore 7350 as a valid sampling frequency for AAC
+ This was lost during c77f88cac675a1dbb89e40da8e3c28320523bfca.
+
+2011-05-31 22:14:09 -0700 David Schleef <ds@schleef.org>
+
+ * gst/audioresample/resample.c:
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ * gst/videoscale/vs_4tap.c:
+ * gst/videotestsrc/generate_sine_table.c:
+ * gst/videotestsrc/videotestsrc.c:
+ * tests/icles/test-xoverlay.c:
+ convert M_PI to G_PI, for msvc
+
+2011-06-07 21:30:18 -0700 David Schleef <ds@schleef.org>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ oggmux: refactor how EOS is determined
+ This decreases the number of buffers held on each pad by one,
+ eliminating next_buffer. Simplifies the logic by relying solely
+ on CollectPads to let us know when a pad is in EOS. As a side
+ benefit, the collect pads related code is structured more like
+ other CollectPad users.
+ The previous code would occasionally mark the wrong pad as EOS,
+ causing the code to get in a state where all the streams were
+ finished, but EOS hadn't been sent to the source pad.
+
+2011-06-09 18:30:33 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstid3tag.c:
+ * gst-libs/gst/tag/gstvorbistag.c:
+ * gst-libs/gst/tag/tag.h:
+ libs: replace G_CONST_RETURN with 'const'
+ G_CONST_RETURN will be deprecated soon.
+ https://bugzilla.gnome.org/show_bug.cgi?id=652211
+
+2011-06-09 00:02:07 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ tag: xmp: Fix LocationShown syntax
+ According to the specification, the LocationShown requires its
+ struct fields to be inside a Bag type.
+
+2011-06-08 14:21:40 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ tag: xmp: Add room for extra namespace definitions
+ Adds an extra field to the namespace definitions of the schemas
+ so they can add the namespace of any array/struct fields they
+ might use internally.
+
+2011-06-08 12:21:43 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/pango/Makefile.am:
+ * gst/audioresample/Makefile.am:
+ * tests/check/Makefile.am:
+ * tests/examples/v4l/Makefile.am:
+ GST_PLUGINS_BASE_LIBS is not defined in -base.
+
+2011-06-08 11:33:07 +0200 Christophe Fergeau <cfergeau@redhat.com>
+
+ * tests/examples/audio/Makefile.am:
+ examples: don't link testchannels example with system libgstaudio
+ The testchannels audio test program is using -lgstaudio-0.10 to link
+ with libgstaudio which won't use the gstaudio library that was just
+ built but the one from the system. This is an issue since it means
+ we won't be testing the code from the current source tree, and it
+ also breaks the build when building on a system which don't have
+ a libgstaudio yet.
+ https://bugzilla.gnome.org/show_bug.cgi?id=652100
+
+2011-06-08 11:11:05 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/design/design-decodebin.txt:
+ docs: add some text about parser/decoder autoplugging issues
+
+2011-06-06 14:41:41 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst-libs/gst/tag/gsttagdemux.c:
+ tagdemux: no input data implies no type can be found
+ ... and posting a proper error message to this effect is appropriately
+ informative and prevents auto-plugging otherwise stalling.
+
+2011-06-06 12:48:23 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ * ext/ogg/gstoggmux.h:
+ oggmux: determine granulepos metadata using stream mapper whenever possible
+ ... which unfortunately is not the case for all types, but at least so for
+ most common ones.
+
+2011-06-06 12:46:05 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: convert incoming buffer timestamp to running time
+ ... so all subsequent manipulation can take place in the proper timeline
+ without further ado.
+
+2011-06-01 20:48:44 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * ext/ogg/gstoggmux.c:
+ oggmux: remove superfluous code
+ ... since there is nothing in oggstream that cares (or even should)
+ about granulepos for what is being asked from it.
+
+2011-06-04 13:36:55 -0700 David Schleef <ds@schleef.org>
+
+ * gst/adder/gstadder.c:
+ adder: Work around changes in g_atomic API
+ See #651514 for details.
+
+2011-05-31 20:38:56 -0700 David Schleef <ds@schleef.org>
+
+ * gst-libs/gst/pbutils/gstdiscoverer.c:
+ discoverer: fix c99-ism
+
+2011-06-03 16:29:00 +0200 Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+ * ext/theora/gsttheoraenc.c:
+ theora: separate encode and push block in chain, into own function.
+
+2011-06-02 19:08:41 +0200 Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+ * ext/theora/gsttheoraenc.c:
+ theora: use fixed src cap pads
+
+2011-06-02 18:57:05 +0200 Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+ * ext/theora/gsttheoraenc.c:
+ * ext/theora/gsttheoraenc.h:
+ theora: set the width/height/par on the srcpad caps
+
+2011-06-02 17:29:53 +0200 Luis de Bethencourt <luis.debethencourt@collabora.como>
+
+ * ext/theora/gsttheoraenc.c:
+ theora: get sink caps info from downstream element pad
+ https://bugzilla.gnome.org/show_bug.cgi?id=651564
+
+2011-05-27 14:41:39 -0700 Patrick McCarty <patrick.mccarty@intel.com>
+
+ * gst-libs/gst/pbutils/descriptions.c:
+ pbutils: add description for wbmp images.
+ https://bugzilla.gnome.org/show_bug.cgi?id=651294
+
+2011-06-02 00:55:41 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/typefind/gsttypefindfunctions.c:
+ typefinding: add typefinder for WAP WBMP bitmaps
+ https://bugzilla.gnome.org/show_bug.cgi?id=651294
+
+2011-06-02 11:53:10 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ playsink: Fix deadlock in the audio/video converter bins when linking fails
+
+2011-06-01 17:31:35 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ check: ... and don't forget to add the new arm header
+ Forgot it in my previous commit
+
+2011-06-01 17:24:30 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * tests/check/libs/libsabi.c:
+ * tests/check/libs/struct_arm.h:
+ libsabi: Add structure sizes for arm
+
+2011-05-31 19:57:57 -0700 David Schleef <ds@schleef.org>
+
+ * gst-libs/gst/fft/gstfftf32.c:
+ * gst-libs/gst/fft/gstfftf64.c:
+ * gst-libs/gst/fft/gstffts16.c:
+ * gst-libs/gst/fft/gstffts32.c:
+ fft: s/M_PI/G_PI/ for MSVC
+
+2011-05-31 11:05:03 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/volume/gstvolume.c:
+ * gst/volume/gstvolumeorc.orc:
+ * tests/check/elements/volume.c:
+ volume: Fix handling of volume>=4.0 for 8 and 16 bit integer formats
+ Also add a unit test for this. Previously volumes bigger than 4.0
+ would have resulted in overflows in the fixed point processing.
+ Fixes bug #649642.
+
+2011-05-29 13:32:04 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/elements/adder.c:
+ * tests/check/elements/ffmpegcolorspace.c:
+ * tests/check/elements/vorbistag.c:
+ * tests/check/libs/rtp.c:
+ * tests/check/pipelines/theoraenc.c:
+ tests: fix some more unused-but-set-variable warnings with gcc 4.6
+
+2011-05-28 16:14:23 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * win32/common/libgstvideo.def:
+ win32: update .def file for new API
+
+2011-05-28 12:39:06 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * Makefile.am:
+ * tests/check/elements/.gitignore:
+ Ignore new playbin2-compress test binary
+ And add old testchannels binary to CRUFT_FILES.
+
+2011-05-27 23:31:27 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/video.h:
+ video: sprinkle some G_GNUC_CONST
+ Mark functions that have no effect besides their return value and
+ only inspect their input arguments with G_GNUC_CONST. (We just
+ ignore the g_return_val_if_fail() guards for this)
+
+2011-05-27 23:25:00 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst-libs/gst/video/video.h:
+ video: clean up header file
+ Sprinkle some spaces and newlines here and there.
+
+2011-05-27 15:03:19 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * configure.ac:
+ * gst-libs/gst/audio/.gitignore:
+ * gst-libs/gst/audio/Makefile.am:
+ * gst-libs/gst/audio/testchannels.c:
+ * tests/examples/Makefile.am:
+ * tests/examples/audio/.gitignore:
+ * tests/examples/audio/Makefile.am:
+ * tests/examples/audio/testchannels.c:
+ audio: move testchannels example to 'tests/examples' dir
+ Also fix it up a little to not include 'c' file but link to the libs instead.
+
+2011-05-27 11:39:21 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/pbutils/codec-utils.c:
+ code-utile: fix level descriptions for fgs
+ fgs levels range from 8-13 and are mapped to 0-5.
+
+2011-05-25 14:38:21 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/pbutils/codec-utils.c:
+ codec-utils: fix mpeg4 level verification
+ The current condition would never be true. As levels<6 are asp and levels>7 and
+ <14 are fgs, we should return NULL for cases 6,7,14,15.
+
+2011-05-26 12:33:08 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * sys/xvimage/xvimagesink.c:
+ xvimagesink: Fallback to non-XShm mode if allocating the XShm image failed
+ Fixes bug #630442.
+
+2011-05-26 12:30:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * sys/ximage/ximagesink.c:
+ ximagesink: Fallback to non-XShm mode if allocating the XShm image failed
+ Fixes bug #630442.
+
+2011-05-26 11:41:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ playbin2: Let the input-selectors sync all streams to the running time
+ This is especially needed when switching between a non-sparse and sparse
+ video stream, see bug #537382. It also lowers the time needed for switching
+ between streams a bit.
+
+2011-01-20 00:52:50 -0700 Lane Brooks <dirjud@gmail.com>
+
+ * ext/pango/gsttextoverlay.c:
+ * ext/pango/gsttextoverlay.h:
+ textoverlay: added 'outline-color' parameter to control whether text gets a shadow
+
+2011-01-20 00:42:39 -0700 Lane Brooks <dirjud@gmail.com>
+
+ * ext/pango/gsttextoverlay.c:
+ * ext/pango/gsttextoverlay.h:
+ textoverlay: added 'shadow' option to control whether text gets a shadow
+
+2011-05-26 10:48:05 +0200 Jindrich Makovicka <makovick@gmail.com>
+
+ * ext/pango/gsttextrender.c:
+ textrender: Correctly negotiate with downstream instead of just using random caps
+ Fixes bug #638897.
+
+2011-05-26 10:43:51 +0200 Jindrich Makovicka <makovick@gmail.com>
+
+ * ext/pango/gsttextrender.c:
+ textrender: Add bound checks to not write outside the image area
+
+2011-05-26 10:42:46 +0200 Jindrich Makovicka <makovick@gmail.com>
+
+ * ext/pango/gsttextrender.c:
+ textrender: Prevent double unref of caps if the caps can't be set on the srcpad
+
+2011-05-26 10:31:11 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/gnomevfs/gstgnomevfssrc.c:
+ gnomevfssrc: Keep track of interruptions during read with a flag
+
+2010-09-03 09:11:30 -0400 American Dynamics <GStreamer-Bugs@tycosp.com>
+
+ * ext/gnomevfs/gstgnomevfssrc.c:
+ * ext/gnomevfs/gstgnomevfssrc.h:
+ gnomevfssrc: Add support for cancelling the read operations
+ This allows the state change from PAUSED to READY to be faster.
+ Fixes bug #628337.
+
+2011-05-25 14:14:46 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * sys/ximage/ximagesink.c:
+ ximagesink: Remove g_assert from interface query
+
+2011-05-25 14:08:43 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * sys/xvimage/xvimagesink.c:
+ xvimagesink: Remove the g_assert from interface query
+
+2011-05-26 00:17:40 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ * gst/audiotestsrc/gstaudiotestsrc.h:
+ audiotestsrc: add blue and violet noise by using spectral inversion
+ Add blue and violet noise by spectral inversion of pink and red noise.
+ Fixes #649969
+
+2011-05-25 23:40:26 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/audiotestsrc/gstaudiotestsrc.c:
+ * gst/audiotestsrc/gstaudiotestsrc.h:
+ audiotestsrc: add red (brownian) noise generator
+ Add another noise generator which produces a quite dark noise color.
+ Fixes parts of #649969.
+
+2010-09-27 13:32:31 +0400 Vladimir Eremeev <eremeev@atlantis.ru>
+
+ * tests/examples/seek/seek.c:
+ seek: set selected/default audio/video sinks on playbin and playbin2
+ https://bugzilla.gnome.org/show_bug.cgi?id=630322
+
+2011-05-25 19:03:44 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/examples/seek/seek.c:
+ seek: add --audiosink and --videosink command line options
+
+2011-05-25 18:50:34 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/examples/seek/seek.c:
+ seek: use the right GDK defines to differentiate between the backends
+
+2011-05-25 18:45:33 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/examples/seek/seek.c:
+ seek: use gst_filename_to_uri() to convert a filename to a uri
+
+2010-09-27 12:46:54 +0400 Vladimir Eremeev <eremeev@atlantis.ru>
+
+ * tests/examples/seek/seek.c:
+ seek: make seek example work in win32
+ https://bugzilla.gnome.org/show_bug.cgi?id=630322
+
+2011-05-25 16:08:54 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ configure: update GLib requirement to >= 2.24
+ Same as core (make implicit requirement explicit).
+ http://gstreamer.freedesktop.org/wiki/ReleasePlanning/GLibRequirement
+
+2011-05-25 15:24:33 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: remove bogus <0 check for unsigned var
+ bytes_written is a gsize which is unsigned and thus never < 0.
+
+2011-05-25 15:23:13 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * ext/theora/gsttheoraenc.c:
+ theoraenc: fix variable type for bytes_consumed
+ th_encode_ctl() returns an int. Using a gsize result in bogus <0 checks.
+
+2011-05-25 15:04:20 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/riff/riff-read.c:
+ riff: remove the g_return_if_fail as we test it below
+ We don't want to return without setting taglist=NULL if asserts are on and with
+ setting taglist=NULL otherwise.
+
+2011-05-25 14:28:18 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/volume/gstvolume.c:
+ volume: use a flag for 'mute' using the controller
+ Previously we checked mute_csource to determine wheter we need to premultiply
+ volumes and mute values. That fails as we unrefs mute_csource and set it to
+ NULL after. Use an extra flag instead.
+
+2011-05-25 14:12:50 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/gstexiftag.c:
+ exiftag: reflow the code
+ Move the warning on unsupported units to the swicth-case. Move fetching the
+ pending tags down to where we use them.
+
+2011-05-25 13:59:57 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/gstexiftag.c:
+ exiftag: set value=1 if we found the token
+ Otherwise we never write the tag. This would also be consistent with the code in
+ deserialize_scene_type().
+
+2011-05-25 12:30:51 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * sys/xvimage/xvimagesink.c:
+ xvimagesink: run gst-indent
+
+2011-05-25 12:29:21 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * sys/xvimage/xvimagesink.c:
+ xvimagesink: remove unneded !=NULL checks
+ We check for matching_attr!=NULL right before already.
+
+2011-05-24 00:13:04 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: massage the section file more
+ Add more symbols (from unused.txt). Move the whole bunch of riff-fourcc defines
+ to std section too (no one is hoing to document them, right).
+
+2011-05-24 00:12:26 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/video/video.c:
+ docs: add missing parameter docs
+
+2011-05-23 23:53:38 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: move the riff structure to std-section
+ If someone intents to document them and the fields we can move them back.
+
+2011-05-23 23:53:06 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/pbutils/gstpluginsbaseversion.c:
+ docs: move pluginbaseversion to separate section as we have section docs
+
+2011-05-23 23:51:15 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/rtsp/gstrtspdefs.h:
+ docs: add minimal docblobs for status code and headers
+ Use a trick to avoid documenting all 100 enums.
+
+2011-05-23 23:41:56 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/interfaces/xoverlay.c:
+ * gst-libs/gst/interfaces/xoverlay.h:
+ docs: update xoverlay docs for api addition and deprecation
+
+2011-05-23 23:12:50 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/rtp/gstbasertpaudiopayload.c:
+ * gst-libs/gst/rtp/gstbasertpaudiopayload.h:
+ * gst-libs/gst/rtp/gstbasertpdepayload.c:
+ * gst-libs/gst/rtp/gstbasertpdepayload.h:
+ * gst-libs/gst/rtp/gstbasertppayload.c:
+ * gst-libs/gst/rtp/gstbasertppayload.h:
+ docs: rtp library docs update
+
+2011-05-23 22:58:22 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/audio/gstringbuffer.h:
+ * gst-libs/gst/cdda/gstcddabasesrc.h:
+ * gst-libs/gst/interfaces/colorbalance.h:
+ * gst-libs/gst/interfaces/colorbalancechannel.h:
+ * gst-libs/gst/interfaces/mixer.h:
+ * gst-libs/gst/interfaces/mixeroptions.h:
+ * gst-libs/gst/interfaces/navigation.h:
+ * gst-libs/gst/interfaces/tuner.h:
+ * gst-libs/gst/video/gstvideofilter.h:
+ * gst-libs/gst/video/gstvideosink.h:
+ docs: add missing documentation for various pieces
+
+2010-02-19 12:54:18 +0100 Thijs Vermeir <thijsvermeir@gmail.com>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: recalibrate clock on setcaps
+ Because the spec for the ringbuffer can change when changing
+ the caps, we must recalibrate the clock.
+ https://bugzilla.gnome.org/show_bug.cgi?id=610443
+
+2011-05-23 16:02:34 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Try to typefind even if conversion to UTF8 failed
+ Fixes bug #600043.
+
+2011-05-23 16:02:20 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Compile the typefind regex with optimization to speed up matching
+
+2011-05-23 15:51:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/subparse/gstsubparse.c:
+ subparse: Interprete typefind strings passed to GRegex as raw bytes instead of valid UTF8
+
+2011-05-23 15:21:59 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/video/convertframe.c:
+ convertframe: fix docs
+ Fixup paramter mismatch between func and prototype. Add missing parameter docs.
+
+2011-05-23 15:08:24 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/audio/gstaudioclock.h:
+ * gst-libs/gst/audio/gstaudiofilter.h:
+ * gst-libs/gst/audio/gstaudiosrc.h:
+ * gst-libs/gst/audio/multichannel.h:
+ docs: fixup audio-library docs
+
+2011-05-23 15:02:27 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/app/gstappsink.c:
+ * gst-libs/gst/app/gstappsrc.c:
+ * gst/app/gstapp.c:
+ docs: fixup appsrc/sink api docs
+
+2011-05-23 14:53:26 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/audio/gstaudioiec61937.c:
+ * gst-libs/gst/audio/gstaudioiec61937.h:
+ docs: fix docs for new api
+ Some parameters where wrong, first line missed the ':' and return docs where
+ broken.
+
+2011-05-23 14:45:23 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ docs: update xmp api docs
+ Add missing section. Add new section to main-sgml. Add missing function.
+
+2011-05-23 14:07:38 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ xmptag: remove late check
+ We deref the pointer two lines before already and besides this internal function
+ should not be called with this parameter=NULL.
+
+2011-05-23 14:01:29 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ xmptag: have the default branch as the last one
+
+2011-05-23 14:00:04 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ xmptag: an uint value can't be <0
+
+2011-05-23 13:53:06 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/video/video.c:
+ whitespace: trim trailing whitespace
+
+2011-05-23 13:50:59 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/video/video.c:
+ video.c: use a break and a final warning instead of early returns
+ Use breaks for case branches instead of return 0. We don't expect these to
+ happen anyway. Thus have a warning before the final return to make it easier to
+ see when things go out of sync.
+
+2011-05-23 13:49:01 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/video/video.c:
+ video.c: use g_assert_not_reached() for logical error here.
+ This will help to detect them closer to the source if they ever happen.
+
+2011-05-20 10:48:39 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst-libs/gst/tag/lang.c:
+ lang: fix possible array overrun
+ We where checking for i<G_N_ELEMENTS, but where accessing i+1.
+
+2011-05-19 23:41:08 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * gst/audioconvert/gstaudioconvert.c:
+ audioconvert: cleanup helper code
+ make_lossless_changes() returns the same structure that we're passing (probably
+ to enable chaining). Instead of reusing s and making it point to s2 as well,
+ keep using s2. Drop the assignment which in the 2nd case is a dead one anyway.
+
+2011-05-19 23:25:24 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * docs/plugins/gst-plugins-base-plugins.args:
+ * docs/plugins/gst-plugins-base-plugins.hierarchy:
+ * docs/plugins/gst-plugins-base-plugins.interfaces:
+ * docs/plugins/gst-plugins-base-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:56:53 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * common:
+ Automatic update of common submodule
+ From 9e5bbd5 to 69b981f
+
+2011-05-19 13:40:29 +0100 Christian Fredrik Kalager Schaller <christian.schaller@collabora.co.uk>
+
+ * gst-plugins-base.spec.in:
+ Add new header file
+
+2011-05-19 08:30:14 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Autoplug formatters
+ Autoplug formatters for streams if a formatter with secondary or
+ higher rank is found. Formatters are autoplugged when there is no
+ muxer or when the muxer doesn't implement the tagsetter interface.
+ Currently only the first formatter found is plugged, this might
+ help in lots of cases, but it doesn't solve the
+ 'lamemp3 ! xingmux ! id3mux'
+ case.
+ https://bugzilla.gnome.org/show_bug.cgi?id=649841
+
+2011-05-19 08:27:29 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: fix typos
+
+2011-05-18 22:07:58 +0200 Aleix Conchillo Flaque <aleix@oblong.com>
+
+ * ext/vorbis/gstvorbisdec.c:
+ vorbisdec: Handle headers in caps
+
+2011-05-18 16:09:47 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * common:
+ Automatic update of common submodule
+ From fd35073 to 9e5bbd5
+
+2011-05-18 13:18:15 +0200 Robert Swain <robert.swain@collabora.co.uk>
+
+ * gst-libs/gst/video/video.c:
+ * gst-libs/gst/video/video.h:
+ * tests/check/libs/video.c:
+ gstvideo: Add gst_video_get_size_from_caps function
+ gst_video_get_size_from_caps () allows easy calculation of the raw video
+ buffer size from some fixed video caps.
+ API: gst_video_get_size_from_caps()
+
+2011-05-18 12:24:02 +0300 Stefan Kost <ensonic@users.sf.net>
+
+ * common:
+ Automatic update of common submodule
+ From 46dfcea to fd35073
+
+2011-05-18 09:34:52 +0200 Robert Swain <robert.swain@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ alsa: Remove unused but set variable
+ Unused but set variables cause warnings in GCC 4.6.x and newer.
+
+2011-05-17 10:20:36 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ rtsp: Fix typo which broke the build
+
+2011-05-16 15:35:50 +0200 Miguel Angel Cabrera Moya <madmac2501@gmail.com>
+
+ * gst-libs/gst/rtsp/gstrtspconnection.c:
+ rtspconnection: not enter in not controllable state unless it is necessary
+ When closing rtspsrc the state change blocks until the polling in the
+ connection timeouts. This is because the second time we loop to read a
+ full message controllable is set to FALSE in the poll group, even though no
+ message is half read.
+ This can be avoided by not setting controllable to FALSE the poll group
+ unless we had begin to read a message.
+ Fixes #610916
+
+2010-05-30 13:21:00 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * ext/cdparanoia/gstcdparanoiasrc.c:
+ * ext/cdparanoia/gstcdparanoiasrc.h:
+ cdparanoiasrc: fix build on OSX by #undef-ing VERSION before including system headers
+ On OSX the cdparanoia headers include IOKit framework headers (in particular
+ SCSICmds_INQUIRY_Definitions.h) which define a structure that has a member
+ named VERSION, so we must #undef VERSION before including those for things
+ to compile on OSX.
+ Fixes #609918.
+
+2011-05-02 11:43:38 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/videorate/gstvideorate.c:
+ * gst/videorate/gstvideorate.h:
+ videorate: optionally ensure maximum average output frame rate
+ See #628764.
+
+2011-04-29 14:58:02 +0200 Alexey Fisher <bug-track@fisher-privat.net>
+
+ * gst/videorate/gstvideorate.c:
+ * gst/videorate/gstvideorate.h:
+ videorate: optionally only drop frames to ensure maximum frame rate
+ This adds option to arrange for maximal allowed variable frame rate.
+ Fixes #628764.
+
+2011-04-26 13:37:51 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gsturidecodebin.c:
+ uridecodebin: use bitrate to configure streaming buffer-duration default case
+ In particular, in audio only cases whose (estimated) metadata provides bitrate
+ information, the buffer-size based on such bitrate (and buffer-duration)
+ will be much more reasonable than queue2 default buffer-size.
+
+2011-04-26 11:27:40 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * gst/playback/gsturidecodebin.c:
+ uridecodebin: remove some dead code
+ ... which was dead as pads were never added to the list, and need not be added,
+ since removing them is handled by a pad callback.
+
+2011-04-29 11:48:02 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * tests/examples/encoding/Makefile.am:
+ encodebin: examples: Add missing base libs to makefile
+
+2011-04-28 10:58:15 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst/encoding/gstencodebin.c:
+ encodebin: Check for missing converters
+ Adds checks for missing video and audio converter elements
+
+2011-04-27 22:05:55 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/xmpwriter.c:
+ tag: xmpwriter: Rename documentation headers
+ Fix some wrong documentation headers from the first name
+ given to this interface.
+
+2011-04-19 08:41:53 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * tests/check/libs/tag.c:
+ tests: xmp: New tests for the Iptc4xmpExt tags
+
+2011-04-18 23:28:13 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ tag: xmp: Add Iptc4xmpExt schema support
+ Adds Iptc4xmpExt schema with country, city and sublocation
+ tags mapped
+
+2011-04-19 11:00:24 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ tag: xmp: Add support for reading struct tags
+ Adds a context variable that controls if the parsing is on
+ 'top level' tags or inside a struct tag.
+
+2011-04-18 16:54:54 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ tag: xmp: Add struct xmp tag type support
+ Adds support for writing the xmp struct tag type, it is a compound tag
+ that has inner tags.
+
+2011-04-18 23:16:59 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ tag: xmp: Fixing schema maps
+ Do not forget to create a new schema for every supported schema
+ instead of reusing the same object
+
+2011-04-18 10:20:00 -0300 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+ * gst-libs/gst/tag/gstxmptag.c:
+ tag: xmp: Write the same tag to all schemas
+ Instead of writing only the xmp tag for the first found entry
+ that matches the gstreamer tag, look for all mappings to write
+ the tag to different schemas.
+ The rationale here is that some reader application might only
+ be interested on a particular schema tags, so we should try
+ to write as many tags for all schemas.
+
+2011-05-15 13:39:18 +0200 Edward Hervey <bilboed@bilboed.com>
+
+ * win32/common/libgstaudio.def:
+ win32: Update libgstaudio.def for new symbols
+
+2011-05-14 17:27:30 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstringbuffer.c:
+ baseaudiosink: Use g_str_equal() instead of strncmp()
+ The strncmp is unnecessary anyway since one of the strings is a const
+ string.
+
+2011-05-14 16:49:53 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ baseaudiosink: Fix trivial indentation problems
+
+2011-03-07 20:49:16 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * docs/libs/gst-plugins-base-libs-docs.sgml:
+ * docs/libs/gst-plugins-base-libs-sections.txt:
+ * gst-libs/gst/audio/Makefile.am:
+ * gst-libs/gst/audio/gstaudioiec61937.c:
+ * gst-libs/gst/audio/gstaudioiec61937.h:
+ audio: Add an IEC 61937 payloading library
+ This can be used by sinks to take compressed formats, correctly payload
+ these in IEC 61937 frames and feed these to sinks that support
+ passthrough output over IEC 60958 (S/PDIF) or, in the case of MP3, over
+ Bluetooth.
+ Initial implementation includes AC3, E-AC3, MPEG-1, MPEG-2 (non-AAC),
+ and DTS (type-I/II/II) payloading. More formats can be added as needed.
+ API: gst_audio_iec61937_frame_size()
+ API: gst_audio_iec61937_payload()
+ https://bugzilla.gnome.org/show_bug.cgi?id=642730
+
+2011-03-09 11:12:39 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstbaseaudiosink.c:
+ * gst-libs/gst/audio/gstbaseaudiosink.h:
+ baseaudiosink: Allow subclasses to provide payloaders
+ This allows subclasses to provide a "payload" function to prepare
+ buffers for consumption. The immediate use for this is for sinks that
+ can handle compressed formats - parsers are directly connected to the
+ sink, and for formats such as AC3, DTS, and MPEG, IEC 61937 patyloading
+ might be used.
+ API: GstBaseAudioSinkClass:payload()
+ https://bugzilla.gnome.org/show_bug.cgi?id=642730
+
+2011-04-09 09:49:10 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstringbuffer.c:
+ ringbuffer: Add support for E-AC3
+ Adds support for pushing E-AC3 buffers and doing bytes-to-ms conversion
+ correctly. The assumption (as with other formats) is that something like
+ IEC 61937 payloading will be used. Correspondingly the ringbuffer spec
+ is populated so that the data rate is 4x normal AC3.
+ https://bugzilla.gnome.org/show_bug.cgi?id=642730
+
+2011-03-14 15:51:40 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstringbuffer.c:
+ ringbuffer: Add support for MPEG audio buffers
+
+2011-03-14 15:49:57 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstringbuffer.h:
+ ringbuffer: Add AAC format types
+ These are meant to be used for buffers containing AAC data. Nothing uses
+ this yet, but for now it serves to distinguish from GST_BUFTYPE_MPEG
+ which represents non-AAC MPEG audio.
+ API: GST_BUFTYPE_MPEG2_AAC
+ API: GST_BUFTYPE_MPEG4_AAC
+
+2011-03-09 22:57:00 +0530 Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+ * gst-libs/gst/audio/gstringbuffer.c:
+ ringbuffer: Add support for DTS buffers
+
+2011-05-14 11:42:50 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ configure: Require core 0.10.34.1 for the new ghostpad API
+
+2011-05-09 22:20:23 +0200 Andoni Morales Alastruey <ylatuya@gmail.com>
+
+ * gst/playback/gstdecodebin2.c:
+ decodebin2: fix preroll for streams at low bitrates
+ For streams at low bitrates we need to set a limit in time because the limit
+ in bytes might not reached too late, sometimes more than 30 seconds.
+ This limit can only be set if upstream is seekable (see #584104)
+ Closes #647769
+
+2011-05-09 13:11:00 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysink.c:
+ playsink: Use new ghostpad/proxypad API to get the internal pad
+
+2011-05-09 12:59:22 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkaudioconvert.h:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.h:
+ playsink: Use new ghostpad/proxypad API
+
+2011-05-09 12:50:06 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/playbin2-compressed.c:
+ playbin2: Disable some compressed stream tests that are racy without a stream-activate event
+
+2011-03-29 19:15:27 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/playbin2-compressed.c:
+ playbin2: Reset buffer counter in playbin2-compressed tests every time when going to READY
+
+2011-03-25 08:26:00 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/Makefile.am:
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gstplaysinkaudioconvert.c:
+ * gst/playback/gstplaysinkaudioconvert.h:
+ * gst/playback/gstplaysinkvideoconvert.c:
+ * gst/playback/gstplaysinkvideoconvert.h:
+ playsink: Add audio and video converter convenience bins
+ These reconfigure based on the caps and plugin in converters if
+ necessary. This also makes switching between compressed and raw
+ streams work flawlessly without loosing the states of any element
+ somewhere or having running time problems.
+
+2011-03-15 12:51:04 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstplaybin2.c:
+ * gst/playback/gstplaysink.c:
+ * gst/playback/gstplaysink.h:
+ playbin2/playsink: Decide if A/V caps are raw only inside playsink
+ Before playbin2 would use different selectors for raw audio and
+ compressed audio (and the same for video) and used different
+ pads from playsink. This made the involved logic much more
+ complex and was not implemented completely in playsink, which
+ made it impossible to support files with a compressed and
+ uncompressed stream that is support by the sink.
+ playbin2 handles raw/non-raw streams the same now and the
+ decision is left to playsink, which now can also handle
+ caps changes from raw to non-raw and the other way around.
+ Fixes bug #632788.
+
+2011-03-15 11:41:14 +0100 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/Makefile.am:
+ * tests/check/elements/playbin2-compressed.c:
+ playbin2: Add unit test for compressed stream support in playbin2/playsink
+
+2011-05-09 12:56:14 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * ext/alsa/gstalsasrc.c:
+ alsasrc: Fix some compilation errors
+
+2011-05-09 11:50:05 +0200 Pontus Oldberg <pontus.oldberg@invector.se>
+
+ * ext/alsa/gstalsasrc.c:
+ * ext/alsa/gstalsasrc.h:
+ alsasrc: Improve timestamp accuracy
+ Fixes bug #635256.
+
+2011-05-06 17:01:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/playback/gstsubtitleoverlay.c:
+ * gst/playback/gstsubtitleoverlay.h:
+ subtitleoverlay: Use new, public ghostpad functions
+
+2011-05-03 11:26:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@nokia.com>
+
+ * sys/xvimage/xvimagesink.c:
+ xvimagesink: Use GST_BOILERPLATE
+
+2011-05-14 09:41:58 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * configure.ac:
+ * docs/plugins/gst-plugins-base-plugins.hierarchy:
+ * docs/plugins/inspect/plugin-adder.xml:
+ * docs/plugins/inspect/plugin-alsa.xml:
+ * docs/plugins/inspect/plugin-app.xml:
+ * docs/plugins/inspect/plugin-audioconvert.xml:
+ * docs/plugins/inspect/plugin-audiorate.xml:
+ * docs/plugins/inspect/plugin-audioresample.xml:
+ * docs/plugins/inspect/plugin-audiotestsrc.xml:
+ * docs/plugins/inspect/plugin-cdparanoia.xml:
+ * docs/plugins/inspect/plugin-decodebin.xml:
+ * docs/plugins/inspect/plugin-encoding.xml:
+ * docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
+ * docs/plugins/inspect/plugin-gdp.xml:
+ * docs/plugins/inspect/plugin-gio.xml:
+ * docs/plugins/inspect/plugin-gnomevfs.xml:
+ * docs/plugins/inspect/plugin-libvisual.xml:
+ * docs/plugins/inspect/plugin-ogg.xml:
+ * docs/plugins/inspect/plugin-pango.xml:
+ * docs/plugins/inspect/plugin-playback.xml:
+ * docs/plugins/inspect/plugin-subparse.xml:
+ * docs/plugins/inspect/plugin-tcp.xml:
+ * docs/plugins/inspect/plugin-theora.xml:
+ * docs/plugins/inspect/plugin-typefindfunctions.xml:
+ * docs/plugins/inspect/plugin-uridecodebin.xml:
+ * docs/plugins/inspect/plugin-videorate.xml:
+ * docs/plugins/inspect/plugin-videoscale.xml:
+ * docs/plugins/inspect/plugin-videotestsrc.xml:
+ * docs/plugins/inspect/plugin-volume.xml:
+ * docs/plugins/inspect/plugin-vorbis.xml:
+ * docs/plugins/inspect/plugin-ximagesink.xml:
+ * docs/plugins/inspect/plugin-xvimagesink.xml:
+ * win32/common/_stdint.h:
+ * win32/common/config.h:
+ Back to development
+
=== release 0.10.34 ===
-2011-05-14 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2011-05-14 01:00:38 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
* configure.ac:
- releasing 0.10.34, "Lemmings"
+ * docs/plugins/inspect/plugin-adder.xml:
+ * docs/plugins/inspect/plugin-alsa.xml:
+ * docs/plugins/inspect/plugin-app.xml:
+ * docs/plugins/inspect/plugin-audioconvert.xml:
+ * docs/plugins/inspect/plugin-audiorate.xml:
+ * docs/plugins/inspect/plugin-audioresample.xml:
+ * docs/plugins/inspect/plugin-audiotestsrc.xml:
+ * docs/plugins/inspect/plugin-cdparanoia.xml:
+ * docs/plugins/inspect/plugin-decodebin.xml:
+ * docs/plugins/inspect/plugin-encoding.xml:
+ * docs/plugins/inspect/plugin-ffmpegcolorspace.xml:
+ * docs/plugins/inspect/plugin-gdp.xml:
+ * docs/plugins/inspect/plugin-gio.xml:
+ * docs/plugins/inspect/plugin-gnomevfs.xml:
+ * docs/plugins/inspect/plugin-libvisual.xml:
+ * docs/plugins/inspect/plugin-ogg.xml:
+ * docs/plugins/inspect/plugin-pango.xml:
+ * docs/plugins/inspect/plugin-playback.xml:
+ * docs/plugins/inspect/plugin-subparse.xml:
+ * docs/plugins/inspect/plugin-tcp.xml:
+ * docs/plugins/inspect/plugin-theora.xml:
+ * docs/plugins/inspect/plugin-typefindfunctions.xml:
+ * docs/plugins/inspect/plugin-uridecodebin.xml:
+ * docs/plugins/inspect/plugin-videorate.xml:
+ * docs/plugins/inspect/plugin-videoscale.xml:
+ * docs/plugins/inspect/plugin-videotestsrc.xml:
+ * docs/plugins/inspect/plugin-volume.xml:
+ * docs/plugins/inspect/plugin-vorbis.xml:
+ * docs/plugins/inspect/plugin-ximagesink.xml:
+ * docs/plugins/inspect/plugin-xvimagesink.xml:
+ * gst-plugins-base.doap:
+ * win32/common/_stdint.h:
+ * win32/common/config.h:
+ Release 0.10.34
=== release 0.10.33 ===
CRUFT_FILES = \
$(top_builddir)/common/shave \
$(top_builddir)/common/shave-libtool \
+ $(top_builddir)/gst-libs/gst/audio/testchannels \
+ $(top_builddir)/tests/examples/volume/volume \
$(top_builddir)/tools/gst-discoverer
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES = gst-plugins-base.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 =
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,'; \
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
ACLOCAL = @ACLOCAL@
ACLOCAL_AMFLAGS = -I m4 -I common/m4
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
CRUFT_FILES = \
$(top_builddir)/common/shave \
$(top_builddir)/common/shave-libtool \
+ $(top_builddir)/gst-libs/gst/audio/testchannels \
+ $(top_builddir)/tests/examples/volume/volume \
$(top_builddir)/tools/gst-discoverer
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 \
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
$(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
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
$(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
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
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*) \
&& 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 \
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)"; \
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:
.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 \
-This is GStreamer Base Plug-ins 0.10.34, "Lemmings"
+This is GStreamer Base Plug-ins 0.10.36, "Better"
+
+Changes since 0.10.35:
+
+ * audio: new IEC 61937 payloading library
+ * audio: new GstAudioFormat, GstAudioFormatInfo and GstAudioInfo API
+ * audio: new GstAudioDecoder and GstAudioEncoder base classes
+ * audio: baseaudiosink: allow subclasses to provide payloaders
+ * audio: baseaudiosink: fix latency calculation for live elements
+ * audio: baseaudiosink: make discont-wait configurable
+ * audio: baseaudiosink: split "drift-tolerance" into "alignment-threshold"
+ * codec-utils: Add method to convert H.264 text level in a level_idc
+ * discoverer: add support for subtitles; try harder to extract language and duration
+ * encoding-profile: add function to create a profile from a discoverer info
+ * ringbuffer: add support for AAC, DTS, E-AC3 and MPEG audio buffers
+ * rtcpbuffer: Add feedback message types from RFC 510
+ * rtcpbuffer: prevent overflow of 16bit header length
+ * rtspconnection: make hostname lookup thread-safe; OSX portability fixes
+ * rtspconnection: only send new data immediately if there are no queued messages
+ * tags: add new GstTagMux base class
+ * tags: add convenience API to handle creative commons licenses
+ * tags: add API to parse ID3v2 tags
+ * tags: various exif and xmp tag writing fixes
+ * tags: xmp: add Iptc4xmpExt schema support
+ * tags: gstvorbistag: map ENCODER Vorbis comment to application-name
+ * video: add video overlay composition API for subtitles
+ * video: fix a RGB ordering mixup in colorspace conversion code
+ * alsasink: fix high sample rates being rejected, and negotiation to "nearest" rate
+ * audioresample: don't emit DISCONT buffers if no discontinuity happened
+ * audioresample: fix quality setting being ignored; use SSE/SSE2 when possible
+ * audiotestsrc: add red (brownian) and blue/violet noise generator
+ * cdparanoiasrc: fix build issue on OSX (caused by broken cdparanoia port and broken system headers)
+ * decodebin2: improve handling of multi-stream chains (e.g. mpeg-ts)
+ * decodebin2: Cache the upstream seekability for demuxer decode chains and use it for the non-preroll multiqueue limits
+ * decodebin2: add support for autoplugging parsers and parser-converters, and negotiate stream-format conversions properly as needed
+ * decodebin2: link elements before testing if they can reach the READY state, so allow hw-accelerated elements can query the video context
+ * decodebin2: use a TIME limit for pre-rolling in live streams and not in non-live streams
+ * decodebin2: fix preroll for HLS streams at low bitrates
+ * decodebin2: add source pads to stream-topology element messages
+ * decodebin, decodebin2: don't plug the same parser multiple times in a row, so we can make parsers accept parsed input as well (and use them to convert to different stream formats)
+ * encodebin: add flags to disable conversion elements
+ * encodebin: autoplug formatters; re-enable parsers
+ * gnomevfssrc: add support for cancelling read operations
+ * oggdemux, oggmux: add support for new Opus audio codec
+ * oggdemux: implement push mode seeking (e.g. for http)
+ * oggdemux: assume input is live stream if byte size cannot be determined
+ * oggdemux: fix hang on small truncated files
+ * oggmux: add skeleton write support
+ * oggmux: sync input streams and select input buffers based on running time
+ * oggmux: headers should always have granpos 0
+ * oggmux: refactor how EOS is determined
+ * oggmux: support sparse streams as input (e.g. kate subtitle streams)
+ * playbin2: fix decoder-sink compatibility check for raw audio/video formats
+ * playbin2: make sure that the decoders we plug are compatible with the fixed sink
+ * playsink: Add audio and video converter convenience bins
+ * playbin2: improve stream switching
+ * playbin2/playsink: Decide if A/V caps are raw only inside playsink
+ * playbin2/playsink: better support for raw + compressed streams (audio passthrough)
+ * playbin2/playsink: improve handling of "non-raw" formats (for hw-accelerated video decoding)
+ * playsinkconvertbin: Reconfigure if we switch from raw to incompatible raw caps
+ * subparse: subtitle format typefinding improvements
+ * subtitleoverlay: handle non raw video streams (add suport for hardware accelerated videos)
+ * textoverlay: support more video formats
+ * textoverlay: add "outline-color" and "shadow" properties
+ * textoverlay: attach GstVideoOverlayComposition to buffers if input is not raw video
+ * theoraenc: do not automatically override quality when using target bitrate
+ * theoraenc: proxy downstream caps restrictions upstream
+ * typefinding: extract SOF marker in jpeg typefinder (to distinguish lossless JPEG)
+ * typefinding: add typefinder for WAP WBMP bitmaps (mostly to avoid false positives)
+ * typefinding: typefind UTF-16 and UTF-32 with BOMs (to avoid false positives)
+ * typefinding: recognize Asylum modules
+ * videorate: add a "max-rate" property; optionally ensure maximum average output frame rate
+ * videorate: add "force-fps" property to force an output framerate or change it on the fly
+ * videorate: optionally only drop frames to ensure maximum frame rate
+ * videoscale: add modified Lanczos scaling method
+ * volume: Fix handling of volume>=4.0 for 8 and 16 bit integer formats
+ * vorbisenc: relax overly tight jitter tolerances (make it work better with non-perfect input streams)
+ * xvimagesink, ximagesink: fall back to non-XShm mode if allocating the XShm image failed
+
+Bugs fixed since 0.10.35:
+
+ * 643202 : [encodebin] streamcombiner not completely implemented
+ * 654270 : oggmux unit test fails after latest changes
+ * 658984 : Fix typos in gst-plugins-base
+ * 555437 : [tag] add GstTagMux base class
+ * 556648 : [typefind] detect lossless jpeg
+ * 563251 : oggmux should have option to create Ogg Skeleton stream
+ * 584811 : playbin2's get-text-tags sometimes fails in text stream 0
+ * 607619 : [typefind] utf-16 text file mistakenly identified as layer 1 mpeg audio
+ * 607742 : API: add gst_event_new_{upstream,downstream}_force_key_unit() etc.
+ * 609918 : [OS X] configure: cdda_interface.h: present but cannot be compiled (if VERSION is defined)
+ * 610443 : baseaudiosink: clock can jump on setcaps
+ * 612443 : oggdemux: only use information from skeleton if we have nothing better
+ * 615131 : playing an ogg over http does not report duration correctly
+ * 615342 : [gstalsamixer] leaks
+ * 621897 : [oggdemux] reports wrong duration, and push mode seeking support
+ * 628337 : [gnomevfssrc] Add support for cancelling read operations
+ * 628764 : [videorate] add new option for max frame rate
+ * 629212 : [oggdemux] Improve support for push mode (seeking, duration)
+ * 630322 : make seek example work with windows
+ * 630442 : xvimagesink, ximagesink: fallback to X*CreateImage() if X*ShmCreateImage() fails
+ * 630497 : [seek] sprinkle GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS to dump pipeline to dot file
+ * 632788 : [playbin2] Doesn't support files with a streams that are supported compressed by a sink and streams that need decoding
+ * 635556 : [oggdemux] bad duration estimate in streaming mode with vertical-overview.ogg
+ * 637812 : vorbisenc: choppy sound due to input timestamp jitter
+ * 638897 : [textrender] allow setting the canvas size using peer caps + bugfixes
+ * 639055 : discoverer: add support for subtitle streams
+ * 640041 : textoverlay: Added parameters to control text outline color and whether shadowing is enabled
+ * 640564 : Remuxing a Theora stream generates a stream that oggz-validate complains about
+ * 640859 : basesink incorrectly categorizes timestamp jitter as drift
+ * 642690 : [baseaudio] GstBaseAudioEncoder and GstBaseAudioDecoder class
+ * 642878 : encoding-profile: add a function to create a profile from a discoverer info
+ * 643578 : [encodebin] - broken remuxing
+ * 644284 : Suspicious max_latency computation in gstbaseaudiosink.c
+ * 647648 : videorate: support for caps modifications in a running pipeline
+ * 647769 : [decodebin2] Fix preroll for streams at low bitrate
+ * 649319 : Add boiler plate code to xvimagesink
+ * 649642 : [volume] Overflows with volume > =4.0 and 8/16 bit integer formats
+ * 649969 : [audiotestsrc] Add more noise variants
+ * 650406 : vorbisdec does not handle headers in caps
+ * 651089 : [xvimagesink/ximagesink] Remove g_assert from Interface query
+ * 651294 : WBMP images are not supported by typefind
+ * 651496 : encodebin seems to fail to pick up container variant
+ * 651615 : [vorbisenc] Too small jitter tolerance
+ * 651788 : [theoraenc] separate encode and push block in theora_enc_chain
+ * 651855 : elements/volume unit test fails
+ * 652342 : encoding-target: set name on audio and video profiles when reading from keyfile
+ * 652642 : typefind: NULL check in degas_type_find
+ * 652838 : gst_discoverer_discover_uri Allow NULL GError* argument
+ * 653461 : [theoraenc] element causes encoder to drop frames?
+ * 654295 : [typefind] audio/x-sap detection doesn't work
+ * 654434 : [basertppayload] RTP timestamps not longer reproducible
+ * 654959 : textoverlay would flicker if it receives not timestampes text on input
+ * 655244 : encodebin has to provide the downstream possible caps to h264parse
+ * 655268 : decodebin2: deadlock after multi-stream chains change
+ * 655279 : [playbin2] Don't reset sinks when not needed
+ * 655347 : theoradec: segfault on 0-byte ogg_packet in _chain_reverse
+ * 655503 : pbutils: Add MPEG-4 SP levels 4a, 5 and 6
+ * 655574 : ogg: crash determining duration of empty vorbis packet
+ * 656022 : volume: fix sample depth typo
+ * 656034 : gstvorbistag: map ENCODER Vorbis comment to application-name
+ * 656392 : audioresample: add FFT based checks
+ * 656715 : playbin2, playsink: reference count ts_offset to avoid crashes
+ * 656775 : oggmux: various cleanups
+ * 656781 : resample.c has warnings treated as errors that prevent compilation
+ * 657049 : textoverlay: buffer leaks
+ * 657062 : oggdemux: do not skip sparse streams when determining start times
+ * 657151 : ogg: another cleanup round
+ * 657257 : discoverer: retrieve audio track language from tags too
+ * 657261 : resindvd: regression in git: no more button highlights in menus
+ * 657319 : videorate should use basetransform
+ * 657333 : theoraenc: fix caps leak
+ * 657504 : gtk-doc distcheck failure: files left in build directory after distclean:
+ * 657872 : [subparse] Doesn't detect some SRT subtitle files
+ * 658294 : gst-inspect videorate hangs
+ * 658416 : decodebin2: refcounting bugs causing criticals
+ * 658443 : theoraenc: do not automatically override quality when using target bitrate
+ * 658514 : typefinding: recognize .amf (Asylum Music File) files for modplug
+ * 658609 : Handle subtitles with non raw caps video streams in subtitle overlay
+ * 658846 : Playbin2 pipeline stuck while prerolling if decoder is missing
+ * 658901 : textoverlay: crash when the video sink pad has no parent
+ * 659562 : videorate: gst_mini_object_unref: assertion `GST_IS_MINI_OBJECT (mini_object)' failed
+ * 660150 : baseaudio: compiler warnings if debugging system is disabled
+ * 660170 : alsasrc: broken timestamps lead to alsasrc ! audiorate endless loop
+ * 660301 : playbin2: Fix mingw compiler warnings
+ * 660304 : videotestsrc: Fix mingw compiler warning
+ * 660598 : playbin2: Make sure that elements that are plugged are compatible with the fixed sink
+ * 660604 : textoverlay: add YV12 support
+ * 660816 : dvd menus got broken
+ * 661105 : audiotestsrc: add missing break
+ * 661106 : tests: actually test what we said we would
+ * 661122 : videotestsrc does not build on Solaris
+ * 661202 : decodebin2: fire drained signal where appropriate
+ * 661738 : Deadlock between threads in gstaudiosink and gstringbuffer
+ * 661897 : oggdemux: do not retry seeking indefinitely
+ * 661983 : Regression: Reverse playback does not work for vorbis
+ * 662049 : oggdemux/oggmux in push mode cause preroll to wedge
+ * 662108 : Assertion in base audio decoder when decoding vorbis
+ * 662330 : [decodebin2] Should link and add elements to the bin before checking if they can reach READY state
+ * 662475 : oggdemux: Improvements on the push mode seeking algorithm.
+ * 662829 : [textoverlay] - silent property looks not well implemented
+ * 663174 : oggmux: set collectpads2 not to wait on sparse streams
+ * 663312 : decodebin2: Post all source pads in stream-topology messages as " element-srcpad " values
+ * 663390 : theoraenc: fix speed level failure test
+ * 663391 : theoraenc: misc small tweaks
+ * 663465 : baseaudiosink: fix late buffers leaking
+ * 663766 : [0.11] oggmux: split request pad templates into audio/video/subtitle
+ * 663892 : [playbin2] visualisation leads to not-negotiated error
+ * 663893 : playbin2: g_object_set_valist: construct property " use-volume " for object `GstPlaySinkAudioConvert' can't be set after construction
+ * 664818 : Autoplugger sink bin receives strange caps while it gets the correct ones in 0.10.35 and earlier
+ * 665004 : audioresample emits spurious disconts
+ * 665074 : [gstfft] headers are not bracketed
+ * 665080 : API: subtitle overlays for raw and non-raw video buffers
+ * 665120 : playbin2: decoder not selected for audio-sink=autoaudiosink
+ * 666395 : playbin2: set uri to a non-existed file in " about-to-finish " causes a CRITICAL warning
+ * 667210 : videotestsrc/generate_sine_table needs to link against glib
+ * 667306 : discoverer: don't use unportable vararg macro
+ * 667311 : fix various unlikely, but still potential memoryleaks
+ * 667312 : appsrc: implement get_caps
+ * 667313 : rtcpbuffer: prevent overflow of 16bit header length.
+ * 667315 : videotestsrc: keep the calculation fixed-point
+ * 667316 : pango: Changes includes from brackets to quotes for local files
+ * 667917 : alsasink: Rate doesn't match (requested 88200Hz, get 0Hz)
+ * 668097 : [subtitleoverlay] fix state change stall on PAUSED- > READY- > PAUSED (patch)
+ * 669039 : gstrtspconnection: new data may get sent even-though there is a queued message in the GstRTSPWatch
+ * 669164 : oggdemux generates invalid granpos which causes asserts in theoraparse
+ * 669167 : vorbisparse drops certain data buffers on the floor mistakenly thinking they're headers
+ * 669203 : playbin2: totem segfaults in gst_stream_get_other_pad_from_pad()
+ * 646868 : tag: Provide Creative Commons helper functions
+ * 654388 : [tags] API: move id3 parsing from id3demux to tag lib
+ * 311486 : [oggmux] theora bos must come before any audio bos pages
+
+API additions since 0.10.35:
+
+ * gst_audio_decoder_finish_frame()
+ * gst_audio_decoder_get_audio_info()
+ * gst_audio_decoder_get_byte_time()
+ * gst_audio_decoder_get_delay()
+ * gst_audio_decoder_get_drainable()
+ * gst_audio_decoder_get_latency()
+ * gst_audio_decoder_get_max_errors()
+ * gst_audio_decoder_get_min_latency()
+ * gst_audio_decoder_get_needs_format()
+ * gst_audio_decoder_get_parse_state()
+ * gst_audio_decoder_get_plc()
+ * gst_audio_decoder_get_plc_aware()
+ * gst_audio_decoder_get_tolerance()
+ * gst_audio_decoder_get_type()
+ * gst_audio_decoder_set_byte_time()
+ * gst_audio_decoder_set_drainable()
+ * gst_audio_decoder_set_latency()
+ * gst_audio_decoder_set_max_errors()
+ * gst_audio_decoder_set_min_latency()
+ * gst_audio_decoder_set_needs_format()
+ * gst_audio_decoder_set_plc()
+ * gst_audio_decoder_set_plc_aware()
+ * gst_audio_decoder_set_tolerance()
+ * gst_audio_encoder_finish_frame()
+ * gst_audio_encoder_get_audio_info()
+ * gst_audio_encoder_get_drainable()
+ * gst_audio_encoder_get_frame_max()
+ * gst_audio_encoder_get_frame_samples_max()
+ * gst_audio_encoder_get_frame_samples_min()
+ * gst_audio_encoder_get_hard_min()
+ * gst_audio_encoder_get_hard_resync()
+ * gst_audio_encoder_get_latency()
+ * gst_audio_encoder_get_lookahead()
+ * gst_audio_encoder_get_mark_granule()
+ * gst_audio_encoder_get_perfect_timestamp()
+ * gst_audio_encoder_get_tolerance()
+ * gst_audio_encoder_get_type()
+ * gst_audio_encoder_merge_tags()
+ * gst_audio_encoder_proxy_getcaps()
+ * gst_audio_encoder_set_drainable()
+ * gst_audio_encoder_set_frame_max()
+ * gst_audio_encoder_set_frame_samples_max()
+ * gst_audio_encoder_set_frame_samples_min()
+ * gst_audio_encoder_set_hard_min()
+ * gst_audio_encoder_set_hard_resync()
+ * gst_audio_encoder_set_latency()
+ * gst_audio_encoder_set_lookahead()
+ * gst_audio_encoder_set_mark_granule()
+ * gst_audio_encoder_set_perfect_timestamp()
+ * gst_audio_encoder_set_tolerance()
+ * gst_audio_iec61937_frame_size()
+ * gst_audio_iec61937_payload()
+ * gst_audio_info_clear()
+ * gst_audio_info_convert()
+ * gst_audio_info_copy()
+ * gst_audio_info_free()
+ * gst_audio_info_from_caps()
+ * gst_audio_info_init()
+ * gst_audio_info_to_caps()
+ * gst_base_audio_sink_get_alignment_threshold()
+ * gst_base_audio_sink_get_discont_wait()
+ * gst_base_audio_sink_set_alignment_threshold()
+ * gst_base_audio_sink_set_discont_wait()
+ * gst_codec_utils_h264_get_level_idc()
+ * gst_discoverer_audio_info_get_language()
+ * gst_discoverer_info_get_subtitle_streams()
+ * gst_discoverer_subtitle_info_get_language()
+ * gst_discoverer_subtitle_info_get_type()
+ * gst_encoding_profile_from_discoverer()
+ * gst_tag_get_license_description()
+ * gst_tag_get_license_flags()
+ * gst_tag_get_license_jurisdiction()
+ * gst_tag_get_license_nick()
+ * gst_tag_get_license_title()
+ * gst_tag_get_license_version()
+ * gst_tag_get_licenses()
+ * gst_tag_license_flags_get_type()
+ * gst_tag_get_id3v2_tag_size()
+ * gst_tag_list_from_id3v2_tag()
+ * gst_tag_mux_get_type()
+ * gst_video_buffer_get_overlay_composition()
+ * gst_video_buffer_set_overlay_composition()
+ * gst_video_event_is_force_key_unit()
+ * gst_video_event_new_downstream_force_key_unit()
+ * gst_video_event_new_upstream_force_key_unit()
+ * gst_video_event_parse_downstream_force_key_unit()
+ * gst_video_event_parse_upstream_force_key_unit()
+ * gst_video_get_size_from_caps()
+ * gst_video_overlay_composition_add_rectangle()
+ * gst_video_overlay_composition_blend()
+ * gst_video_overlay_composition_copy()
+ * gst_video_overlay_composition_get_rectangle()
+ * gst_video_overlay_composition_get_seqnum()
+ * gst_video_overlay_composition_get_type()
+ * gst_video_overlay_composition_make_writable()
+ * gst_video_overlay_composition_n_rectangles()
+ * gst_video_overlay_composition_new()
+ * gst_video_overlay_rectangle_copy()
+ * gst_video_overlay_rectangle_get_pixels_argb()
+ * gst_video_overlay_rectangle_get_pixels_unscaled_argb()
+ * gst_video_overlay_rectangle_get_render_rectangle()
+ * gst_video_overlay_rectangle_get_seqnum()
+ * gst_video_overlay_rectangle_get_type()
+ * gst_video_overlay_rectangle_new_argb()
+ * gst_video_overlay_rectangle_set_render_rectangle()
+
+Changes since 0.10.34:
+
+ * work around GLib atomic ops API change
+ * don't use G_CONST_RETURN in public headers
+ * subparse: typefinding fixes for subtitles in non-UTF8 charsets
+
+Bugs fixed since 0.10.34:
+
+ * 600043 : subparse: fails to recognise Cyrillic subtitles in windows-1251 encoding
Changes since 0.10.33:
-Release notes for GStreamer Base Plug-ins 0.10.34 "Lemmings"
+Release notes for GStreamer Base Plug-ins 0.10.36 "Better"
Features of this release
- * This release is identical to 0.10.33 (to keep core/base versions in sync)
-There were no bugs fixed in this release
+ * audio: new IEC 61937 payloading library
+ * audio: new GstAudioFormat, GstAudioFormatInfo and GstAudioInfo API
+ * audio: new GstAudioDecoder and GstAudioEncoder base classes
+ * audio: baseaudiosink: allow subclasses to provide payloaders
+ * audio: baseaudiosink: fix latency calculation for live elements
+ * audio: baseaudiosink: make discont-wait configurable
+ * audio: baseaudiosink: split "drift-tolerance" into "alignment-threshold"
+ * codec-utils: Add method to convert H.264 text level in a level_idc
+ * discoverer: add support for subtitles; try harder to extract language and duration
+ * encoding-profile: add function to create a profile from a discoverer info
+ * ringbuffer: add support for AAC, DTS, E-AC3 and MPEG audio buffers
+ * rtcpbuffer: Add feedback message types from RFC 510
+ * rtcpbuffer: prevent overflow of 16bit header length
+ * rtspconnection: make hostname lookup thread-safe; OSX portability fixes
+ * rtspconnection: only send new data immediately if there are no queued messages
+ * tags: add new GstTagMux base class
+ * tags: add convenience API to handle creative commons licenses
+ * tags: add API to parse ID3v2 tags
+ * tags: various exif and xmp tag writing fixes
+ * tags: xmp: add Iptc4xmpExt schema support
+ * tags: gstvorbistag: map ENCODER Vorbis comment to application-name
+ * video: add video overlay composition API for subtitles
+ * video: fix a RGB ordering mixup in colorspace conversion code
+ * alsasink: fix high sample rates being rejected, and negotiation to "nearest" rate
+ * audioresample: don't emit DISCONT buffers if no discontinuity happened
+ * audioresample: fix quality setting being ignored; use SSE/SSE2 when possible
+ * audiotestsrc: add red (brownian) and blue/violet noise generator
+ * cdparanoiasrc: fix build issue on OSX (caused by broken cdparanoia port and broken system headers)
+ * decodebin2: improve handling of multi-stream chains (e.g. mpeg-ts)
+ * decodebin2: Cache the upstream seekability for demuxer decode chains and use it for the non-preroll multiqueue limits
+ * decodebin2: add support for autoplugging parsers and parser-converters, and negotiate stream-format conversions properly as needed
+ * decodebin2: link elements before testing if they can reach the READY state, so allow hw-accelerated elements can query the video context
+ * decodebin2: use a TIME limit for pre-rolling in live streams and not in non-live streams
+ * decodebin2: fix preroll for HLS streams at low bitrates
+ * decodebin2: add source pads to stream-topology element messages
+ * decodebin, decodebin2: don't plug the same parser multiple times in a row, so we can make parsers accept parsed input as well (and use them to convert to different stream formats)
+ * encodebin: add flags to disable conversion elements
+ * encodebin: autoplug formatters; re-enable parsers
+ * gnomevfssrc: add support for cancelling read operations
+ * oggdemux, oggmux: add support for new Opus audio codec
+ * oggdemux: implement push mode seeking (e.g. for http)
+ * oggdemux: assume input is live stream if byte size cannot be determined
+ * oggdemux: fix hang on small truncated files
+ * oggmux: add skeleton write support
+ * oggmux: sync input streams and select input buffers based on running time
+ * oggmux: headers should always have granpos 0
+ * oggmux: refactor how EOS is determined
+ * oggmux: support sparse streams as input (e.g. kate subtitle streams)
+ * playbin2: fix decoder-sink compatibility check for raw audio/video formats
+ * playbin2: make sure that the decoders we plug are compatible with the fixed sink
+ * playsink: Add audio and video converter convenience bins
+ * playbin2: improve stream switching
+ * playbin2/playsink: Decide if A/V caps are raw only inside playsink
+ * playbin2/playsink: better support for raw + compressed streams (audio passthrough)
+ * playbin2/playsink: improve handling of "non-raw" formats (for hw-accelerated video decoding)
+ * playsinkconvertbin: Reconfigure if we switch from raw to incompatible raw caps
+ * subparse: subtitle format typefinding improvements
+ * subtitleoverlay: handle non raw video streams (add suport for hardware accelerated videos)
+ * textoverlay: support more video formats
+ * textoverlay: add "outline-color" and "shadow" properties
+ * textoverlay: attach GstVideoOverlayComposition to buffers if input is not raw video
+ * theoraenc: do not automatically override quality when using target bitrate
+ * theoraenc: proxy downstream caps restrictions upstream
+ * typefinding: extract SOF marker in jpeg typefinder (to distinguish lossless JPEG)
+ * typefinding: add typefinder for WAP WBMP bitmaps (mostly to avoid false positives)
+ * typefinding: typefind UTF-16 and UTF-32 with BOMs (to avoid false positives)
+ * typefinding: recognize Asylum modules
+ * videorate: add a "max-rate" property; optionally ensure maximum average output frame rate
+ * videorate: add "force-fps" property to force an output framerate or change it on the fly
+ * videorate: optionally only drop frames to ensure maximum frame rate
+ * videoscale: add modified Lanczos scaling method
+ * volume: Fix handling of volume>=4.0 for 8 and 16 bit integer formats
+ * vorbisenc: relax overly tight jitter tolerances (make it work better with non-perfect input streams)
+ * xvimagesink, ximagesink: fall back to non-XShm mode if allocating the XShm image failed
+
+Bugs fixed in this release
+
+ * 643202 : [encodebin] streamcombiner not completely implemented
+ * 654270 : oggmux unit test fails after latest changes
+ * 658984 : Fix typos in gst-plugins-base
+ * 555437 : [tag] add GstTagMux base class
+ * 556648 : [typefind] detect lossless jpeg
+ * 563251 : oggmux should have option to create Ogg Skeleton stream
+ * 584811 : playbin2's get-text-tags sometimes fails in text stream 0
+ * 607619 : [typefind] utf-16 text file mistakenly identified as layer 1 mpeg audio
+ * 607742 : API: add gst_event_new_{upstream,downstream}_force_key_unit() etc.
+ * 609918 : [OS X] configure: cdda_interface.h: present but cannot be compiled (if VERSION is defined)
+ * 610443 : baseaudiosink: clock can jump on setcaps
+ * 612443 : oggdemux: only use information from skeleton if we have nothing better
+ * 615131 : playing an ogg over http does not report duration correctly
+ * 615342 : [gstalsamixer] leaks
+ * 621897 : [oggdemux] reports wrong duration, and push mode seeking support
+ * 628337 : [gnomevfssrc] Add support for cancelling read operations
+ * 628764 : [videorate] add new option for max frame rate
+ * 629212 : [oggdemux] Improve support for push mode (seeking, duration)
+ * 630322 : make seek example work with windows
+ * 630442 : xvimagesink, ximagesink: fallback to X*CreateImage() if X*ShmCreateImage() fails
+ * 630497 : [seek] sprinkle GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS to dump pipeline to dot file
+ * 632788 : [playbin2] Doesn't support files with a streams that are supported compressed by a sink and streams that need decoding
+ * 635556 : [oggdemux] bad duration estimate in streaming mode with vertical-overview.ogg
+ * 637812 : vorbisenc: choppy sound due to input timestamp jitter
+ * 638897 : [textrender] allow setting the canvas size using peer caps + bugfixes
+ * 639055 : discoverer: add support for subtitle streams
+ * 640041 : textoverlay: Added parameters to control text outline color and whether shadowing is enabled
+ * 640564 : Remuxing a Theora stream generates a stream that oggz-validate complains about
+ * 640859 : basesink incorrectly categorizes timestamp jitter as drift
+ * 642690 : [baseaudio] GstBaseAudioEncoder and GstBaseAudioDecoder class
+ * 642878 : encoding-profile: add a function to create a profile from a discoverer info
+ * 643578 : [encodebin] - broken remuxing
+ * 644284 : Suspicious max_latency computation in gstbaseaudiosink.c
+ * 647648 : videorate: support for caps modifications in a running pipeline
+ * 647769 : [decodebin2] Fix preroll for streams at low bitrate
+ * 649319 : Add boiler plate code to xvimagesink
+ * 649642 : [volume] Overflows with volume > =4.0 and 8/16 bit integer formats
+ * 649969 : [audiotestsrc] Add more noise variants
+ * 650406 : vorbisdec does not handle headers in caps
+ * 651089 : [xvimagesink/ximagesink] Remove g_assert from Interface query
+ * 651294 : WBMP images are not supported by typefind
+ * 651496 : encodebin seems to fail to pick up container variant
+ * 651615 : [vorbisenc] Too small jitter tolerance
+ * 651788 : [theoraenc] separate encode and push block in theora_enc_chain
+ * 651855 : elements/volume unit test fails
+ * 652342 : encoding-target: set name on audio and video profiles when reading from keyfile
+ * 652642 : typefind: NULL check in degas_type_find
+ * 652838 : gst_discoverer_discover_uri Allow NULL GError* argument
+ * 653461 : [theoraenc] element causes encoder to drop frames?
+ * 654295 : [typefind] audio/x-sap detection doesn't work
+ * 654434 : [basertppayload] RTP timestamps not longer reproducible
+ * 654959 : textoverlay would flicker if it receives not timestampes text on input
+ * 655244 : encodebin has to provide the downstream possible caps to h264parse
+ * 655268 : decodebin2: deadlock after multi-stream chains change
+ * 655279 : [playbin2] Don't reset sinks when not needed
+ * 655347 : theoradec: segfault on 0-byte ogg_packet in _chain_reverse
+ * 655503 : pbutils: Add MPEG-4 SP levels 4a, 5 and 6
+ * 655574 : ogg: crash determining duration of empty vorbis packet
+ * 656022 : volume: fix sample depth typo
+ * 656034 : gstvorbistag: map ENCODER Vorbis comment to application-name
+ * 656392 : audioresample: add FFT based checks
+ * 656715 : playbin2, playsink: reference count ts_offset to avoid crashes
+ * 656775 : oggmux: various cleanups
+ * 656781 : resample.c has warnings treated as errors that prevent compilation
+ * 657049 : textoverlay: buffer leaks
+ * 657062 : oggdemux: do not skip sparse streams when determining start times
+ * 657151 : ogg: another cleanup round
+ * 657257 : discoverer: retrieve audio track language from tags too
+ * 657261 : resindvd: regression in git: no more button highlights in menus
+ * 657319 : videorate should use basetransform
+ * 657333 : theoraenc: fix caps leak
+ * 657504 : gtk-doc distcheck failure: files left in build directory after distclean:
+ * 657872 : [subparse] Doesn't detect some SRT subtitle files
+ * 658294 : gst-inspect videorate hangs
+ * 658416 : decodebin2: refcounting bugs causing criticals
+ * 658443 : theoraenc: do not automatically override quality when using target bitrate
+ * 658514 : typefinding: recognize .amf (Asylum Music File) files for modplug
+ * 658609 : Handle subtitles with non raw caps video streams in subtitle overlay
+ * 658846 : Playbin2 pipeline stuck while prerolling if decoder is missing
+ * 658901 : textoverlay: crash when the video sink pad has no parent
+ * 659562 : videorate: gst_mini_object_unref: assertion `GST_IS_MINI_OBJECT (mini_object)' failed
+ * 660150 : baseaudio: compiler warnings if debugging system is disabled
+ * 660170 : alsasrc: broken timestamps lead to alsasrc ! audiorate endless loop
+ * 660301 : playbin2: Fix mingw compiler warnings
+ * 660304 : videotestsrc: Fix mingw compiler warning
+ * 660598 : playbin2: Make sure that elements that are plugged are compatible with the fixed sink
+ * 660604 : textoverlay: add YV12 support
+ * 660816 : dvd menus got broken
+ * 661105 : audiotestsrc: add missing break
+ * 661106 : tests: actually test what we said we would
+ * 661122 : videotestsrc does not build on Solaris
+ * 661202 : decodebin2: fire drained signal where appropriate
+ * 661738 : Deadlock between threads in gstaudiosink and gstringbuffer
+ * 661897 : oggdemux: do not retry seeking indefinitely
+ * 661983 : Regression: Reverse playback does not work for vorbis
+ * 662049 : oggdemux/oggmux in push mode cause preroll to wedge
+ * 662108 : Assertion in base audio decoder when decoding vorbis
+ * 662330 : [decodebin2] Should link and add elements to the bin before checking if they can reach READY state
+ * 662475 : oggdemux: Improvements on the push mode seeking algorithm.
+ * 662829 : [textoverlay] - silent property looks not well implemented
+ * 663174 : oggmux: set collectpads2 not to wait on sparse streams
+ * 663312 : decodebin2: Post all source pads in stream-topology messages as " element-srcpad " values
+ * 663390 : theoraenc: fix speed level failure test
+ * 663391 : theoraenc: misc small tweaks
+ * 663465 : baseaudiosink: fix late buffers leaking
+ * 663766 : [0.11] oggmux: split request pad templates into audio/video/subtitle
+ * 663892 : [playbin2] visualisation leads to not-negotiated error
+ * 663893 : playbin2: g_object_set_valist: construct property " use-volume " for object `GstPlaySinkAudioConvert' can't be set after construction
+ * 664818 : Autoplugger sink bin receives strange caps while it gets the correct ones in 0.10.35 and earlier
+ * 665004 : audioresample emits spurious disconts
+ * 665074 : [gstfft] headers are not bracketed
+ * 665080 : API: subtitle overlays for raw and non-raw video buffers
+ * 665120 : playbin2: decoder not selected for audio-sink=autoaudiosink
+ * 666395 : playbin2: set uri to a non-existed file in " about-to-finish " causes a CRITICAL warning
+ * 667210 : videotestsrc/generate_sine_table needs to link against glib
+ * 667306 : discoverer: don't use unportable vararg macro
+ * 667311 : fix various unlikely, but still potential memoryleaks
+ * 667312 : appsrc: implement get_caps
+ * 667313 : rtcpbuffer: prevent overflow of 16bit header length.
+ * 667315 : videotestsrc: keep the calculation fixed-point
+ * 667316 : pango: Changes includes from brackets to quotes for local files
+ * 667917 : alsasink: Rate doesn't match (requested 88200Hz, get 0Hz)
+ * 668097 : [subtitleoverlay] fix state change stall on PAUSED- > READY- > PAUSED (patch)
+ * 669039 : gstrtspconnection: new data may get sent even-though there is a queued message in the GstRTSPWatch
+ * 669164 : oggdemux generates invalid granpos which causes asserts in theoraparse
+ * 669167 : vorbisparse drops certain data buffers on the floor mistakenly thinking they're headers
+ * 669203 : playbin2: totem segfaults in gst_stream_get_other_pad_from_pad()
+ * 646868 : tag: Provide Creative Commons helper functions
+ * 654388 : [tags] API: move id3 parsing from id3demux to tag lib
+ * 311486 : [oggmux] theora bos must come before any audio bos pages
+
+API changed in this release
+
+- API additions:
+ * gst_audio_decoder_finish_frame()
+ * gst_audio_decoder_get_audio_info()
+ * gst_audio_decoder_get_byte_time()
+ * gst_audio_decoder_get_delay()
+ * gst_audio_decoder_get_drainable()
+ * gst_audio_decoder_get_latency()
+ * gst_audio_decoder_get_max_errors()
+ * gst_audio_decoder_get_min_latency()
+ * gst_audio_decoder_get_needs_format()
+ * gst_audio_decoder_get_parse_state()
+ * gst_audio_decoder_get_plc()
+ * gst_audio_decoder_get_plc_aware()
+ * gst_audio_decoder_get_tolerance()
+ * gst_audio_decoder_get_type()
+ * gst_audio_decoder_set_byte_time()
+ * gst_audio_decoder_set_drainable()
+ * gst_audio_decoder_set_latency()
+ * gst_audio_decoder_set_max_errors()
+ * gst_audio_decoder_set_min_latency()
+ * gst_audio_decoder_set_needs_format()
+ * gst_audio_decoder_set_plc()
+ * gst_audio_decoder_set_plc_aware()
+ * gst_audio_decoder_set_tolerance()
+ * gst_audio_encoder_finish_frame()
+ * gst_audio_encoder_get_audio_info()
+ * gst_audio_encoder_get_drainable()
+ * gst_audio_encoder_get_frame_max()
+ * gst_audio_encoder_get_frame_samples_max()
+ * gst_audio_encoder_get_frame_samples_min()
+ * gst_audio_encoder_get_hard_min()
+ * gst_audio_encoder_get_hard_resync()
+ * gst_audio_encoder_get_latency()
+ * gst_audio_encoder_get_lookahead()
+ * gst_audio_encoder_get_mark_granule()
+ * gst_audio_encoder_get_perfect_timestamp()
+ * gst_audio_encoder_get_tolerance()
+ * gst_audio_encoder_get_type()
+ * gst_audio_encoder_merge_tags()
+ * gst_audio_encoder_proxy_getcaps()
+ * gst_audio_encoder_set_drainable()
+ * gst_audio_encoder_set_frame_max()
+ * gst_audio_encoder_set_frame_samples_max()
+ * gst_audio_encoder_set_frame_samples_min()
+ * gst_audio_encoder_set_hard_min()
+ * gst_audio_encoder_set_hard_resync()
+ * gst_audio_encoder_set_latency()
+ * gst_audio_encoder_set_lookahead()
+ * gst_audio_encoder_set_mark_granule()
+ * gst_audio_encoder_set_perfect_timestamp()
+ * gst_audio_encoder_set_tolerance()
+ * gst_audio_iec61937_frame_size()
+ * gst_audio_iec61937_payload()
+ * gst_audio_info_clear()
+ * gst_audio_info_convert()
+ * gst_audio_info_copy()
+ * gst_audio_info_free()
+ * gst_audio_info_from_caps()
+ * gst_audio_info_init()
+ * gst_audio_info_to_caps()
+ * gst_base_audio_sink_get_alignment_threshold()
+ * gst_base_audio_sink_get_discont_wait()
+ * gst_base_audio_sink_set_alignment_threshold()
+ * gst_base_audio_sink_set_discont_wait()
+ * gst_codec_utils_h264_get_level_idc()
+ * gst_discoverer_audio_info_get_language()
+ * gst_discoverer_info_get_subtitle_streams()
+ * gst_discoverer_subtitle_info_get_language()
+ * gst_discoverer_subtitle_info_get_type()
+ * gst_encoding_profile_from_discoverer()
+ * gst_tag_get_license_description()
+ * gst_tag_get_license_flags()
+ * gst_tag_get_license_jurisdiction()
+ * gst_tag_get_license_nick()
+ * gst_tag_get_license_title()
+ * gst_tag_get_license_version()
+ * gst_tag_get_licenses()
+ * gst_tag_license_flags_get_type()
+ * gst_tag_get_id3v2_tag_size()
+ * gst_tag_list_from_id3v2_tag()
+ * gst_tag_mux_get_type()
+ * gst_video_buffer_get_overlay_composition()
+ * gst_video_buffer_set_overlay_composition()
+ * gst_video_event_is_force_key_unit()
+ * gst_video_event_new_downstream_force_key_unit()
+ * gst_video_event_new_upstream_force_key_unit()
+ * gst_video_event_parse_downstream_force_key_unit()
+ * gst_video_event_parse_upstream_force_key_unit()
+ * gst_video_get_size_from_caps()
+ * gst_video_overlay_composition_add_rectangle()
+ * gst_video_overlay_composition_blend()
+ * gst_video_overlay_composition_copy()
+ * gst_video_overlay_composition_get_rectangle()
+ * gst_video_overlay_composition_get_seqnum()
+ * gst_video_overlay_composition_get_type()
+ * gst_video_overlay_composition_make_writable()
+ * gst_video_overlay_composition_n_rectangles()
+ * gst_video_overlay_composition_new()
+ * gst_video_overlay_rectangle_copy()
+ * gst_video_overlay_rectangle_get_pixels_argb()
+ * gst_video_overlay_rectangle_get_pixels_unscaled_argb()
+ * gst_video_overlay_rectangle_get_render_rectangle()
+ * gst_video_overlay_rectangle_get_seqnum()
+ * gst_video_overlay_rectangle_get_type()
+ * gst_video_overlay_rectangle_new_argb()
+ * gst_video_overlay_rectangle_set_render_rectangle()
Download
Contributors to this release
+ * Age Bosma
+ * Alessandro Decina
+ * Alex Lancaster
+ * Alexey Fisher
+ * Andoni Morales Alastruey
+ * Anssi Hannula
+ * Benjamin Otte
+ * Brian Cameron
+ * Christian Fredrik Kalager Schaller
+ * Christophe Fergeau
+ * Colin Walters
+ * David Schleef
+ * Edward Hervey
+ * Erich Schubert
+ * Felipe Contreras
+ * Havard Graff
+ * Iago Toral
+ * Idar Tollefsen
+ * James "Doc" Livingston
+ * James Doc Livingston
+ * Jan Schmidt
+ * Jason Kivlighn
+ * Jens Georg
+ * Jonathan Liu
+ * Jonathan Matthew
+ * Josep Torra
+ * Julien Moutte
+ * Kipp Cannon
+ * LoneStar
+ * Luis de Bethencourt
+ * Mark Nauwelaerts
+ * Mart Raudsepp
+ * Mersad Jelacic
+ * Michael Smith
+ * Monty Montgomery
+ * Nicolas Dufresne
+ * Ognyan Tonchev
+ * Olivier Crête
+ * Pascal Buhler
+ * Philip Jägenstedt
+ * Philippe Normand
+ * Piotr Fusik
+ * Raimo Järvi
+ * René Stadler
+ * Reynaldo H. Verdejo Pinochet
+ * Robert Swain
+ * Sebastian Dröge
+ * Sergey Scobich
+ * Sergey Scobich)
+ * Sjoerd Simons
+ * Stefan Kost
+ * Stefan Sauer
+ * Sébastien Moutte
+ * Thiago Santos
+ * Thibault Saunier
+ * Thomas Vander Stichele
* Tim-Philipp Müller
+ * Tommi Myöhänen
+ * Vincent Penquerc'h
+ * Wim Taymans
+ * Youness Alaoui
\ No newline at end of file
-# 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.
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
[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
])
# 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]))])
# 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/../..'.
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,
# 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.
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.
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 -*-
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.
# 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,
[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
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'.
# 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)
# -----------------------
[[_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)])])
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])
# --------------------------
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
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)
# ---------------------------
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,
# 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])
m4_include([common/m4/gst-gettext.m4])
m4_include([common/m4/gst-glib2.m4])
m4_include([common/m4/gst-package-release-datetime.m4])
+m4_include([common/m4/gst-platform.m4])
m4_include([common/m4/gst-plugin-docs.m4])
m4_include([common/m4/gst-plugindir.m4])
m4_include([common/m4/gst-x11.m4])
+++ /dev/null
-#!/bin/sh
-./autogen.sh $@
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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:
# 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/ && \
fun:*alloc
...
fun:g_type_init*
- fun:init_pre
+ fun:init_pre*
}
{
obj:*/sed
}
+{
+ <weird one when re-reading registry>
+ Memcheck:Addr8
+ ...
+ obj:*/sed
+}
+
# GLib 2.23 interface vtable
{
<insert_a_suppression_name_here>
fun:_gst_plugin_loader_client_run
fun:main
}
+
+{
+ <warning with libc 2.13-2 as in Debian/unstable on amd64>
+ Memcheck:Cond
+ fun:*strcasecmp*
+ ...
+ fun:__dcigettext
+}
+
+{
+ <warning with libc 2.13-2 as in Debian/unstable on amd64>
+ Memcheck:Value8
+ fun:*strcasecmp*
+ ...
+ fun:__dcigettext
+}
+
+{
+ <GstSystemClock is a singleton and does not leak>
+ Memcheck:Leak
+ fun:malloc
+ ...
+ fun:gst_poll_new
+ fun:gst_poll_new_timer
+ fun:gst_system_clock_init
+}
+
my $MODULE;
my $OUTPUT_DIR;
my $INSPECT_DIR;
+my $VERBOSE;
my $PRINT_VERSION;
my $PRINT_HELP;
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.
}
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 <<EOF;
+gstdoc-scangobj version 1.5 - introspect gstreamer-plugins
+
+--module=MODULE_NAME Name of the doc module being parsed
+--source=SOURCE_NAME Name of the source module for plugins
+--types=FILE The name of the file to store the types in
+--type-init-func=FUNC The init function to call instead of g_type_init()
+--output-dir=DIRNAME The directory where the results are stored
+--inspect-dir=DIRNAME The directory where the plugin inspect data is stored
+--verbose Print extra output while processing
+--version Print the version of this program
+--help Print this help
+EOF
exit 0;
}
my $old_args_filename = "$OUTPUT_DIR/$MODULE.args";
my $new_args_filename = "$OUTPUT_DIR/$MODULE.args.new";
+my $debug_log="g_message";
+if (!defined($VERBOSE) or $VERBOSE eq "0") {
+ $debug_log="//$debug_log";
+}
+
# write a C program to scan the types
$includes = "";
plugin = (GstPlugin *) (plugins->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;
}
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",
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);
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);
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",
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;
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,
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);
$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"})) {
}
&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);
# 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
$(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
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 \
### 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
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 ; \
rm -rf tmpl/*.sgml ; \
rm -rf $(INSPECT_DIR); \
fi
- rm -rf *.o
+ @rm -rf *.o
MAINTAINERCLEANFILES = $(MAINTAINER_DOC_STAMPS)
$(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; \
scan-build.stamp \
sgml-build.stamp \
html-build.stamp \
- setup.stamp \
sgml.stamp \
html.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 \
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
#### 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
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
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; \
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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:
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])
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 <richard-alsa@tartarus.org>
-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 <richard-alsa@tartarus.org>
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 <gst/gstconfig.h>
+ #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
dnl for the poor souls who for example have glib in /usr/local
AS_SCRUB_INCLUDE(GLIB_CFLAGS)
+
+ AC_SUBST(GLIB_EXTRA_CFLAGS)
])
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")
])
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])
# 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
# 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)
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:
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:
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')
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)
#! /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 <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
+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 <bug-automake@gnu.org>.
EOF
echo "compile $scriptversion"
exit $?
;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
esac
ofile=
cfile=
-eat=
for arg
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)
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
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
#! /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
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
fi
;;
*)
- os=netbsd
+ os=netbsd
;;
esac
# The OS release
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
# 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
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}
# 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 ;;
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 ] || \
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit ;;
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
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 <stdlib.h>
- #include <unistd.h>
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
- 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
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 ;;
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}
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 ;;
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}
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:*:*)
echo crisv32-axis-linux-gnu
exit ;;
frv:Linux:*:*)
- echo frv-unknown-linux-gnu
+ echo frv-unknown-linux-gnu
exit ;;
i*86:Linux:*:*)
LIBC=gnu
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
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 ;;
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.
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:*:*)
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 ;;
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 ;;
/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 \
echo ns32k-sni-sysv
fi
exit ;;
- PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
- # says <Richard.M.Bartel@ccMail.Census.GOV>
- echo i586-unisys-sysv4
- exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
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 ;;
*: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 ;;
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 ;;
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
- "4"
+ "4"
#else
- ""
+ ""
#endif
- ); exit (0);
+ ); exit (0);
#endif
#endif
/* system wide data directory */
#undef GST_DATADIR
+/* Extra platform specific plugin suffix */
+#undef GST_EXTRA_MODULE_SUFFIX
+
/* macro to use to show function name */
#undef GST_FUNCTION
/* Defined if gcov is enabled to force a rebuild due to config.h changing */
#undef GST_GCOV_ENABLED
+/* Defined when registry scanning through fork is unsafe */
+#undef GST_HAVE_UNSAFE_FORK
+
/* plugin install helper script */
#undef GST_INSTALL_PLUGINS_HELPER
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
+/* Define to 1 if you have the <emmintrin.h> header file. */
+#undef HAVE_EMMINTRIN_H
+
/* Define to enable building of experimental plug-ins. */
#undef HAVE_EXPERIMENTAL
/* Use Orc */
#undef HAVE_ORC
+/* Defined if compiling for OSX */
+#undef HAVE_OSX
+
/* Define to enable Pango font rendering (used by pango). */
#undef HAVE_PANGO
/* defined if vorbis_synthesis_restart is present */
#undef HAVE_VORBIS_SYNTHESIS_RESTART
+/* Defined if compiling for Windows */
+#undef HAVE_WIN32
+
/* Define to 1 if you have the <winsock2.h> header file. */
#undef HAVE_WINSOCK2_H
/* Define to enable X libraries and plugins (used by ximagesink). */
#undef HAVE_X
+/* Define to 1 if you have the <xmmintrin.h> header file. */
+#undef HAVE_XMMINTRIN_H
+
/* Define to enable X Shared Memory extension. */
#undef HAVE_XSHM
/* Define to enable X11 XVideo extensions (used by xvimagesink). */
#undef HAVE_XVIDEO
+/* Define to enable zlib support for ID3 parsing in libgsttag. */
+#undef HAVE_ZLIB
+
/* the host CPU */
#undef HOST_CPU
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
+
+/* We need at least WinXP SP2 for __stat64 */
+#undef __MSVCRT_VERSION__
#! /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
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
# 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
os=
basic_machine=$1
;;
- -bluegene*)
- os=-cnk
+ -bluegene*)
+ os=-cnk
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
os=-chorusos
basic_machine=$1
;;
- -chorusrdb)
- os=-chorusrdb
+ -chorusrdb)
+ os=-chorusrdb
basic_machine=$1
- ;;
+ ;;
-hiux*)
os=-hiuxwe2
;;
| 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 \
| 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
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.
| 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-* \
| 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-*)
basic_machine=a29k-amd
os=-udi
;;
- abacus)
+ abacus)
basic_machine=abacus-unknown
;;
adobe68k)
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
;;
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16)
+ cr16 | cr16-*)
basic_machine=cr16-unknown
os=-elf
;;
basic_machine=ns32k-utek
os=-sysv
;;
- microblaze)
+ microblaze)
basic_machine=microblaze-xilinx
;;
mingw32)
np1)
basic_machine=np1-gould
;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
;;
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
basic_machine=i860-stratus
os=-sysv4
;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
sun2)
basic_machine=m68000-sun
;;
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
;;
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
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|'`
| -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* \
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
-dicos*)
os=-dicos
;;
- -nacl*)
- ;;
+ -nacl*)
+ ;;
-none)
;;
*)
# system, and we'll never get to this point.
case $basic_machine in
- score-*)
+ score-*)
os=-elf
;;
- spu-*)
+ spu-*)
os=-elf
;;
*-acorn)
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-*)
m68*-cisco)
os=-aout
;;
- mep-*)
+ mep-*)
os=-elf
;;
mips*-cisco)
*-ibm)
os=-aix
;;
- *-knuth)
+ *-knuth)
os=-mmixware
;;
*-wec)
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for GStreamer Base Plug-ins 0.10.34.
+# Generated by GNU Autoconf 2.68 for GStreamer Base Plug-ins 0.10.36.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
#
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
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
# 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 :
# 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 </dev/null
exec 6>&1
# Identity of this package.
PACKAGE_NAME='GStreamer Base Plug-ins'
PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='0.10.34'
-PACKAGE_STRING='GStreamer Base Plug-ins 0.10.34'
+PACKAGE_VERSION='0.10.36'
+PACKAGE_STRING='GStreamer Base Plug-ins 0.10.36'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
PACKAGE_URL=''
X_PRE_LIBS
X_CFLAGS
XMKMF
+USE_ZLIB_FALSE
+USE_ZLIB_TRUE
+HAVE_ZLIB
+ZLIB_LIBS
+ZLIB_CFLAGS
USE_ISO_CODES_FALSE
USE_ISO_CODES_TRUE
USE_XML_FALSE
ORCC
ORC_LIBS
ORC_CFLAGS
+GLIB_EXTRA_CFLAGS
GLIB_LIBS
GLIB_CFLAGS
GLIB_REQ
HTML_DIR
HAVE_INTROSPECTION_FALSE
HAVE_INTROSPECTION_TRUE
+INTROSPECTION_MAKEFILE
+INTROSPECTION_LIBS
+INTROSPECTION_CFLAGS
INTROSPECTION_TYPELIBDIR
INTROSPECTION_GIRDIR
INTROSPECTION_GENERATE
LIPO
NMEDIT
DSYMUTIL
-lt_ECHO
+MANIFEST_TOOL
RANLIB
+ac_ct_AR
AR
LN_S
NM
am__fastdepCC_FALSE
am__fastdepCC_TRUE
CCDEPMODE
+am__nodep
AMDEPBACKSLASH
AMDEP_FALSE
AMDEP_TRUE
GST_MAJORMINOR
AM_BACKSLASH
AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
host_os
host_vendor
host_cpu
enable_fast_install
enable_dependency_tracking
with_gnu_ld
+with_sysroot
enable_libtool_lock
with_autoconf
with_autoheader
enable_gobject_cast_checks
enable_glib_asserts
enable_orc
-with_gtk
enable_Bsymbolic
with_default_audiosink
with_default_audiosrc
enable_videoscale
enable_volume
enable_iso_codes
+enable_zlib
enable_x
with_x
enable_xvideo
GTK_X11_LIBS
QT_CFLAGS
QT_LIBS
+ZLIB_CFLAGS
+ZLIB_LIBS
XMKMF
GUDEV_CFLAGS
GUDEV_LIBS
$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
# 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 Base Plug-ins 0.10.34 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 0.10.36 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GStreamer Base Plug-ins 0.10.34:";;
+ short | recursive ) echo "Configuration of GStreamer Base Plug-ins 0.10.36:";;
esac
cat <<\_ACEOF
--disable-videoscale disable dependency-less videoscale plugin
--disable-volume disable dependency-less volume plugin
--enable-iso-codes use iso-codes if installed
+ --disable-zlib disable zlib support for ID3 parsing in libgsttag
--disable-x disable X libraries and plugins: ximagesink
--disable-xvideo disable X11 XVideo extensions: xvimagesink
--disable-xshm disable X Shared Memory extension
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
--with-plugins comma-separated list of dependencyless plug-ins to
compile
--with-html-dir=PATH path to installed docs
- --with-gtk=3.0|2.0 which gtk+ version to compile against (default: 2.0)
--with-default-audiosink
specify default audio sink
--with-default-audiosrc specify default audio source
linker flags for GTK_X11, overriding pkg-config
QT_CFLAGS C compiler flags for QT, overriding pkg-config
QT_LIBS linker flags for QT, overriding pkg-config
+ ZLIB_CFLAGS C compiler flags for ZLIB, overriding pkg-config
+ ZLIB_LIBS linker flags for ZLIB, overriding pkg-config
XMKMF Path to xmkmf, Makefile generator for X Window System
GUDEV_CFLAGS
C compiler flags for GUDEV, overriding pkg-config
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GStreamer Base Plug-ins configure 0.10.34
-generated by GNU Autoconf 2.67
+GStreamer Base Plug-ins configure 0.10.36
+generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
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
# 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
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
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
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
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
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
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
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
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
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
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
# 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
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
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"
{ $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
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"
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
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
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GStreamer Base Plug-ins $as_me 0.10.34, which was
-generated by GNU Autoconf 2.67. Invocation command line was
+It was created by GStreamer Base Plug-ins $as_me 0.10.36, which was
+generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
|| { { $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
{ $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
'
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
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
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
{ $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
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
$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
# Define the identity of the package.
PACKAGE='gst-plugins-base'
- VERSION='0.10.34'
+ VERSION='0.10.36'
cat >>confdefs.h <<_ACEOF
# 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.34 | cut -d'.' -f1)
- PACKAGE_VERSION_MINOR=$(echo 0.10.34 | cut -d'.' -f2)
- PACKAGE_VERSION_MICRO=$(echo 0.10.34 | cut -d'.' -f3)
+ PACKAGE_VERSION_MAJOR=$(echo 0.10.36 | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo 0.10.36 | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo 0.10.36 | cut -d'.' -f3)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
$as_echo_n "checking nano version... " >&6; }
- NANO=$(echo 0.10.34 | cut -d'.' -f4)
+ NANO=$(echo 0.10.36 | cut -d'.' -f4)
if test x"$NANO" = x || test "x$NANO" = "x0" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
{ $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
$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='-'
{ $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
$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='-'
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='\'
- GST_CURRENT=24
+ GST_CURRENT=25
GST_REVISION=0
- GST_AGE=24
- GST_LIBVERSION=24:0:24
+ GST_AGE=25
+ GST_LIBVERSION=25:0:25
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
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
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
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
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
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
-macro_version='2.2.6b'
-macro_revision='1.3017'
+macro_version='2.4.2'
+macro_revision='1.3337'
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"
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=
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
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
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
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
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
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
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
{ { $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; }
{ { $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
$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
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
{ { $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
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
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
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
{ $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
# 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.
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.
{ $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/
{ $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
{ $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
{ $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
{ $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
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.
{ $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
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
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
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"
{ $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:5932: $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:5935: $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:5938: 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"
# 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
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.
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
# 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`
# 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
+{ $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'
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'
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
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
{ $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'
# 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'
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
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
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
;;
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
+
+
+
+
+
+
+
+
+
+
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 test "${ac_cv_prog_AR+set}" = set; then :
+if ${ac_cv_prog_DLLTOOL+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
+ 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
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_DLLTOOL="${ac_tool_prefix}dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
fi
fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+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
-if test -z "$ac_cv_prog_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
+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 test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ 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
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_DLLTOOL="dlltool"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
fi
fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+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_AR" = x; then
- AR="false"
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- AR=$ac_ct_AR
+ DLLTOOL=$ac_ct_DLLTOOL
fi
else
- AR="$ac_cv_prog_AR"
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
fi
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
+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
- # 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
+ 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_STRIP+set}" = set; then :
+if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
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_STRIP="${ac_tool_prefix}strip"
+ 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
fi
fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ 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 ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="$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_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="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
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+: ${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 ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # 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_STRIP="${ac_tool_prefix}strip"
+ $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
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
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
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
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
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
+
+
+
+
+
+
# 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
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=
# 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};"\
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
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
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
cat <<_LT_EOF >> conftest.$ac_ext
/* The mapping between symbol names and symbols. */
-const struct {
+LT_DLSYM_CONST struct {
const char *name;
void *address;
}
_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
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
$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
+
+
+
+
+
+{ $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;
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 7141 "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=$?
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
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
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"
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*)
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
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
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
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
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
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
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
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
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
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
{ $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
$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
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
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' ;;
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=
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
{ { $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
{ $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
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
+
+
# Set options
# 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
+
+
+
+
+
test -z "$LN_S" && LN_S="ln -s"
{ $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
-
-
-
-
-
-
-
-
-
-
-
-
-
case $host_os in
aix3*)
# AIX sometimes has problems with the GCC collect2 program. For some
;;
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
*) 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
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
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
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
-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:8666: $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:8670: \$? = $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
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,'
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
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
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,'
# 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
;;
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,';;
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.
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
-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:9005: $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:9009: \$? = $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
+
+
+
+
+
#
# 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
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
{ $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
-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:9110: $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:9114: \$? = $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
{ $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
-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:9165: $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:9169: \$? = $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
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
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}'
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
# _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'
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
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' ;;
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
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
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
;;
_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
*)
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
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
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
_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'
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
_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'
# 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*)
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
*) _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}"
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
;;
# 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
# 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
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
;;
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
;;
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
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
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'
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'
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'
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"*)
# 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
-
-
-
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
$as_echo_n "checking dynamic linker characteristics... " >&6; }
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=
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;
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
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
;;
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
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
;;
;;
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'
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}`~
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
;;
;;
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'
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.
objformat=`/usr/bin/objformat`
else
case $host_os in
- freebsd[123]*) objformat=aout ;;
+ freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
- freebsd2*)
+ freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
;;
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
;;
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}'
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 ;;
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}'
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
_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
# 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
;;
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
;;
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}'
;;
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
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
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}'
;;
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
+
+
+
+
+
{ $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=
# 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
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
*)
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
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
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
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
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
{ $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 :
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11549 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
# 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);
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
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 :
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11645 "configure"
+#line $LINENO "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
# 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);
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
+
+
ac_config_commands="$ac_config_commands libtool"
-GST_REQ=0.10.34
+GST_REQ=0.10.36
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
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
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
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
{ $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
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.
{ $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
{ $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"
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"
{ $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
{ $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
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
{ $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"
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
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
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
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
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
{ $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
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
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
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
if test "${with_install_plugins_helper+set}" = set; then :
withval=$with_install_plugins_helper;
case "${withval}" in
- yes) as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5 ;;
- no) as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5 ;;
+ yes) as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5 ;;
+ no) as_fn_error $? "bad value ${withval} for --with-install-plugins-helper" "$LINENO" 5 ;;
*) GST_INSTALL_PLUGINS_HELPER="${withval}" ;;
esac
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
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
+ case $host_os in
+ rhapsody*)
+
+cat >>confdefs.h <<_ACEOF
+#define GST_EXTRA_MODULE_SUFFIX ".dylib"
+_ACEOF
+
+ ;;
+ darwin*)
+
+cat >>confdefs.h <<_ACEOF
+#define GST_EXTRA_MODULE_SUFFIX ".dylib"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_OSX 1
+_ACEOF
+
+ ;;
+ cygwin*)
+
+cat >>confdefs.h <<_ACEOF
+#define GST_HAVE_UNSAFE_FORK 1
+_ACEOF
+
+ ;;
+ mingw* | msvc* | mks*)
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_WIN32 1
+_ACEOF
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+ return __MSVCRT_VERSION__;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ #if __MSVCRT_VERSION__ < 0x0601
+ #error "MSVCRT too old"
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: MSVCRT version looks ok" >&5
+$as_echo "$as_me: MSVCRT version looks ok" >&6;}
+
+else
+
+ as_fn_error $? "MSVCRT version too old, need at least WinXP SP2" "$LINENO" 5
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Setting MSVCRT version to 0x0601" >&5
+$as_echo "$as_me: Setting MSVCRT version to 0x0601" >&6;}
+
+cat >>confdefs.h <<_ACEOF
+#define __MSVCRT_VERSION__ 0x0601
+_ACEOF
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ;;
+ *)
+ ;;
+ esac
+
+
+
+
case "x${host_cpu}" in
xi?86 | xk? | xi?86_64)
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"
{ $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
;; #(
*)
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
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+if ${ac_cv_sys_largefile_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_cv_sys_largefile_CC=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+if ${ac_cv_sys_file_offset_bits+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
if test $ac_cv_sys_file_offset_bits = unknown; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then :
+if ${ac_cv_sys_large_files+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
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
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
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
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
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
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
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
{ $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
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
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
{ $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
# 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.
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.
*) :
{ $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
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
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
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
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
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
{ $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
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
{ $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
# 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.
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.
-ac_ext=cpp
+
+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
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 :
+{ $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 ${ac_cv_prog_CXXCPP+:} false; 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
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
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
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
-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; }
+ # Broken: fails on valid input.
+continue
fi
+rm -f conftest.err conftest.i conftest.$ac_ext
-
- 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.
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
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
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
done
- done
-IFS=$as_save_IFS
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
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
-
-
-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
-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
-{ $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 :
- $as_echo_n "(cached) " >&6
-else
- # Double quotes because CXXCPP needs to be expanded
- for CXXCPP in "$CXX -E" "/lib/cpp"
- do
- ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
- # Use a header file that comes with gcc, so configuring glibc
- # with a fresh cross-compiler works.
- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
- # not just through cpp. "Syntax error" is here to catch this case.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
- Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
- # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
- # OK, works on sane cases. Now check whether nonexistent headers
- # can be detected and how.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
- # Broken: success on invalid input.
-continue
-else
- # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
- break
-fi
-
- done
- ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
- CXXCPP=$ac_cv_prog_CXXCPP
-else
- ac_cv_prog_CXXCPP=$CXXCPP
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
$as_echo "$CXXCPP" >&6; }
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
_lt_caught_CXX_error=yes
fi
-
-
-
ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
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
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
# 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
fi
test -z "${LDCXX+set}" || LD=$LDCXX
CC=${CXX-"c++"}
+ CFLAGS=$CXXFLAGS
compiler=$CC
compiler_CXX=$CC
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-%%"`
if test -n "$compiler"; then
{ $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
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.
# 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'
# 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
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
_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'
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
_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.
;;
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*)
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
*) _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}"
esac
;;
- freebsd[12]*)
+ freebsd2.*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
ld_shlibs_CXX=no
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=:
# 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
# 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
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
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
*)
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
# 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'
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'
;;
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++
# 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'
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
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
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'
;;
# 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
# 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
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'
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
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.
# 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'
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'
};
_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=$?
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.
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.
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.
fi
$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
# PORTME: override above test on systems where it is broken
case $host_os in
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
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
# 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.
;;
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++*)
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'
;;
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'
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.
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
-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:19050: $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:19054: \$? = $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
+
+
#
# 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
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
{ $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
-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:19149: $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:19153: \$? = $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
{ $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
-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:19201: $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:19205: \$? = $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
$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; }
# 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
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
$as_echo_n "checking dynamic linker characteristics... " >&6; }
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
;;
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
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
;;
;;
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'
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}`~
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
;;
;;
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'
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.
objformat=`/usr/bin/objformat`
else
case $host_os in
- freebsd[123]*) objformat=aout ;;
+ freebsd[23].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
- freebsd2*)
+ freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
;;
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
;;
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}'
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 ;;
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}'
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
_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
# 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
;;
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
;;
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}'
;;
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
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
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}'
;;
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
+
+
{ $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=
fi # test -n "$compiler"
CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
LDCXX=$LD
LD=$lt_save_LD
GCC=$lt_save_GCC
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
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
+
+
+
if test "x$found_introspection" = "xyes"; then
HAVE_INTROSPECTION_TRUE=
HAVE_INTROSPECTION_FALSE='#'
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/
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
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
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
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
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
*)
{ $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
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
{ $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
for ac_header in malloc.h
do :
ac_fn_c_check_header_mongrel "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default"
-if test "x$ac_cv_header_malloc_h" = x""yes; then :
+if test "x$ac_cv_header_malloc_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_MALLOC_H 1
_ACEOF
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
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
save_libs="$LIBS"
ac_fn_c_check_func "$LINENO" "hstrerror" "ac_cv_func_hstrerror"
-if test "x$ac_cv_func_hstrerror" = x""yes; then :
+if test "x$ac_cv_func_hstrerror" = xyes; then :
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for hstrerror in -lresolv" >&5
$as_echo_n "checking for hstrerror in -lresolv... " >&6; }
-if test "${ac_cv_lib_resolv_hstrerror+set}" = set; then :
+if ${ac_cv_lib_resolv_hstrerror+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_hstrerror" >&5
$as_echo "$ac_cv_lib_resolv_hstrerror" >&6; }
-if test "x$ac_cv_lib_resolv_hstrerror" = x""yes; then :
+if test "x$ac_cv_lib_resolv_hstrerror" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBRESOLV 1
_ACEOF
done
+for ac_header in xmmintrin.h emmintrin.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
# ------ AX CREATE STDINT H -------------------------------------
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint types" >&5
$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
{ $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
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
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=""
{ $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
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
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=""
{ $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
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
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=""
# 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 :
{ { $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
# 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 :
{ { $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
# 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 :
{ { $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
# 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 :
{ { $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
# 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 :
{ { $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
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
for ac_func in log2
do :
ac_fn_c_check_func "$LINENO" "log2" "ac_cv_func_log2"
-if test "x$ac_cv_func_log2" = x""yes; then :
+if test "x$ac_cv_func_log2" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LOG2 1
_ACEOF
{ $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
{ $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
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_source+set}" = set; then :
+if ${ac_cv_sys_largefile_source+:} false; then :
$as_echo_n "(cached) " >&6
else
while :; do
LIBS="$LIBS $LIBM"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lrint" >&5
$as_echo_n "checking for lrint... " >&6; }
-if test "${ac_cv_c99_lrint+set}" = set; then :
+if ${ac_cv_c99_lrint+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for lrintf" >&5
$as_echo_n "checking for lrintf... " >&6; }
-if test "${ac_cv_c99_lrintf+set}" = set; then :
+if ${ac_cv_c99_lrintf+:} false; then :
$as_echo_n "(cached) " >&6
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __PRETTY_FUNCTION__" >&5
$as_echo_n "checking whether $CC implements __PRETTY_FUNCTION__... " >&6; }
- if test "${gst_cv_have_pretty_function+set}" = set; then :
+ if ${gst_cv_have_pretty_function+:} false; then :
$as_echo_n "(cached) " >&6
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __FUNCTION__" >&5
$as_echo_n "checking whether $CC implements __FUNCTION__... " >&6; }
- if test "${gst_cv_have_function+set}" = set; then :
+ if ${gst_cv_have_function+:} false; then :
$as_echo_n "(cached) " >&6
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC implements __func__" >&5
$as_echo_n "checking whether $CC implements __func__... " >&6; }
- if test "${gst_cv_have_func+set}" = set; then :
+ if ${gst_cv_have_func+:} false; then :
$as_echo_n "(cached) " >&6
else
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
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
fi
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 :
else
{ $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
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 :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBNSL 1
_ACEOF
- GLIB_REQ=2.22
+ 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
+
+
ORC_REQ=0.4.11
# Check whether --enable-orc was given.
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
$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
HAVE_GTK=no
HAVE_GTK_X11=no
-GTK2_REQ=2.14.0
-GTK3_REQ=2.91.3
+GTK_REQ=3.0.0
if test "x$BUILD_EXAMPLES" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking which gtk+ version to compile examples against (optional)" >&5
-$as_echo_n "checking which gtk+ version to compile examples against (optional)... " >&6; }
-
-# Check whether --with-gtk was given.
-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 ;;
- esac
-else
- with_gtk=2.0
- GTK_REQ=$GTK2_REQ
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_gtk (>= $GTK_REQ)" >&5
-$as_echo "$with_gtk (>= $GTK_REQ)" >&6; }
pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk >= \$GTK_REQ\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk >= $GTK_REQ") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= \$GTK_REQ\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= $GTK_REQ") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-$with_gtk >= $GTK_REQ" 2>/dev/null`
+ pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= $GTK_REQ" 2>/dev/null`
else
pkg_failed=yes
fi
pkg_cv_GTK_LIBS="$GTK_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-\$with_gtk >= \$GTK_REQ\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-$with_gtk >= $GTK_REQ") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= \$GTK_REQ\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= $GTK_REQ") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-$with_gtk >= $GTK_REQ" 2>/dev/null`
+ pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= $GTK_REQ" 2>/dev/null`
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-$with_gtk >= $GTK_REQ"`
+ GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-3.0 >= $GTK_REQ"`
else
- GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-$with_gtk >= $GTK_REQ"`
+ GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-3.0 >= $GTK_REQ"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GTK_PKG_ERRORS" >&5
pkg_cv_GTK_X11_CFLAGS="$GTK_X11_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-\$with_gtk >= \$GTK_REQ\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-3.0 >= \$GTK_REQ\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-x11-3.0 >= $GTK_REQ") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GTK_X11_CFLAGS=`$PKG_CONFIG --cflags "gtk+-x11-$with_gtk >= $GTK_REQ" 2>/dev/null`
+ pkg_cv_GTK_X11_CFLAGS=`$PKG_CONFIG --cflags "gtk+-x11-3.0 >= $GTK_REQ" 2>/dev/null`
else
pkg_failed=yes
fi
pkg_cv_GTK_X11_LIBS="$GTK_X11_LIBS"
else
if test -n "$PKG_CONFIG" && \
- { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-\$with_gtk >= \$GTK_REQ\""; } >&5
- ($PKG_CONFIG --exists --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ") 2>&5
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-3.0 >= \$GTK_REQ\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "gtk+-x11-3.0 >= $GTK_REQ") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
- pkg_cv_GTK_X11_LIBS=`$PKG_CONFIG --libs "gtk+-x11-$with_gtk >= $GTK_REQ" 2>/dev/null`
+ pkg_cv_GTK_X11_LIBS=`$PKG_CONFIG --libs "gtk+-x11-3.0 >= $GTK_REQ" 2>/dev/null`
else
pkg_failed=yes
fi
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
- GTK_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ"`
+ GTK_X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-x11-3.0 >= $GTK_REQ"`
else
- GTK_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ"`
+ GTK_X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-x11-3.0 >= $GTK_REQ"`
fi
# Put the nasty error message in config.log where it belongs
echo "$GTK_X11_PKG_ERRORS" >&5
fi
+# set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
+NO_WARNINGS=""
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the GStreamer debugging system is enabled" >&5
+$as_echo_n "checking whether the GStreamer debugging system is enabled... " >&6; }
+ 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
+
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$GST_CFLAGS $CFLAGS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <gst/gstconfig.h>
+ #ifdef GST_DISABLE_GST_DEBUG
+ #error "debugging disabled, make compiler fail"
+ #endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ debug_system_enabled=yes
+else
+ debug_system_enabled=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$save_CFLAGS"
+ 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
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $debug_system_enabled" >&5
+$as_echo "$debug_system_enabled" >&6; }
+
+ if test "x$debug_system_enabled" = "xyes" ; then
+ NO_WARNINGS=""
+ true
+ else
+ NO_WARNINGS="-Wno-unused"
+ true
+ fi
+
+
-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef
-Wwrite-strings -Wformat-nonliteral -Wformat-security
-Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
- -Wno-multichar -Wnested-externs " != "x"
+ -Wno-multichar -Wnested-externs $NO_WARNINGS" != "x"
then
UNSUPPORTED=""
list="
-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef
-Wwrite-strings -Wformat-nonliteral -Wformat-security
-Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
- -Wno-multichar -Wnested-externs "
+ -Wno-multichar -Wnested-externs $NO_WARNINGS"
for each in $list
do
-Wmissing-declarations -Wredundant-decls -Wundef
-Wwrite-strings -Wformat-nonliteral -Wformat-security
-Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
- -Wno-multichar" != "x"
+ -Wno-multichar $NO_WARNINGS" != "x"
then
UNSUPPORTED=""
list="
-Wmissing-declarations -Wredundant-decls -Wundef
-Wwrite-strings -Wformat-nonliteral -Wformat-security
-Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
- -Wno-multichar"
+ -Wno-multichar $NO_WARNINGS"
for each in $list
do
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
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
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
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
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
case "${enableval}" in
yes) gst_use_adder=yes ;;
no) gst_use_adder=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-adder" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-adder" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_app=yes ;;
no) gst_use_app=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-app" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-app" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_audioconvert=yes ;;
no) gst_use_audioconvert=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-audioconvert" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-audioconvert" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_audiorate=yes ;;
no) gst_use_audiorate=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-audiorate" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-audiorate" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_audiotestsrc=yes ;;
no) gst_use_audiotestsrc=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-audiotestsrc" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-audiotestsrc" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_encoding=yes ;;
no) gst_use_encoding=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-encoding" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-encoding" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_ffmpegcolorspace=yes ;;
no) gst_use_ffmpegcolorspace=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-ffmpegcolorspace" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-ffmpegcolorspace" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_gdp=yes ;;
no) gst_use_gdp=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-gdp" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-gdp" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_playback=yes ;;
no) gst_use_playback=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-playback" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-playback" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_audioresample=yes ;;
no) gst_use_audioresample=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-audioresample" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-audioresample" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_subparse=yes ;;
no) gst_use_subparse=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-subparse" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-subparse" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_tcp=yes ;;
no) gst_use_tcp=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-tcp" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-tcp" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_typefind=yes ;;
no) gst_use_typefind=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-typefind" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-typefind" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_videotestsrc=yes ;;
no) gst_use_videotestsrc=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-videotestsrc" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-videotestsrc" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_videorate=yes ;;
no) gst_use_videorate=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-videorate" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-videorate" "$LINENO" 5 ;;
esac
else
case "${enableval}" in
yes) gst_use_videoscale=yes ;;
no) gst_use_videoscale=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-videoscale" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-videoscale" "$LINENO" 5 ;;
esac
else
- GST_PLUGINS_ALL="$GST_PLUGINS_ALL volume"
+ GST_PLUGINS_ALL="$GST_PLUGINS_ALL volume"
+
+
+
+ # Check whether --enable-volume was given.
+if test "${enable_volume+set}" = set; then :
+ enableval=$enable_volume;
+ case "${enableval}" in
+ yes) gst_use_volume=yes ;;
+ no) gst_use_volume=no ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-volume" "$LINENO" 5 ;;
+ esac
+
+else
+ gst_use_volume=yes
+fi
+
+ if test x$gst_use_volume = xno; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin volume" >&5
+$as_echo "$as_me: disabling dependency-less plugin volume" >&6;}
+ WITHOUT_PLUGINS="$WITHOUT_PLUGINS volume"
+ fi
+
+
+ if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
+ GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED volume"
+ fi
+ if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
+ GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ volume / /'`
+ fi
+ if echo " $GST_PLUGINS_SELECTED " | grep -i " volume " > /dev/null; then
+ USE_PLUGIN_VOLUME_TRUE=
+ USE_PLUGIN_VOLUME_FALSE='#'
+else
+ USE_PLUGIN_VOLUME_TRUE='#'
+ USE_PLUGIN_VOLUME_FALSE=
+fi
+
+
+
+GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
+
+
+ grep >/dev/null "#undef GST_DISABLE_GST_DEBUG" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_GST_DEBUG=0
+ else
+ GST_DISABLE_GST_DEBUG=1
+ fi
+
+
+
+ grep >/dev/null "#undef GST_DISABLE_LOADSAVE" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_LOADSAVE=0
+ else
+ GST_DISABLE_LOADSAVE=1
+ fi
+
+
+
+ grep >/dev/null "#undef GST_DISABLE_PARSE" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_PARSE=0
+ else
+ GST_DISABLE_PARSE=1
+ fi
+
+
+
+ grep >/dev/null "#undef GST_DISABLE_TRACE" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_TRACE=0
+ else
+ GST_DISABLE_TRACE=1
+ fi
+
+
+
+ grep >/dev/null "#undef GST_DISABLE_ALLOC_TRACE" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_ALLOC_TRACE=0
+ else
+ GST_DISABLE_ALLOC_TRACE=1
+ fi
+
+
+
+ grep >/dev/null "#undef GST_DISABLE_REGISTRY" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_REGISTRY=0
+ else
+ GST_DISABLE_REGISTRY=1
+ fi
+
+
+
+ grep >/dev/null "#undef GST_DISABLE_PLUGIN" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_PLUGIN=0
+ else
+ GST_DISABLE_PLUGIN=1
+ fi
+
+
+
+ grep >/dev/null "#undef GST_DISABLE_XML" $GST_CONFIGPATH
+ if test $? = 0; then
+ GST_DISABLE_XML=0
+ else
+ GST_DISABLE_XML=1
+ fi
+
+
+
+ if test $GST_DISABLE_XML != "1"; then
+ USE_XML_TRUE=
+ USE_XML_FALSE='#'
+else
+ USE_XML_TRUE='#'
+ USE_XML_FALSE=
+fi
+
+
+if test "x$HAVE_LIBXML_HTML" != "xyes"; then
+
+ GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ subparse / /'`
+ if false; then
+ USE_PLUGIN_SUBPARSE_TRUE=
+ USE_PLUGIN_SUBPARSE_FALSE='#'
+else
+ USE_PLUGIN_SUBPARSE_TRUE='#'
+ USE_PLUGIN_SUBPARSE_FALSE=
+fi
+
+
+fi
+
+if test "x$HAVE_SYS_SOCKET_H" != "xyes"; then
+
+ GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ tcp / /'`
+ if false; then
+ USE_PLUGIN_TCP_TRUE=
+ USE_PLUGIN_TCP_FALSE='#'
+else
+ USE_PLUGIN_TCP_TRUE='#'
+ USE_PLUGIN_TCP_FALSE=
+fi
+
+
+fi
+
+# Check whether --enable-iso-codes was given.
+if test "${enable_iso_codes+set}" = set; then :
+ enableval=$enable_iso_codes; case "${enableval}" in
+ yes) enable_iso_codes=yes ;;
+ no) enable_iso_codes=no ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-iso-codes" "$LINENO" 5 ;;
+esac
+
+else
+ enable_iso_codes=yes
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use iso-codes if they are available" >&5
+$as_echo_n "checking whether to use iso-codes if they are available... " >&6; }
+if test "x$enable_iso_codes" = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ have_iso_codes=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes are available on this system" >&5
+$as_echo_n "checking whether iso-codes are available on this system... " >&6; }
+ if $PKG_CONFIG iso-codes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes has iso-639 domain" >&5
+$as_echo_n "checking whether iso-codes has iso-639 domain... " >&6; }
+ if $PKG_CONFIG --variable=domains iso-codes | $GREP -q 639 ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iso-codes prefix" >&5
+$as_echo_n "checking for iso-codes prefix... " >&6; }
+ ISO_CODES_PREFIX=`$PKG_CONFIG --variable=prefix iso-codes`
+ if test -d "$ISO_CODES_PREFIX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_CODES_PREFIX" >&5
+$as_echo_n "checking ISO_CODES_PREFIX... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_CODES_PREFIX" >&5
+$as_echo "$ISO_CODES_PREFIX" >&6; }
+ ISO_639_DOMAIN="iso_639"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_639_DOMAIN" >&5
+$as_echo_n "checking ISO_639_DOMAIN... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_639_DOMAIN" >&5
+$as_echo "$ISO_639_DOMAIN" >&6; }
+ have_iso_codes=yes
+
+$as_echo "#define HAVE_ISO_CODES 1" >>confdefs.h
+
+cat >>confdefs.h <<_ACEOF
+#define ISO_CODES_PREFIX "$ISO_CODES_PREFIX"
+_ACEOF
+ ISO_CODES_VERSION=`$PKG_CONFIG --modversion iso-codes`
- # Check whether --enable-volume was given.
-if test "${enable_volume+set}" = set; then :
- enableval=$enable_volume;
- case "${enableval}" in
- yes) gst_use_volume=yes ;;
- no) gst_use_volume=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-volume" "$LINENO" 5 ;;
- esac
+cat >>confdefs.h <<_ACEOF
+#define ISO_CODES_VERSION "$ISO_CODES_VERSION"
+_ACEOF
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ if test "x$have_iso_codes" = "xyes"; then
+ USE_ISO_CODES_TRUE=
+ USE_ISO_CODES_FALSE='#'
else
- gst_use_volume=yes
+ USE_ISO_CODES_TRUE='#'
+ USE_ISO_CODES_FALSE=
fi
- if test x$gst_use_volume = xno; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin volume" >&5
-$as_echo "$as_me: disabling dependency-less plugin volume" >&6;}
- WITHOUT_PLUGINS="$WITHOUT_PLUGINS volume"
- fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled via --disable-iso-codes)" >&5
+$as_echo "no (disabled via --disable-iso-codes)" >&6; }
+ if false; then
+ USE_ISO_CODES_TRUE=
+ USE_ISO_CODES_FALSE='#'
+else
+ USE_ISO_CODES_TRUE='#'
+ USE_ISO_CODES_FALSE=
+fi
+fi
- if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
- GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED volume"
- fi
- if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " volume " > /dev/null; then
- GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ volume / /'`
- fi
- if echo " $GST_PLUGINS_SELECTED " | grep -i " volume " > /dev/null; then
- USE_PLUGIN_VOLUME_TRUE=
- USE_PLUGIN_VOLUME_FALSE='#'
+echo
+{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: zlib support for ID3 parsing in libgsttag ***" >&5
+$as_echo "$as_me: *** checking feature: zlib support for ID3 parsing in libgsttag ***" >&6;}
+if test "x" != "x"
+then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: ***" >&5
+$as_echo "$as_me: *** for plug-ins: ***" >&6;}
+fi
+NOUSE=
+if test "x$USE_ZLIB" = "xno"; then
+ NOUSE="yes"
+fi
+# Check whether --enable-zlib was given.
+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 ;;
+ esac
else
- USE_PLUGIN_VOLUME_TRUE='#'
- USE_PLUGIN_VOLUME_FALSE=
+ USE_ZLIB=yes
fi
+if test "x$NOUSE" = "xyes"; then
+ USE_ZLIB="no"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** pre-configured not to be built" >&5
+$as_echo "$as_me: WARNING: *** pre-configured not to be built" >&2;}
+fi
+NOUSE=
-GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
-
+if test x$USE_ZLIB = xyes; then
- grep >/dev/null "#undef GST_DISABLE_GST_DEBUG" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_GST_DEBUG=0
- else
- GST_DISABLE_GST_DEBUG=1
- fi
+ gst_check_save_LIBS=$LIBS
+ gst_check_save_LDFLAGS=$LDFLAGS
+ gst_check_save_CFLAGS=$CFLAGS
+ gst_check_save_CPPFLAGS=$CPPFLAGS
+ gst_check_save_CXXFLAGS=$CXXFLAGS
+ HAVE_ZLIB=no
- grep >/dev/null "#undef GST_DISABLE_LOADSAVE" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_LOADSAVE=0
- else
- GST_DISABLE_LOADSAVE=1
- fi
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZLIB" >&5
+$as_echo_n "checking for ZLIB... " >&6; }
+if test -n "$PKG_CONFIG"; then
+ if test -n "$ZLIB_CFLAGS"; then
+ pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" zlib \""; } >&5
+ ($PKG_CONFIG --exists --print-errors " zlib ") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags " zlib " 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$ZLIB_LIBS"; then
+ pkg_cv_ZLIB_LIBS="$ZLIB_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" zlib \""; } >&5
+ ($PKG_CONFIG --exists --print-errors " zlib ") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs " zlib " 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
- grep >/dev/null "#undef GST_DISABLE_PARSE" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_PARSE=0
- else
- GST_DISABLE_PARSE=1
- 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
+ ZLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " zlib "`
+ else
+ ZLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " zlib "`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$ZLIB_PKG_ERRORS" >&5
- grep >/dev/null "#undef GST_DISABLE_TRACE" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_TRACE=0
- else
- GST_DISABLE_TRACE=1
- fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uncompress in -lz" >&5
+$as_echo_n "checking for uncompress in -lz... " >&6; }
+if ${ac_cv_lib_z_uncompress+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- grep >/dev/null "#undef GST_DISABLE_ALLOC_TRACE" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_ALLOC_TRACE=0
- else
- GST_DISABLE_ALLOC_TRACE=1
- fi
+/* 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 uncompress ();
+int
+main ()
+{
+return uncompress ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_z_uncompress=yes
+else
+ ac_cv_lib_z_uncompress=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_z_uncompress" >&5
+$as_echo "$ac_cv_lib_z_uncompress" >&6; }
+if test "x$ac_cv_lib_z_uncompress" = xyes; then :
+ HAVE_ZLIB=yes
+else
+ HAVE_ZLIB=no
+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" = xyes; then :
+ :
+else
+ HAVE_ZLIB=no
+fi
- grep >/dev/null "#undef GST_DISABLE_REGISTRY" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_REGISTRY=0
- else
- GST_DISABLE_REGISTRY=1
- fi
+ if test "x$HAVE_ZLIB" = "xyes"; then
+ HAVE_ZLIB="yes"
+ ZLIB_LIBS="-lz"
- grep >/dev/null "#undef GST_DISABLE_PLUGIN" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_PLUGIN=0
+ else
+ :
+ fi
else
- GST_DISABLE_PLUGIN=1
+ :
fi
- grep >/dev/null "#undef GST_DISABLE_XML" $GST_CONFIGPATH
- if test $? = 0; then
- GST_DISABLE_XML=0
- else
- GST_DISABLE_XML=1
- fi
+elif test $pkg_failed = untried; then
- if test $GST_DISABLE_XML != "1"; then
- USE_XML_TRUE=
- USE_XML_FALSE='#'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uncompress in -lz" >&5
+$as_echo_n "checking for uncompress in -lz... " >&6; }
+if ${ac_cv_lib_z_uncompress+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- USE_XML_TRUE='#'
- USE_XML_FALSE=
-fi
-
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lz $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
-if test "x$HAVE_LIBXML_HTML" != "xyes"; then
+/* 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 uncompress ();
+int
+main ()
+{
+return uncompress ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_z_uncompress=yes
+else
+ ac_cv_lib_z_uncompress=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_z_uncompress" >&5
+$as_echo "$ac_cv_lib_z_uncompress" >&6; }
+if test "x$ac_cv_lib_z_uncompress" = xyes; then :
+ HAVE_ZLIB=yes
+else
+ HAVE_ZLIB=no
+fi
- GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ subparse / /'`
- if false; then
- USE_PLUGIN_SUBPARSE_TRUE=
- USE_PLUGIN_SUBPARSE_FALSE='#'
+ 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" = xyes; then :
+ :
else
- USE_PLUGIN_SUBPARSE_TRUE='#'
- USE_PLUGIN_SUBPARSE_FALSE=
+ HAVE_ZLIB=no
fi
-fi
+ if test "x$HAVE_ZLIB" = "xyes"; then
-if test "x$HAVE_SYS_SOCKET_H" != "xyes"; then
+ HAVE_ZLIB="yes"
+ ZLIB_LIBS="-lz"
- GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ tcp / /'`
- if false; then
- USE_PLUGIN_TCP_TRUE=
- USE_PLUGIN_TCP_FALSE='#'
-else
- USE_PLUGIN_TCP_TRUE='#'
- USE_PLUGIN_TCP_FALSE=
-fi
+
+ else
+ :
+ fi
+ else
+ :
+ fi
-fi
-# Check whether --enable-iso-codes was given.
-if test "${enable_iso_codes+set}" = set; then :
- enableval=$enable_iso_codes; case "${enableval}" in
- yes) enable_iso_codes=yes ;;
- no) enable_iso_codes=no ;;
- *) as_fn_error $? "bad value ${enableval} for --enable-iso-codes" "$LINENO" 5 ;;
-esac
else
- enable_iso_codes=yes
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use iso-codes if they are available" >&5
-$as_echo_n "checking whether to use iso-codes if they are available... " >&6; }
-if test "x$enable_iso_codes" = "xyes"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- have_iso_codes=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes are available on this system" >&5
-$as_echo_n "checking whether iso-codes are available on this system... " >&6; }
- if $PKG_CONFIG iso-codes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iso-codes has iso-639 domain" >&5
-$as_echo_n "checking whether iso-codes has iso-639 domain... " >&6; }
- if $PKG_CONFIG --variable=domains iso-codes | $GREP -q 639 ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iso-codes prefix" >&5
-$as_echo_n "checking for iso-codes prefix... " >&6; }
- ISO_CODES_PREFIX=`$PKG_CONFIG --variable=prefix iso-codes`
- if test -d "$ISO_CODES_PREFIX"; then
+ ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS
+ ZLIB_LIBS=$pkg_cv_ZLIB_LIBS
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_CODES_PREFIX" >&5
-$as_echo_n "checking ISO_CODES_PREFIX... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_CODES_PREFIX" >&5
-$as_echo "$ISO_CODES_PREFIX" >&6; }
- ISO_639_DOMAIN="iso_639"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking ISO_639_DOMAIN" >&5
-$as_echo_n "checking ISO_639_DOMAIN... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ISO_639_DOMAIN" >&5
-$as_echo "$ISO_639_DOMAIN" >&6; }
- have_iso_codes=yes
-
-$as_echo "#define HAVE_ISO_CODES 1" >>confdefs.h
+ HAVE_ZLIB="yes"
-cat >>confdefs.h <<_ACEOF
-#define ISO_CODES_PREFIX "$ISO_CODES_PREFIX"
-_ACEOF
+fi
- ISO_CODES_VERSION=`$PKG_CONFIG --modversion iso-codes`
-cat >>confdefs.h <<_ACEOF
-#define ISO_CODES_VERSION "$ISO_CODES_VERSION"
-_ACEOF
+ LIBS=$gst_check_save_LIBS
+ LDFLAGS=$gst_check_save_LDFLAGS
+ CFLAGS=$gst_check_save_CFLAGS
+ CPPFLAGS=$gst_check_save_CPPFLAGS
+ CXXFLAGS=$gst_check_save_CXXFLAGS
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
+ if test x$HAVE_ZLIB = xno; then
+ USE_ZLIB=no
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ :
fi
- if test "x$have_iso_codes" = "xyes"; then
- USE_ISO_CODES_TRUE=
- USE_ISO_CODES_FALSE='#'
-else
- USE_ISO_CODES_TRUE='#'
- USE_ISO_CODES_FALSE=
fi
+if test x$USE_ZLIB = xyes; then
+ :
+ if test "x" != "x"; then
+ GST_PLUGINS_YES="\t\n$GST_PLUGINS_YES"
+ fi
+
+$as_echo "#define HAVE_ZLIB /**/" >>confdefs.h
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (disabled via --disable-iso-codes)" >&5
-$as_echo "no (disabled via --disable-iso-codes)" >&6; }
- if false; then
- USE_ISO_CODES_TRUE=
- USE_ISO_CODES_FALSE='#'
+ :
+ if test "x" != "x"; then
+ GST_PLUGINS_NO="\t\n$GST_PLUGINS_NO"
+ fi
+ :
+fi
+ if test x$USE_ZLIB = xyes; then
+ USE_ZLIB_TRUE=
+ USE_ZLIB_FALSE='#'
else
- USE_ISO_CODES_TRUE='#'
- USE_ISO_CODES_FALSE=
+ USE_ZLIB_TRUE='#'
+ USE_ZLIB_FALSE=
fi
-fi
+
echo
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.
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
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
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
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
# 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
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
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
# 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
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
# 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
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
# 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
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
# 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
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
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"
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
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
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"
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
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"
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
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
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"
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
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"
enableval=$enable_gst_v4l; case "${enableval}" in
yes) USE_GST_V4L=yes;;
no) USE_GST_V4L=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-gst_v4l" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-gst_v4l" "$LINENO" 5 ;;
esac
else
USE_GST_V4L=yes
#include <linux/videodev.h>
"
-if test "x$ac_cv_have_decl_VID_TYPE_MPEG_ENCODER" = x""yes; then :
+if test "x$ac_cv_have_decl_VID_TYPE_MPEG_ENCODER" = xyes; then :
HAVE_GST_V4L="yes"
else
HAVE_GST_V4L="no"
enableval=$enable_alsa; case "${enableval}" in
yes) USE_ALSA=yes;;
no) USE_ALSA=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-alsa" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-alsa" "$LINENO" 5 ;;
esac
else
USE_ALSA=yes
if test "x$enable_alsatest" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_ctl_open in -lasound" >&5
$as_echo_n "checking for snd_ctl_open in -lasound... " >&6; }
-if test "${ac_cv_lib_asound_snd_ctl_open+set}" = set; then :
+if ${ac_cv_lib_asound_snd_ctl_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_ctl_open" >&5
$as_echo "$ac_cv_lib_asound_snd_ctl_open" >&6; }
-if test "x$ac_cv_lib_asound_snd_ctl_open" = x""yes; then :
+if test "x$ac_cv_lib_asound_snd_ctl_open" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBASOUND 1
_ACEOF
if test "x$enable_alsatest" = "xyes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for snd_ctl_open in -lasound" >&5
$as_echo_n "checking for snd_ctl_open in -lasound... " >&6; }
-if test "${ac_cv_lib_asound_snd_ctl_open+set}" = set; then :
+if ${ac_cv_lib_asound_snd_ctl_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_asound_snd_ctl_open" >&5
$as_echo "$ac_cv_lib_asound_snd_ctl_open" >&6; }
-if test "x$ac_cv_lib_asound_snd_ctl_open" = x""yes; then :
+if test "x$ac_cv_lib_asound_snd_ctl_open" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBASOUND 1
_ACEOF
enableval=$enable_cdparanoia; case "${enableval}" in
yes) USE_CDPARANOIA=yes;;
no) USE_CDPARANOIA=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-cdparanoia" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-cdparanoia" "$LINENO" 5 ;;
esac
else
USE_CDPARANOIA=yes
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
$as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
$as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
HAVE_CDPARANOIA=yes
else
HAVE_CDPARANOIA=no
if test "x$HAVE_CDPARANOIA" = "xyes"; then
ac_fn_c_check_header_mongrel "$LINENO" "cdda_interface.h" "ac_cv_header_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_interface_h" = xyes; then :
:
else
HAVE_CDPARANOIA=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
$as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
$as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
HAVE_CDPARANOIA=yes
else
HAVE_CDPARANOIA=no
if test "x$HAVE_CDPARANOIA" = "xyes"; then
ac_fn_c_check_header_mongrel "$LINENO" "cdda/cdda_interface.h" "ac_cv_header_cdda_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_cdda_interface_h" = xyes; then :
:
else
HAVE_CDPARANOIA=no
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for paranoia_cachemodel_size in -lcdda_paranoia" >&5
$as_echo_n "checking for paranoia_cachemodel_size in -lcdda_paranoia... " >&6; }
-if test "${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+set}" = set; then :
+if ${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&5
$as_echo "$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&6; }
-if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = x""yes; then :
+if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = xyes; then :
:
else
HAVE_CDPARANOIA=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
$as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
$as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
HAVE_CDPARANOIA=yes
else
HAVE_CDPARANOIA=no
if test "x$HAVE_CDPARANOIA" = "xyes"; then
ac_fn_c_check_header_mongrel "$LINENO" "cdda_interface.h" "ac_cv_header_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_interface_h" = xyes; then :
:
else
HAVE_CDPARANOIA=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cdda_open in -lcdda_interface" >&5
$as_echo_n "checking for cdda_open in -lcdda_interface... " >&6; }
-if test "${ac_cv_lib_cdda_interface_cdda_open+set}" = set; then :
+if ${ac_cv_lib_cdda_interface_cdda_open+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_interface_cdda_open" >&5
$as_echo "$ac_cv_lib_cdda_interface_cdda_open" >&6; }
-if test "x$ac_cv_lib_cdda_interface_cdda_open" = x""yes; then :
+if test "x$ac_cv_lib_cdda_interface_cdda_open" = xyes; then :
HAVE_CDPARANOIA=yes
else
HAVE_CDPARANOIA=no
if test "x$HAVE_CDPARANOIA" = "xyes"; then
ac_fn_c_check_header_mongrel "$LINENO" "cdda/cdda_interface.h" "ac_cv_header_cdda_cdda_interface_h" "$ac_includes_default"
-if test "x$ac_cv_header_cdda_cdda_interface_h" = x""yes; then :
+if test "x$ac_cv_header_cdda_cdda_interface_h" = xyes; then :
:
else
HAVE_CDPARANOIA=no
then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for paranoia_cachemodel_size in -lcdda_paranoia" >&5
$as_echo_n "checking for paranoia_cachemodel_size in -lcdda_paranoia... " >&6; }
-if test "${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+set}" = set; then :
+if ${ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&5
$as_echo "$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" >&6; }
-if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = x""yes; then :
+if test "x$ac_cv_lib_cdda_paranoia_paranoia_cachemodel_size" = xyes; then :
:
else
HAVE_CDPARANOIA=no
enableval=$enable_gnome_vfs; case "${enableval}" in
yes) USE_GNOME_VFS=yes;;
no) USE_GNOME_VFS=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-gnome_vfs" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-gnome_vfs" "$LINENO" 5 ;;
esac
else
USE_GNOME_VFS=yes
enableval=$enable_ivorbis; case "${enableval}" in
yes) USE_IVORBIS=yes;;
no) USE_IVORBIS=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-ivorbis" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-ivorbis" "$LINENO" 5 ;;
esac
else
USE_IVORBIS=yes
IVORBIS_CFLAGS=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for vorbis_block_init in -lvorbisidec" >&5
$as_echo_n "checking for vorbis_block_init in -lvorbisidec... " >&6; }
-if test "${ac_cv_lib_vorbisidec_vorbis_block_init+set}" = set; then :
+if ${ac_cv_lib_vorbisidec_vorbis_block_init+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vorbisidec_vorbis_block_init" >&5
$as_echo "$ac_cv_lib_vorbisidec_vorbis_block_init" >&6; }
-if test "x$ac_cv_lib_vorbisidec_vorbis_block_init" = x""yes; then :
+if test "x$ac_cv_lib_vorbisidec_vorbis_block_init" = xyes; then :
IVORBIS_LIBS=-lvorbisidec
HAVE_IVORBIS=yes
case $host in
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for vorbis_dsp_pcmout in -lvorbisidec" >&5
$as_echo_n "checking for vorbis_dsp_pcmout in -lvorbisidec... " >&6; }
-if test "${ac_cv_lib_vorbisidec_vorbis_dsp_pcmout+set}" = set; then :
+if ${ac_cv_lib_vorbisidec_vorbis_dsp_pcmout+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" >&5
$as_echo "$ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" >&6; }
-if test "x$ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" = x""yes; then :
+if test "x$ac_cv_lib_vorbisidec_vorbis_dsp_pcmout" = xyes; then :
$as_echo "#define USE_TREMOLO 1" >>confdefs.h
enableval=$enable_gio; case "${enableval}" in
yes) USE_GIO=yes;;
no) USE_GIO=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-gio" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-gio" "$LINENO" 5 ;;
esac
else
USE_GIO=yes
enableval=$enable_libvisual; case "${enableval}" in
yes) USE_LIBVISUAL=yes;;
no) USE_LIBVISUAL=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-libvisual" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-libvisual" "$LINENO" 5 ;;
esac
else
USE_LIBVISUAL=yes
enableval=$enable_ogg; case "${enableval}" in
yes) USE_OGG=yes;;
no) USE_OGG=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-ogg" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-ogg" "$LINENO" 5 ;;
esac
else
USE_OGG=yes
enableval=$enable_pango; case "${enableval}" in
yes) USE_PANGO=yes;;
no) USE_PANGO=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-pango" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-pango" "$LINENO" 5 ;;
esac
else
USE_PANGO=yes
enableval=$enable_theora; case "${enableval}" in
yes) USE_THEORA=yes;;
no) USE_THEORA=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-theora" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-theora" "$LINENO" 5 ;;
esac
else
USE_THEORA=yes
enableval=$enable_vorbis; case "${enableval}" in
yes) USE_VORBIS=yes;;
no) USE_VORBIS=no;;
- *) as_fn_error $? "bad value ${enableval} for --enable-vorbis" "$LINENO" 5 ;;
+ *) as_fn_error $? "bad value ${enableval} for --enable-vorbis" "$LINENO" 5 ;;
esac
else
USE_VORBIS=yes
set dummy freetype-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_FT2_CONFIG+set}" = set; then :
+if ${ac_cv_path_FT2_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $FT2_CONFIG in
echo "*** The FreeType test program failed to run. If your system uses"
echo "*** shared libraries and they are installed outside the normal"
echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
- echo "*** (or whatever is appropiate for your system) is correctly set."
+ echo "*** (or whatever is appropriate for your system) is correctly set."
fi
fi
FT2_CFLAGS=""
set dummy freetype-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_FT2_CONFIG+set}" = set; then :
+if ${ac_cv_path_FT2_CONFIG+:} false; then :
$as_echo_n "(cached) " >&6
else
case $FT2_CONFIG in
echo "*** The FreeType test program failed to run. If your system uses"
echo "*** shared libraries and they are installed outside the normal"
echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
- echo "*** (or whatever is appropiate for your system) is correctly set."
+ echo "*** (or whatever is appropriate for your system) is correctly set."
fi
fi
FT2_CFLAGS=""
GST_PLUGINS_BASE_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
-GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
-GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
+GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS)"
+GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS)"
GST_LIBS="$GST_LIBS \$(GCOV_LIBS)"
-ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/ffmpegcolorspace/Makefile gst/gdp/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile sys/v4l/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/gnomevfs/Makefile ext/gio/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/cdda/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/floatcast/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/netbuffer/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-cdda.pc pkgconfig/gstreamer-cdda-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-floatcast.pc pkgconfig/gstreamer-floatcast-uninstalled.pc pkgconfig/gstreamer-interfaces.pc pkgconfig/gstreamer-interfaces-uninstalled.pc pkgconfig/gstreamer-netbuffer.pc pkgconfig/gstreamer-netbuffer-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playrec/Makefile tests/examples/volume/Makefile tests/examples/v4l/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
+ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/ffmpegcolorspace/Makefile gst/gdp/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile sys/v4l/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/gnomevfs/Makefile ext/gio/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/cdda/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/floatcast/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/netbuffer/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-cdda.pc pkgconfig/gstreamer-cdda-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-floatcast.pc pkgconfig/gstreamer-floatcast-uninstalled.pc pkgconfig/gstreamer-interfaces.pc pkgconfig/gstreamer-interfaces-uninstalled.pc pkgconfig/gstreamer-netbuffer.pc pkgconfig/gstreamer-netbuffer-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playrec/Makefile tests/examples/v4l/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
sed \
: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;}
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 "${HAVE_CXX_TRUE}" && test -z "${HAVE_CXX_FALSE}"; then
as_fn_error $? "conditional \"HAVE_CXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
as_fn_error $? "conditional \"USE_ISO_CODES\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${USE_ZLIB_TRUE}" && test -z "${USE_ZLIB_FALSE}"; then
+ as_fn_error $? "conditional \"USE_ZLIB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${USE_X_TRUE}" && test -z "${USE_X_FALSE}"; then
as_fn_error $? "conditional \"USE_X\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
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"
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
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 0.10.34, which was
-generated by GNU Autoconf 2.67. Invocation command line was
+This file was extended by GStreamer Base Plug-ins $as_me 0.10.36, which was
+generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GStreamer Base Plug-ins config.status 0.10.34
-configured by $0, generated by GNU Autoconf 2.67,
+GStreamer Base Plug-ins config.status 0.10.36
+configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
Copyright (C) 2010 Free Software Foundation, Inc.
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 \
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 \
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 \
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 \
libname_spec \
library_names_spec \
soname_spec \
+install_override_mode \
finish_eval \
old_striplib \
striplib \
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 \
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 \
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\\\\\\""
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 \
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\\\\\\""
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'
"tests/check/Makefile") CONFIG_FILES="$CONFIG_FILES tests/check/Makefile" ;;
"tests/examples/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/Makefile" ;;
"tests/examples/app/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/app/Makefile" ;;
+ "tests/examples/audio/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/audio/Makefile" ;;
"tests/examples/dynamic/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/dynamic/Makefile" ;;
"tests/examples/encoding/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/encoding/Makefile" ;;
+ "tests/examples/fft/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/fft/Makefile" ;;
"tests/examples/gio/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/gio/Makefile" ;;
"tests/examples/overlay/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/overlay/Makefile" ;;
"tests/examples/seek/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/seek/Makefile" ;;
"tests/examples/snapshot/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/snapshot/Makefile" ;;
"tests/examples/playrec/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/playrec/Makefile" ;;
- "tests/examples/volume/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/volume/Makefile" ;;
"tests/examples/v4l/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/v4l/Makefile" ;;
"tests/files/Makefile") CONFIG_FILES="$CONFIG_FILES tests/files/Makefile" ;;
"tests/icles/Makefile") CONFIG_FILES="$CONFIG_FILES tests/icles/Makefile" ;;
"common/m4/Makefile") CONFIG_FILES="$CONFIG_FILES common/m4/Makefile" ;;
"m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;;
- *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
esac
done
# 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
}
{
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.
ac_cs_awk_cr=$ac_cr
fi
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
_ACEOF
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
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 = "\a"
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
# 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
# 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
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
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 `:'.
[\\/$]*) 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'"
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
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
;;
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.
# 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.
# ### 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
# 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
# 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
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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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"
# 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
# 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
# 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
# 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
# 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
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/prerelease
-AC_INIT(GStreamer Base Plug-ins, 0.10.34,
+AC_INIT(GStreamer Base Plug-ins, 0.10.36,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gst-plugins-base)
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 24, 0, 24)
+AS_LIBTOOL(GST, 25, 0, 25)
dnl FIXME: this macro doesn't actually work;
dnl the generated libtool script has no support for the listed tags.
AM_PROG_LIBTOOL
dnl *** required versions of GStreamer stuff ***
-GST_REQ=0.10.34
+GST_REQ=0.10.36
dnl *** autotools stuff ****
AG_GST_ARG_ENABLE_EXPERIMENTAL
dnl *** checks for platform ***
+AG_GST_PLATFORM
dnl * hardware/architecture *
AM_CONDITIONAL(HAVE_LIBXML_HTML, test "x$HAVE_LIBXML_HTML" = "xyes")
dnl used in gst/tcp
-AC_CHECK_HEADERS([sys/socket.h],
+AC_CHECK_HEADERS([sys/socket.h],
HAVE_SYS_SOCKET_H="yes", HAVE_SYS_SOCKET_H="no")
AM_CONDITIONAL(HAVE_SYS_SOCKET_H, test "x$HAVE_SYS_SOCKET_H" = "xyes")
dnl used in gst-libs/gst/pbutils and associated unit test
AC_CHECK_HEADERS([process.h sys/types.h sys/wait.h sys/stat.h])
+AC_CHECK_HEADERS([xmmintrin.h emmintrin.h])
+
dnl ffmpegcolorspace includes _stdint.h
dnl also, Windows does not have long long
AX_CREATE_STDINT_H
dnl *** checks for dependency libraries ***
dnl GLib is required
-AG_GST_GLIB_CHECK([2.22])
+AG_GST_GLIB_CHECK([2.24])
ORC_CHECK([0.4.11])
dnl GTK is optional and only used in examples
HAVE_GTK=no
HAVE_GTK_X11=no
-GTK2_REQ=2.14.0
-GTK3_REQ=2.91.3
+GTK_REQ=3.0.0
if test "x$BUILD_EXAMPLES" = "xyes"; then
- AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
- AC_ARG_WITH([gtk],
- AC_HELP_STRING([--with-gtk=3.0|2.0],
- [which gtk+ version to compile against (default: 2.0)]),
- [case "$with_gtk" in
- 2.0) GTK_REQ=$GTK2_REQ ;;
- 3.0) GTK_REQ=$GTK3_REQ ;;
- *) AC_MSG_ERROR([invalid gtk+ version specified]);;
- esac],
- [with_gtk=2.0
- GTK_REQ=$GTK2_REQ])
- AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
- PKG_CHECK_MODULES(GTK, gtk+-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
+ PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
dnl some examples need gtk+-x11
- PKG_CHECK_MODULES(GTK_X11, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK_X11=yes, HAVE_GTK_X11=no)
+ PKG_CHECK_MODULES(GTK_X11, gtk+-x11-3.0 >= $GTK_REQ, HAVE_GTK_X11=yes, HAVE_GTK_X11=no)
AC_SUBST(GTK_LIBS)
AC_SUBST(GTK_CFLAGS)
fi
["${srcdir}/gst-plugins-base.doap"],
[$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
+# set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
+dnl make sure it doesn't complain about unused variables if debugging is disabled
+NO_WARNINGS=""
+AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
+
dnl define an ERROR_CFLAGS Makefile variable
dnl -Wformat-nonliteral - see ext/pango/gstclockoverlay.c and http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39438
AG_GST_SET_ERROR_CFLAGS($GST_GIT, [
-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef
-Wwrite-strings -Wformat-nonliteral -Wformat-security
-Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
- -Wno-multichar -Wnested-externs ])
+ -Wno-multichar -Wnested-externs $NO_WARNINGS])
dnl define an ERROR_CXXFLAGS Makefile variable
AG_GST_SET_ERROR_CXXFLAGS($GST_GIT, [
-Wmissing-declarations -Wredundant-decls -Wundef
-Wwrite-strings -Wformat-nonliteral -Wformat-security
-Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return
- -Wno-multichar])
+ -Wno-multichar $NO_WARNINGS])
dnl define correct level for debugging messages
AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
AM_CONDITIONAL(USE_ISO_CODES, false)
fi
+dnl *** zlib is optionally used by id3 tag parsing in libgsttag ***
+translit(dnm, m, l) AM_CONDITIONAL(USE_ZLIB, true)
+AG_GST_CHECK_FEATURE(ZLIB, [zlib support for ID3 parsing in libgsttag],, [
+ PKG_CHECK_MODULES(ZLIB, [ zlib ], [
+ HAVE_ZLIB="yes"
+ ], [
+ AG_GST_CHECK_LIBHEADER(ZLIB, z, uncompress,, zlib.h, [
+ HAVE_ZLIB="yes"
+ ZLIB_LIBS="-lz"
+ AC_SUBST(ZLIB_LIBS)
+ ])
+ ])
+])
+
dnl *** sys plug-ins ***
echo
CFLAGS="$ac_cflags_save"
CPPFLAGS="$ac_cppflags_save"
])
-
+
dnl Check for Xv extension
translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
AG_GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [
if test x$HAVE_X = xyes; then
- AC_CHECK_LIB(Xext, XShmAttach,
+ AC_CHECK_LIB(Xext, XShmAttach,
HAVE_XSHM="yes", HAVE_XSHM="no",
- $X_LIBS)
+ $X_LIBS)
if test "x$HAVE_XSHM" = "xyes"; then
XSHM_LIBS="-lXext"
else
dnl On AIX, it is in XextSam instead, but we still need -lXext
- AC_CHECK_LIB(XextSam, XShmAttach,
+ AC_CHECK_LIB(XextSam, XShmAttach,
HAVE_XSHM="yes", HAVE_XSHM="no",
- $X_LIBS)
+ $X_LIBS)
if test "x$HAVE_XSHM" = "xyes"; then
XSHM_LIBS="-lXext -lXextSam"
fi
fi
fi
-], , [
- AC_SUBST(HAVE_XSHM)
- AC_SUBST(XSHM_LIBS)
+], , [
+ AC_SUBST(HAVE_XSHM)
+ AC_SUBST(XSHM_LIBS)
])
dnl v4l/v4l2 checks have been moved down because they require X
PKG_CHECK_MODULES(CDPARANOIA, cdparanoia-3 >= 10.2, [
HAVE_CDPARANOIA="yes"
], [
- AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
- cdda_open, -lm,
- cdda_interface.h,
+ AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
+ cdda_open, -lm,
+ cdda_interface.h,
CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
HEADER_DIR="no"
FOUND_CDPARANOIA="yes")
if test "x$FOUND_CDPARANOIA" != "xyes";
then
- AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
- cdda_open, -lm,
- cdda/cdda_interface.h,
+ AG_GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface,
+ cdda_open, -lm,
+ cdda/cdda_interface.h,
CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
HEADER_DIR="yes"
FOUND_CDPARANOIA="yes")
dnl FIXME: do we want to rename to GST_ALL_* ?
dnl add GST_OPTION_CFLAGS, but overridable
-GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
-GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
+GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS)"
+GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS)"
AC_SUBST(GST_CFLAGS)
AC_SUBST(GST_CXXFLAGS)
dnl add GCOV libs because libtool strips -fprofile-arcs -ftest-coverage
tests/check/Makefile
tests/examples/Makefile
tests/examples/app/Makefile
+tests/examples/audio/Makefile
tests/examples/dynamic/Makefile
tests/examples/encoding/Makefile
+tests/examples/fft/Makefile
tests/examples/gio/Makefile
tests/examples/overlay/Makefile
tests/examples/seek/Makefile
tests/examples/snapshot/Makefile
tests/examples/playrec/Makefile
-tests/examples/volume/Makefile
tests/examples/v4l/Makefile
tests/files/Makefile
tests/icles/Makefile
+gst-plugins-base0.10 (0.10.36-1slp2+6) unstable; urgency=low
+
+ * Destroy xim_transparenter image when destroying xwindow
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.36-1slp2+6
+
+ -- Sangchul Lee <sc11.lee@samsung.com> Mon, 13 Aug 2012 12:39:13 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+5) unstable; urgency=low
+
+ * Remove unused binary file
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.36-1slp2+5
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 08 Aug 2012 20:33:11 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+4) unstable; urgency=low
+
+ * Enable the RM type
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.36-1slp2+4
+
+ -- Dowan Kim <dowan2171.kim@samsung.com> Fri, 03 Aug 2012 13:46:19 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+3) unstable; urgency=low
+
+ * Remove unused library
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.36-1slp2+3
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 20 Jul 2012 12:01:18 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+2) unstable; urgency=low
+
+ * [xvimagesink] Bug fix - "display-mode" is not set if state is NULL
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.36-1slp2+2
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 04 Jul 2012 14:21:58 +0900
+
+gst-plugins-base0.10 (0.10.36-1slp2+1) unstable; urgency=low
+
+ * Upgrade 0.10.34 to 0.10.36
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.36-1slp2+1
+
+ -- Hyunseok Lee <hs7388.lee@samsung.com> Wed, 27 Jun 2012 20:49:06 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+20) unstable; urgency=low
+
+ * [cameracontrol] Add new interface for face zoom
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+20
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 01 Jun 2012 18:00:51 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+19) unstable; urgency=low
+
+ * [xvimagesink] Update display-mode
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+19
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 23 May 2012 19:41:36 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+18) unstable; urgency=low
+
+ * [cameracontrol] Add new structure for face detection
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+18
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Tue, 22 May 2012 10:29:25 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+17) unstable; urgency=low
+
+ * [xvimagesink] skip buffer if aligned size is smaller than size of caps
+ * [xvimagesink] flush last-buffer when setcaps
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+17
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Thu, 19 Apr 2012 17:18:36 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+16) unstable; urgency=low
+
+ * [playsink] change ffmpegcolorspace to autoconvert for using h/w convert by sangho park
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+16
+
+ -- Younghwan Ahn <younghwan_.an@samsung.com> Mon, 09 Apr 2012 14:54:44 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+15) unstable; urgency=low
+
+ * [ffmpegcolorspace] Support SUYV, SYVY, S420 format
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+15
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 10 Feb 2012 15:09:39 +0900
+
gst-plugins-base0.10 (0.10.34-39slp2+14) unstable; urgency=low
- * Initial release
- * Git: pkgs/g/gst-plugins-base0.10
+ * Update debian/copyright file from ubuntu package
+ * Git: slp/pkgs/g/gst-plugins-base0.10
* Tag: gst-plugins-base0.10_0.10.34-39slp2+14
- -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 07 Dec 2011 12:43:18 +0900
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 04 Jan 2012 11:20:17 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+13) unstable; urgency=low
+
+ * [xvimagesink] Support ITLV format
+ * [gio] Enable gio for WebAudio API
+ * Git: slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+13
+
+ -- Hyunseok Lee <hs7388.lee@samsung.com> Fri, 16 Dec 2011 11:11:11 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+12) unstable; urgency=low
+
+ * [typefind] Modified specific MP3 contents are playback using flacparse
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+12
+
+ -- Seongho Jeong <sh33.jeong@samsung.com> Mon, 07 Nov 2011 13:22:08 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+11) unstable; urgency=low
+
+ * [typefind] Enable FLAC, Sorenson Spark codec.
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+11
+
+ -- Hyunseok Lee <hs7388.lee@samsung.com> Wed, 02 Nov 2011 20:08:41 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+10) unstable; urgency=low
+
+ * [xvimagesink] Fix bug on Emulator - set XvImage size as ZERO if buffer alloc function is called
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+10
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Thu, 13 Oct 2011 20:18:58 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+9) unstable; urgency=low
+
+ * [xvimagesink] Update code for XvImage size with samsung extension format and remove code related multiplane buffer
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+9
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 05 Oct 2011 21:03:26 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+8) unstable; urgency=low
+
+ * [xvimagesink] Improve code - Show proper window screen when xid is not set
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+8
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Thu, 11 Aug 2011 20:06:23 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+7) unstable; urgency=low
+
+ * Repackaging for playing sami subtitle
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+7
+
+ -- YeJin Cho <cho.yejin@samsung.com> Wed, 10 Aug 2011 14:18:48 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+6) unstable; urgency=low
+
+ * [xvimagesink] Enable samsung extension feature on simulator
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+6
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Mon, 25 Jul 2011 14:10:14 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+5) unstable; urgency=low
+
+ * [xvimagesink] Clear screen when window is deactivated
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+5
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 24 Jun 2011 14:27:56 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+4) unstable; urgency=low
+
+ * remove old files
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+4
+
+ -- Younghwan Ahn <younghwan_.an@samsung.com> Wed, 08 Jun 2011 16:58:40 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+3) unstable; urgency=low
+
+ * update changelog
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+3
+
+ -- Younghwan Ahn <younghwan_.an@samsung.com> Tue, 07 Jun 2011 20:36:02 +0900
+
+gst-plugins-base0.10 (0.10.34-39slp2+1) lucid; urgency=low
+
+ * upgrade 33 to 34
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.34-39slp2+1
+
+ -- nosurprises <nosurprises@nosurprises-desktop> Mon, 23 May 2011 12:09:27 +0900
+
+gst-plugins-base0.10 (0.10.33-39slp2+2) lucid; urgency=low
+
+ * merging textrenderer
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.33-39slp2+2
+
+ -- YeJin Cho <cho.yejin@nsamsung.com> Mon, 16 May 2011 16:18:14 +0900
+
+gst-plugins-base0.10 (0.10.33-39slp2+1) lucid; urgency=low
+
+ * upgrade 25 to 33
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.33-39slp2+1
+
+ -- Younghwan Ahn <younghwan_.an@nsamsung.com> Thu, 12 May 2011 19:32:09 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+50) unstable; urgency=low
+
+ * [queue2] Fix to remove the temp file by unlinking
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+50
+
+ -- Yejin Cho <cho.yejin@samsung.com> Wed, 20 Apr 2011 13:44:55 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+49) unstable; urgency=low
+
+ * [queue2] Fix to set buffer start position for handling buffering query
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+49
+
+ -- Yejin Cho <cho.yejin@samsung.com> Tue, 05 Apr 2011 17:15:59 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+48) unstable; urgency=low
+
+ * [queue2] Bug fix - no lock stream when handling seek event
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+48
+
+ -- Yejin Cho <cho.yejin@samsung.com> Fri, 01 Apr 2011 12:23:40 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+47) unstable; urgency=low
+
+ * [xvimagesink] Trim an odd videosrc size
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+47
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 25 Mar 2011 11:13:56 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+46) unstable; urgency=low
+
+ * [xvimagesink] Resolve video conflict problem
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+46
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 11 Mar 2011 17:49:55 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+45) unstable; urgency=low
+
+ * [volume] remove liboil from the plugin
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+45
+
+ -- Wonhyung Cho <wh01.cho@samsung.com> Wed, 02 Mar 2011 14:31:04 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+44) unstable; urgency=low
+
+ * [xvimagesink] Update xv interface - Replace CPhyAddr with CbPhyAddr and CrPhyAddr
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+44
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Mon, 14 Feb 2011 14:58:53 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+43) unstable; urgency=low
+
+ * [xvimagesink] Update code for c210 - Call XvStopVideo when PAUSED to READY
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+43
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Thu, 10 Feb 2011 13:43:09 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+42) unstable; urgency=low
+
+ * disable Pango and remove depandancy
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+42
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Tue, 08 Feb 2011 12:28:30 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+41) unstable; urgency=low
+
+ * [xvimagesink] Update code for c210 multiplane buffer
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+41
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 26 Jan 2011 11:11:40 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+40) unstable; urgency=low
+
+ * [gstqueue2] Fix to handle seek event for http streaming
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+40
+
+ -- YeJin Cho <cho.yejin@samsung.com> Tue, 18 Jan 2011 13:46:31 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+39) unstable; urgency=low
+
+ * [xvimagesink] Add SYVY for marvell support
+ * Git: 165.213.180.234:slp/pkgs/g/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+39
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 07 Jan 2011 16:39:09 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+38) unstable; urgency=low
+
+ * Fix queue2 for buffering using file
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+38
+
+ -- YeJin Cho <cho.yejin@samsung.com> Tue, 14 Dec 2010 17:35:08 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+37) unstable; urgency=low
+
+ * Fix for as-needed
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+37
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Wed, 24 Nov 2010 21:30:58 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+36) unstable; urgency=low
+
+ * Add dbg-package, fPIC, as-needed
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+36
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Fri, 19 Nov 2010 11:21:07 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+35) unstable; urgency=low
+
+ * [cameracontrol] Add interface for setting auto focus area
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+35
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 06 Oct 2010 15:48:15 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+34) unstable; urgency=low
+
+ * [xvimagesink] Add Full screen mode(display-geometry-method)
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+34
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Mon, 04 Oct 2010 11:04:17 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+33) unstable; urgency=low
+
+ * [xvimagesink] Bug fix - Request output with wrong video src parameter in particular condition
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+33
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 29 Sep 2010 11:16:38 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+32) unstable; urgency=low
+
+ * [cameracontrol] Add information for dynamic capability
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+32
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Mon, 13 Sep 2010 17:57:01 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+31) unstable; urgency=low
+
+ * [xvimagesink] Bug fix - Last screen is remained
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+31
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 10 Sep 2010 17:16:18 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+30) unstable; urgency=low
+
+ * [camera] Add camera capture interface in cameracontol interface
+ * [xvimagesink] Add log and check routine for some Xv APIs
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+30
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Mon, 06 Sep 2010 16:15:14 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+29) unstable; urgency=low
+
+ * Re-packaging for basesink
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+29
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 25 Aug 2010 13:17:12 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+28) unstable; urgency=low
+
+ * Re-packaging for basesink
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+28
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Wed, 25 Aug 2010 12:10:25 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+27) unstable; urgency=low
+
+ * [typefindfunction] Fix audio/x-m4a rank primary for supporting fast http streaming
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+27
+
+ -- Cho Ye Jin <cho.yejin@samsung.com> Thu, 05 Aug 2010 14:04:17 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+26) unstable; urgency=low
+
+ * [xvimagesink] Bug fix - do not request proper size for xv output
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+26
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Thu, 29 Jul 2010 13:13:08 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+25) unstable; urgency=low
+
+ * [xvimagesink] Add control for visible setting
+ * [xvimagesink] Remove "origin-size" property because of duplicated function in "display-geometry-method"
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+25
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Mon, 26 Jul 2010 16:43:13 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+24) unstable; urgency=low
+
+ * [xvimagesink] zoom property is implemented
+ * Git: 165.213.180.234:/git/slp/pkgs/gst-plugins-base0.10
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+24
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Fri, 23 Jul 2010 20:20:22 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+23) unstable; urgency=low
+
+ * [xvimagesink] Block image put when scmn_data is NULL for showing last image
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+23
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Tue, 13 Jul 2010 15:38:44 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+22) unstable; urgency=low
+
+ * [xvimagesink] Modify the drawing input geometry for bug fix and window move
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+22
+
+ -- Jeongmo Yang <jm80.yang@samsung.com> Mon, 12 Jul 2010 16:39:54 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+21) unstable; urgency=low
+
+ * Remove temporary code of ximagesink
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+21
+
+ -- Wonhyung Cho <wh01.cho@samsung.com> Wed, 07 Jul 2010 18:18:39 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+20) unstable; urgency=low
+
+ * camera interface changed(query)
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+20
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Fri, 25 Jun 2010 13:56:19 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+19) unstable; urgency=low
+
+ * changing webm sink caps
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+19
+
+ -- Naveen Ch <naveen.ch@samsung.com> Thu, 24 Jun 2010 14:13:46 +0530
+
+gst-plugins-base0.10 (0.10.25-39slp2+18) unstable; urgency=low
+
+ * added webm typefind function in typefindfunctions
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+18
+
+ -- Naveen Ch <naveen.ch@samsung.com> Thu, 24 Jun 2010 09:28:18 +0530
+
+gst-plugins-base0.10 (0.10.25-39slp2+17) unstable; urgency=low
+
+ * SUYV output applied for ZSL
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+17
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Wed, 16 Jun 2010 17:59:41 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+16) unstable; urgency=low
+
+ * Changelog change
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+16
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Sun, 13 Jun 2010 19:23:59 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+15) unstable; urgency=low
+
+ * limit of display size changed to 4096 x 4096 / SUYV enabled
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+15
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Sun, 13 Jun 2010 19:18:15 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+14) unstable; urgency=low
+
+ * Enable adder for SISO (sandeep)
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+14
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Thu, 20 May 2010 13:55:19 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+13) unstable; urgency=low
+
+ * Changed videorate plugin to avoid freeze in dynamic frame rate setting in VT use case
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+13
+
+ -- Naveen Ch <naveen.ch@samsung.com> Wed, 19 May 2010 14:59:30 +0530
+
+gst-plugins-base0.10 (0.10.25-39slp2+12) unstable; urgency=low
+
+ * Add variables for device name query
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+12
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Mon, 17 May 2010 20:07:25 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+11) unstable; urgency=low
+
+ * Add libgstreamer0.10-dev for dev package
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+11
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Mon, 10 May 2010 20:49:06 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+10) unstable; urgency=low
+
+ * Use gstreamer SDK package
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+10
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Mon, 10 May 2010 16:40:48 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+9) unstable; urgency=low
+
+ * Add SDK package
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+9
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Mon, 10 May 2010 14:08:23 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+8) unstable; urgency=low
+
+ * build error fix (structure member has missed)
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+8
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Fri, 23 Apr 2010 18:00:24 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+7) unstable; urgency=low
+
+ * build error fix (GST_CAMERA_CTRL_TYPE_XXX)
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+7
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Fri, 23 Apr 2010 17:08:49 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+6) unstable; urgency=low
+
+ * Camera device info query function applied to camera control interface
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+6
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Tue, 20 Apr 2010 14:52:34 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+5) unstable; urgency=low
+
+ * enable matroska demuxer/muxer
+ * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/gst-plugins-base-0.10.25
+ * Tag: gst-plugins-base0.10_0.10.25-39slp2+5
+
+ -- Heungsoon Rim <hs06.rim@samsung.com> Fri, 09 Apr 2010 13:13:00 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+4) unstable; urgency=low
+
+ * Fix Flickering when camcorderlib state changes
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Tue, 30 Mar 2010 22:40:56 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+3) unstable; urgency=low
+
+ * email address violation fixed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Sat, 27 Mar 2010 16:48:34 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+2) unstable; urgency=low
+
+ * build bug fix
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Sat, 27 Mar 2010 16:35:08 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+1) unstable; urgency=low
+
+ * Queries maximum screen size to XV (BEFORE : Hard coded)
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Sat, 27 Mar 2010 16:12:48 +0900
+
+gst-plugins-base0.10 (0.10.25-39slp2+0) unstable; urgency=low
+
+ * Change package naming rule
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Thu, 25 Mar 2010 15:10:05 +0900
+
+gst-plugins-base0.10 (0.10.25-39) unstable; urgency=low
+
+ * Enable ogg/theora/vorbis typefindfunction
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Thu, 25 Mar 2010 15:09:16 +0900
+
+gst-plugins-base0.10 (0.10.25-38) unstable; urgency=low
+
+ * Add vorbis,ogg,theora .so to deb package
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Wed, 24 Mar 2010 12:51:53 +0900
+
+gst-plugins-base0.10 (0.10.25-37) unstable; urgency=low
+
+ * Because gstbasesrc.h was changed, I build and upload this package again.
+
+ -- Wonhyung Cho <wh01.cho@samsung.com> Mon, 22 Mar 2010 14:22:53 +0900
+
+gst-plugins-base0.10 (0.10.25-36) unstable; urgency=low
+
+ * free box type handling in typefind functions
+
+ -- Ranjit Reddy B <b.ranjit@samsung.com> Thu, 18 Mar 2010 17:07:46 +0530
+
+gst-plugins-base0.10 (0.10.25-35) unstable; urgency=low
+
+ * xvimagesink caps bug fix
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Mon, 15 Mar 2010 15:10:58 +0900
+
+gst-plugins-base0.10 (0.10.25-34) unstable; urgency=low
+
+ * enable destination ROI functionalities
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Mon, 15 Mar 2010 15:10:36 +0900
+
+gst-plugins-base0.10 (0.10.25-33) unstable; urgency=low
+
+ * Enable ogg, vorbis, theora
+
+ -- Seungbae Shin <seungbae.shin@samsung.com> Fri, 12 Mar 2010 19:43:24 +0900
+
+gst-plugins-base0.10 (0.10.25-32) unstable; urgency=low
+
+ * Fix for H0100083919: Added "udta" box check in qt_type_find()
+
+ -- Prashanth Kumar D <prashanth.kd@samsung.com> Tue, 09 Mar 2010 22:54:51 +0530
+
+gst-plugins-base0.10 (0.10.25-31) unstable; urgency=low
+
+ * Fix: Version control problem for uploading 0.10.25-30
+
+ -- Heungsoon Rim <hs06.rim@samsung.com> Thu, 04 Mar 2010 10:29:11 +0900
+
+gst-plugins-base0.10 (0.10.25-30) unstable; urgency=low
+
+ * enable ac3 typefind
+
+ -- Heungsoon Rim <hs06.rim@samsung.com> Thu, 04 Mar 2010 10:18:21 +0900
+
+gst-plugins-base0.10 (0.10.25-29) unstable; urgency=low
+
+ * Update screen when in get aspect ratio changed in paused state
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Mon, 22 Feb 2010 17:27:03 +0900
+
+gst-plugins-base0.10 (0.10.25-28) unstable; urgency=low
+
+ * Fix border problem of xvimagesink
+
+ -- Wonhyung Cho <wh01.cho@samsung.com> Fri, 19 Feb 2010 20:34:03 +0900
+
+gst-plugins-base0.10 (0.10.25-27) unstable; urgency=low
+
+ * Repacking
+
+ -- Cho Ye Jin <cho.yejin@samsung.com> Tue, 02 Feb 2010 19:25:56 +0900
+
+gst-plugins-base0.10 (0.10.25-26) unstable; urgency=low
+
+ * Fix i686 build error
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Tue, 02 Feb 2010 17:37:52 +0900
+
+gst-plugins-base0.10 (0.10.25-25) unstable; urgency=low
+
+ * [xvimagesink] fix to update overlay when it exposed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Tue, 02 Feb 2010 17:06:02 +0900
+
+gst-plugins-base0.10 (0.10.25-24) unstable; urgency=low
+
+ * xvimagesink rotation jitter problem fixed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Fri, 29 Jan 2010 16:55:16 +0900
+
+gst-plugins-base0.10 (0.10.25-23) unstable; urgency=low
+
+ * Simulator Build Bug Fixed
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Sun, 24 Jan 2010 17:15:12 +0900
+
+gst-plugins-base0.10 (0.10.25-22) unstable; urgency=low
+
+ * multishot applies default value when it returns from review screen. default value changed(270ㅇ\E3\84 degree)
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Sun, 24 Jan 2010 16:45:00 +0900
+
+gst-plugins-base0.10 (0.10.25-21) unstable; urgency=low
+
+ * xvimagesink Cropped fullscreen and origin size blitting enabled
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Fri, 22 Jan 2010 16:24:08 +0900
+
+gst-plugins-base0.10 (0.10.25-20) unstable; urgency=low
+
+ * xvimagesink log bursting disabled
+
+ -- Kum Jun Seung <junseung.kum@samsung.com> Thu, 21 Jan 2010 21:13:35 +0900
+
+gst-plugins-base0.10 (0.10.25-19) unstable; urgency=low
+
+ * repacking
+
+ -- Cho Ye Jin <cho.yejin@samsung.com> Wed, 20 Jan 2010 14:06:26 +0900
+
+gst-plugins-base0.10 (0.10.25-18) unstable; urgency=low
+
+ * fix library link
+
+ -- Cho Ye Jin <cho.yejin@samsung.com> Wed, 20 Jan 2010 13:55:38 +0900
+
+gst-plugins-base0.10 (0.10.25-17) unstable; urgency=low
+
+ * fix dependency build error
+
+ -- Cho Ye Jin <cho.yejin@samsung.com> Sat, 16 Jan 2010 23:26:57 +0900
+
+gst-plugins-base0.10 (0.10.25-16) unstable; urgency=low
+
+ * enalbe subparse/pango and add properties to textrender
+
+ -- Cho Ye Jin <cho.yejin@samsung.com> Sat, 16 Jan 2010 23:26:17 +0900
+
+gst-plugins-base0.10 (0.10.25-15) unstable; urgency=low
+
+ * videorate enabled
+
+ -- Rahul Mittal <mittal.rahul@samsung.com> Wed, 13 Jan 2010 23:28:37 +0530
+
+gst-plugins-base0.10 (0.10.25-14) unstable; urgency=low
+
+ * xv image sink samsung extension on SDK build
+
+ -- root <sangho.g.park@samsung.com> Fri, 08 Jan 2010 19:31:56 +0900
+
+gst-plugins-base0.10 (0.10.25-13) unstable; urgency=low
+
+ * build error fix (header path)
+
+ -- root <sangho.g.park@samsung.com> Tue, 29 Dec 2009 15:28:26 +0900
+
+gst-plugins-base0.10 (0.10.25-12) unstable; urgency=low
+
+ * rotate check every frame
+
+ -- root <sangho.g.park@samsung.com> Tue, 29 Dec 2009 10:26:48 +0900
+
+gst-plugins-base0.10 (0.10.25-11) unstable; urgency=low
+
+ * xvimagesink rotation uses X Attribute
+
+ -- root <sangho.g.park@samsung.com> Tue, 29 Dec 2009 10:00:15 +0900
+
+gst-plugins-base0.10 (0.10.25-10) unstable; urgency=low
+
+ * xvimagesink can output to center well
+
+ -- root <sangho.g.park@samsung.com> Wed, 23 Dec 2009 21:36:05 +0900
+
+gst-plugins-base0.10 (0.10.25-9) unstable; urgency=low
+
+ * build integrity problem fixed
+
+ -- root <sangho.g.park@samsung.com> Tue, 22 Dec 2009 01:03:41 +0900
+
+gst-plugins-base0.10 (0.10.25-8) unstable; urgency=low
+
+ * dependency check code added
+
+ -- root <sangho.g.park@samsung.com> Tue, 22 Dec 2009 00:44:05 +0900
+
+gst-plugins-base0.10 (0.10.25-7) unstable; urgency=low
+
+ * libuuid dependency problem fixed
+
+ -- root <sangho.g.park@samsung.com> Tue, 22 Dec 2009 00:24:23 +0900
+
+gst-plugins-base0.10 (0.10.25-6) unstable; urgency=low
+
+ * solve build problem because of build integrity
+
+ -- root <sangho.g.park@samsung.com> Mon, 21 Dec 2009 23:17:43 +0900
+
+gst-plugins-base0.10 (0.10.25-5) unstable; urgency=low
+
+ * xvimagesink uses convention with XV-extension
+
+ -- root <sangho.g.park@samsung.com> Mon, 21 Dec 2009 21:25:44 +0900
+
+gst-plugins-base0.10 (0.10.25-4) unstable; urgency=low
+
+ * dummy update
+
+ -- root <sangho.g.park@samsung.com> Mon, 21 Dec 2009 21:25:02 +0900
+
+gst-plugins-base0.10 (0.10.25-3) unstable; urgency=low
+
+ * Removed libxt-dev version dependencies.
+
+ -- sangho park <sangho.g.park@samsung.com> Sat, 14 Nov 2009 11:28:00 +0900
+
+
+gst-plugins-base0.10 (0.10.25-2) unstable; urgency=low
+
+ * Removed dependencies.
+ - libmm-trace-service-dev
+ - libdata-networking-dev
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Fri, 13 Nov 2009 10:42:00 +0900
+
+gst-plugins-base0.10 (0.10.25-1) unstable; urgency=low
+
+ * Initial release.
+
+ -- Myungjae Lee <mjae.lee@samsung.com> Fri, 13 Nov 2009 10:14:00 +0900
Section: libs
Priority: optional
Maintainer: Shin Seung Bae <seungbae.shin@samsung.com>, JongHyuk Choi <jhchoi.choi@samsung.com>
-Uploaders: Cho Ye Jin <cho.yejin@samsung.com>, Kum Jun Seung <junseung.kum@samsung.com>, Wonhyung Cho <wh01.cho@samsung.com>, Heungsoon Rim <hs06.rim@samsung.com>, Prashanth Kumar D <prashanth.kd@samsung.com>, Ranjit Reddy B <b.ranjit@samsung.com>, Naveen Ch <naveen.ch@samsung.com>, Jeongmo Yang <jm80.yang@samsung.com>
-Build-Depends: libgstreamer0.10-dev (>= 0.10.22), libasound2-dev (>= 0.9.0) [alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], autotools-dev, debhelper (>= 5), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2), libxt-dev,liboil0.3-dev (>= 0.3.14), libglib2.0-dev (>= 2.15.2), libxml2-dev (>= 2.4.23), zlib1g-dev (>= 1:1.1.4), gstreamer0.10-tools (>= 0.10.14), libvorbis-dev, libogg-dev, libtheora-dev
+Uploaders: Cho Ye Jin <cho.yejin@samsung.com>, Hyunseok Lee <hs7388.lee@samsung.com>, Ranjit Reddy B <b.ranjit@samsung.com>, Naveen Ch <naveen.ch@samsung.com>, Jeongmo Yang <jm80.yang@samsung.com>
+Build-Depends: libgstreamer0.10-dev (>= 0.10.22), libasound2-dev (>= 0.9.0) [alpha amd64 arm armeb armel hppa i386 ia64 lpia m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc], autotools-dev, debhelper (>= 5), pkg-config (>= 0.11.0), libxv-dev (>= 6.8.2), libxt-dev,liboil0.3-dev (>= 0.3.14), libglib2.0-dev (>= 2.15.2), libxml2-dev (>= 2.4.23), zlib1g-dev (>= 1:1.1.4), gstreamer0.10-tools (>= 0.10.14), libvorbis-dev, libogg-dev, libtheora-dev, libpango1.0-dev
Standards-Version: 3.8.0
Package: gstreamer0.10-plugins-base-apps
usr/lib/gstreamer-0.10/libgstvorbis.so
usr/lib/gstreamer-0.10/libgsttheora.so
usr/lib/gstreamer-0.10/libgstadder.so
+usr/lib/gstreamer-0.10/libgstpango.so
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
-CONFIGURE_OPTION +=--prefix=/usr \
- --disable-static \
- --disable-nls \
- --with-html-dir=/tmp/dump \
- --disable-examples \
- --disable-audiorate \
- --disable-gdp \
- --disable-cdparanoia \
- --disable-gnome_vfs \
- --disable-libvisual \
- --disable-freetypetest \
- --disable-rpath \
- --disable-valgrind \
- --disable-gcov \
- --disable-gtk-doc \
- --disable-debug \
- --disable-pango \
- --with-audioresample-format=int
-
-CFLAGS += -Wall -g -fPIC \
- -DGST_EXT_TEXTRENDER_ENHANCEMENT \
- -DGST_EXT_XV_ENHANCEMENT
+CONFIGURE_OPTION +=--prefix=/usr \
+ --disable-static \
+ --disable-nls \
+ --with-html-dir=/tmp/dump \
+ --disable-examples \
+ --disable-audiorate \
+ --disable-gdp \
+ --disable-cdparanoia \
+ --disable-gnome_vfs \
+ --disable-libvisual \
+ --disable-freetypetest \
+ --disable-rpath \
+ --disable-valgrind \
+ --disable-gcov \
+ --disable-gtk-doc \
+ --disable-debug \
+ --with-audioresample-format=int
+
+CFLAGS += -Wall -g -fPIC \
+ -DGST_EXT_XV_ENHANCEMENT \
+ -DGST_EXT_LINK_FIMCCONVERT \
+ -DGST_EXT_MIME_TYPES
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
#! /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
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 <bug-automake@gnu.org>.
# 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
' < "$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"
;;
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.
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
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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:
Whenever new samples are to be put into the ringbuffer, the position of the
read pointer is taken. The required write position is taken and the diff
- is made between the required qnd actual position. If the defference is <0,
+ is made between the required and actual position. If the difference is <0,
the sample is too late. If the difference is bigger than segtotal, the
writing part has to wait for the play pointer to advance.
_ a GstTypeFindElement connected to the single sink pad
- _ optionnaly a demuxer/parser
+ _ optionally a demuxer/parser
- _ optionnaly one or more DecodeGroup
+ _ optionally one or more DecodeGroup
* Autoplugging
Get a list of elementfactories for @pad with @caps. This function is used to
instruct decodebin2 of the elements it should try to autoplug. The default
- behaviour when this function is not overridern is to get all elements that
+ behaviour when this function is not overriden is to get all elements that
can handle @caps from the registry sorted by rank.
- 'autoplug-select' :
Multiple input-output data queue
- The GstMultiQueue achieves the same functionnality as GstQueue, with a few
+ The GstMultiQueue achieves the same functionality as GstQueue, with a few
differences:
* Multiple streams handling.
controlled by the element. This means that a buffer cannot be pushed to a
non-linked pad any sooner than buffers in any other stream which were received
before it.
+
+
+=====================================
+ Parsers, decoders and auto-plugging
+=====================================
+
+This section has DRAFT status.
+
+Some media formats come in different "flavours" or "stream formats". These
+formats differ in the way the setup data and media data is signalled and/or
+packaged. An example for this is H.264 video, where there is a bytestream
+format (with codec setup data signalled inline and units prefixed by a sync
+code and packet length information) and a "raw" format where codec setup
+data is signalled out of band (via the caps) and the chunking is implicit
+in the way the buffers were muxed into a container, to mention just two of
+the possible variants.
+
+Especially on embedded platforms it is common that decoders can only
+handle one particular stream format, and not all of them.
+
+Where there are multiple stream formats, parsers are usually expected
+to be able to convert between the different formats. This will, if
+implemented correctly, work as expected in a static pipeline such as
+
+ ... ! parser ! decoder ! sink
+
+where the parser can query the decoder's capabilities even before
+processing the first piece of data, and configure itself to convert
+accordingly, if conversion is needed at all.
+
+In an auto-plugging context this is not so straight-forward though,
+because elements are plugged incrementally and not before the previous
+element has processes some data and decided what it will output exactly
+(unless the template caps are completely fixed, then it can continue
+right away, this is not always the case here though, see below). A
+parser will thus have to decide on *some* output format so auto-plugging
+can continue. It doesn't know anything about the available decoders and
+their capabilities though, so it's possible that it will choose a format
+that is not supported by any of the available decoders, or by the preferred
+decoder.
+
+If the parser had sufficiently concise but fixed source pad template caps,
+decodebin could continue to plug a decoder right away, allowing the
+parser to configure itself in the same way as it would with a static
+pipeline. This is not an option, unfortunately, because often the
+parser needs to process some data to determine e.g. the format's profile or
+other stream properties (resolution, sample rate, channel configuration, etc.),
+and there may be different decoders for different profiles (e.g. DSP codec
+for baseline profile, and software fallback for main/high profile; or a DSP
+codec only supporting certain resolutions, with a software fallback for
+unusual resolutions). So if decodebin just plugged the most highest-ranking
+decoder, that decoder might not be be able to handle the actual stream later
+on, which would yield an error (this is a data flow error then which would
+be hard to intercept and avoid in decodebin). In other words, we can't solve
+this issue by plugging a decoder right away with the parser.
+
+So decodebin needs to communicate to the parser the set of available decoder
+caps (which would contain the relevant capabilities/restrictions such as
+supported profiles, resolutions, etc.), after the usual "autoplug-*" signal
+filtering/sorting of course.
+
+This is done by plugging a capsfilter element right after the parser, and
+constructing set of filter caps from the list of available decoders (one
+appends at the end just the name(s) of the caps structures from the parser
+pad template caps to function as an 'ANY other' caps equivalent). This let
+the parser negotiate to a supported stream format in the same way as with
+the static pipeline mentioned above, but of course incur some overhead
+through the additional capsfilter element.
+
* Duplication of pipeline code for gstreamer-based applications
wishing to encode and or mux streams, leading to subtle differences
- and inconsistencies accross those applications.
+ and inconsistencies across those applications.
* No unified system for describing encoding targets for applications
in a user-friendly way.
* No unified system for creating encoding targets for applications,
- resulting in duplication of code accross all applications,
+ resulting in duplication of code across all applications,
differences and inconsistencies that come with that duplication,
and applications hardcoding element names and settings resulting in
poor portability.
quantizing configuration, and output format, a Orc code generator
would create an OrcProgram, add the appropriate instructions to do
each step based on the configuration, and then compile the program.
-Sucessfully compiling the program would return a function pointer
+Successfully compiling the program would return a function pointer
that can be called to perform the operation.
This sort of advanced usage requires structural changes to current
the existing file we are writing to and start writing to a new file.
We want the new file to start with a keyframe so that one can start decoding
- the file immediatly.
+ the file immediately.
Components:
Purpose:
- Provide an standarized generic way to introduce Video Acceleration APIs in
+ Provide an standardized generic way to introduce Video Acceleration APIs in
already available elements instead of duplicating those into specialized ones.
Provide a mechanism for a light GstBuffer subclassing in order to be able
video/x-raw-va
- Light subclassing embeding an structure in the data field of a standard
+ Light subclassing embedding an structure in the data field of a standard
GstBuffer.
struct {
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)/gst-libs/gst
-DOC_BUILD_DIR=$(top_builddir)/gst-libs/gst
# Extra options to supply to gtkdoc-scan.
SCAN_OPTIONS=--deprecated-guards="GST_DISABLE_DEPRECATED"
-# FIXME :
-# there's something wrong with gstreamer-sections.txt not being in the dist
-# maybe it doesn't resolve; we're adding it below for now
-#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE)
-
# Extra options to supply to gtkdoc-mkdb.
MKDB_OPTIONS=--sgml-mode --output-format=xml
--extra-dir=$(GST_PREFIX)/share/gtk-doc/html
# Used for dependencies.
-HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*.h
-CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*.c
-
-# this is a wingo addition
-# thomasvs: another nice wingo addition would be an explanation on why
-# this is useful ;)
-
-SCANOBJ_DEPS = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la
+HFILE_GLOB=$(top_srcdir)/gst-libs/gst/*/*.h
+CFILE_GLOB=$(top_srcdir)/gst-libs/gst/*/*.c
# Header files to ignore when scanning.
-IGNORE_HFILES = pbutils-private.h
+IGNORE_HFILES = pbutils-private.h gsttageditingprivate.h id3v2.h \
+ kiss_fft_f32.h kiss_fft_f64.h kiss_fftr_f32.h kiss_fftr_f64.h \
+ kiss_fftr_s16.h kiss_fftr_s32.h kiss_fft_s16.h kiss_fft_s32.h \
+ _kiss_fft_guts_f32.h _kiss_fft_guts_f64.h _kiss_fft_guts_s16.h \
+ _kiss_fft_guts_s16.h _kiss_fft_guts_s32.h _kiss_fft_guts_s32.h \
+ interfaces-marshal.h pbutils-marshal.h
+
# Images to copy into HTML directory.
HTML_IMAGES =
# 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_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
-GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
+GTKDOC_LIBS = \
+ $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+ $(GST_BASE_LIBS)
GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC)
GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC)
# If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES =
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
include $(top_srcdir)/common/gtk-doc.mak
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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)/gst-libs/gst
-DOC_BUILD_DIR = $(top_builddir)/gst-libs/gst
# Extra options to supply to gtkdoc-scan.
SCAN_OPTIONS = --deprecated-guards="GST_DISABLE_DEPRECATED"
-# FIXME :
-# there's something wrong with gstreamer-sections.txt not being in the dist
-# maybe it doesn't resolve; we're adding it below for now
-#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE)
-
# Extra options to supply to gtkdoc-mkdb.
MKDB_OPTIONS = --sgml-mode --output-format=xml
# Used for dependencies.
-HFILE_GLOB = $(DOC_SOURCE_DIR)/*/*.h
-CFILE_GLOB = $(DOC_SOURCE_DIR)/*/*.c
-
-# this is a wingo addition
-# thomasvs: another nice wingo addition would be an explanation on why
-# this is useful ;)
-SCANOBJ_DEPS = \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la
-
+HFILE_GLOB = $(top_srcdir)/gst-libs/gst/*/*.h
+CFILE_GLOB = $(top_srcdir)/gst-libs/gst/*/*.c
# Header files to ignore when scanning.
-IGNORE_HFILES = pbutils-private.h
+IGNORE_HFILES = pbutils-private.h gsttageditingprivate.h id3v2.h \
+ kiss_fft_f32.h kiss_fft_f64.h kiss_fftr_f32.h kiss_fftr_f64.h \
+ kiss_fftr_s16.h kiss_fftr_s32.h kiss_fft_s16.h kiss_fft_s32.h \
+ _kiss_fft_guts_f32.h _kiss_fft_guts_f64.h _kiss_fft_guts_s16.h \
+ _kiss_fft_guts_s16.h _kiss_fft_guts_s32.h _kiss_fft_guts_s32.h \
+ interfaces-marshal.h pbutils-marshal.h
+
# Images to copy into HTML directory.
HTML_IMAGES =
# 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_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS)
-GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS)
+GTKDOC_LIBS = \
+ $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/cdda/libgstcdda-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/rtp/libgstrtp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/rtsp/libgstrtsp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/sdp/libgstsdp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+ $(GST_BASE_LIBS)
+
GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC)
GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC)
# If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES =
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
# thomas: copied from glib-2
# We set GPATH here; this gives us semantics for GNU make
scan-build.stamp \
sgml-build.stamp \
html-build.stamp \
- setup.stamp \
sgml.stamp \
html.stamp
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.mak:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
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:
#### setup ####
-@ENABLE_GTK_DOC_TRUE@setup.stamp: $(content_files)
+@ENABLE_GTK_DOC_TRUE@setup-build.stamp: $(content_files)
@ENABLE_GTK_DOC_TRUE@ -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \
-@ENABLE_GTK_DOC_TRUE@ cp -p $(abs_srcdir)/$(DOC_MAIN_SGML_FILE) \
-@ENABLE_GTK_DOC_TRUE@ $(abs_srcdir)/$(DOC_MODULE)-overrides.txt \
-@ENABLE_GTK_DOC_TRUE@ $(abs_srcdir)/$(DOC_MODULE)-sections.txt \
-@ENABLE_GTK_DOC_TRUE@ $(abs_srcdir)/$(DOC_MODULE).types \
-@ENABLE_GTK_DOC_TRUE@ $(abs_builddir)/; \
-@ENABLE_GTK_DOC_TRUE@ if test "x$(content_files)" != "x" ; then \
-@ENABLE_GTK_DOC_TRUE@ for file in $(content_files) ; do \
-@ENABLE_GTK_DOC_TRUE@ test -f $(abs_srcdir)/$$file || \
-@ENABLE_GTK_DOC_TRUE@ cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \
-@ENABLE_GTK_DOC_TRUE@ done \
-@ENABLE_GTK_DOC_TRUE@ fi \
+@ENABLE_GTK_DOC_TRUE@ echo ' DOC Preparing build'; \
+@ENABLE_GTK_DOC_TRUE@ files=`echo $(DOC_MAIN_SGML_FILE) $(DOC_OVERRIDES) $(DOC_MODULE)-sections.txt $(DOC_MODULE).types $(content_files)`; \
+@ENABLE_GTK_DOC_TRUE@ if test "x$$files" != "x" ; then \
+@ENABLE_GTK_DOC_TRUE@ for file in $$files ; do \
+@ENABLE_GTK_DOC_TRUE@ test -f $(abs_srcdir)/$$file && \
+@ENABLE_GTK_DOC_TRUE@ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \
+@ENABLE_GTK_DOC_TRUE@ done; \
+@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ touch setup.stamp
+@ENABLE_GTK_DOC_TRUE@ @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
@ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
-@ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning header files ***'
-@ENABLE_GTK_DOC_TRUE@ if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; \
-@ENABLE_GTK_DOC_TRUE@ then \
+@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Scanning header files'
+@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} \
+@ENABLE_GTK_DOC_TRUE@ --ignore-headers="$(IGNORE_HFILES)"
+@ENABLE_GTK_DOC_TRUE@ @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; then \
+@ENABLE_GTK_DOC_TRUE@ echo " DOC Introspecting gobjects"; \
@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \
@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_PATH= \
@ENABLE_GTK_DOC_TRUE@ GST_REGISTRY=doc-registry.xml \
@ENABLE_GTK_DOC_TRUE@ test -f $$i || touch $$i ; \
@ENABLE_GTK_DOC_TRUE@ done \
@ENABLE_GTK_DOC_TRUE@ fi
-@ENABLE_GTK_DOC_TRUE@ if test "x$(top_srcdir)" != "x$(top_builddir)"; \
-@ENABLE_GTK_DOC_TRUE@ then \
-@ENABLE_GTK_DOC_TRUE@ export BUILT_OPTIONS="--source-dir=$(DOC_BUILD_DIR)"; \
-@ENABLE_GTK_DOC_TRUE@ fi; \
-@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@ $$BUILT_OPTIONS \
-@ENABLE_GTK_DOC_TRUE@ --ignore-headers="$(IGNORE_HFILES)"
-@ENABLE_GTK_DOC_TRUE@ touch scan-build.stamp
+@ENABLE_GTK_DOC_TRUE@ @touch scan-build.stamp
@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
@ENABLE_GTK_DOC_TRUE@ @true
#### xml ####
-### FIXME: make this error out again when docs are complete
-@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
-@ENABLE_GTK_DOC_TRUE@ @echo '*** Building XML ***'
-@ENABLE_GTK_DOC_TRUE@ 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
-@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@sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
+@ENABLE_GTK_DOC_TRUE@ @echo ' DOC Building XML'
+@ENABLE_GTK_DOC_TRUE@ @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)
+@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
#### 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@ @echo ' DOC Building HTML'
@ENABLE_GTK_DOC_TRUE@ @rm -rf html
@ENABLE_GTK_DOC_TRUE@ @mkdir html
-@ENABLE_GTK_DOC_TRUE@ cp -pr xml html
-@ENABLE_GTK_DOC_TRUE@ cp ../version.entities ./
+@ENABLE_GTK_DOC_TRUE@ @cp -pr xml html
+@ENABLE_GTK_DOC_TRUE@ @cp ../version.entities ./
@ENABLE_GTK_DOC_TRUE@ @mkhtml_options=""; \
-@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
+@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@ @gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \
@ENABLE_GTK_DOC_TRUE@ if test "$(?)" = "0"; then \
@ENABLE_GTK_DOC_TRUE@ mkhtml_options=--path="$(abs_srcdir)"; \
@ENABLE_GTK_DOC_TRUE@ fi; \
@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $$mkhtml_options $(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 -rf html/xml
-@ENABLE_GTK_DOC_TRUE@ rm -f version.entities
-@ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
-@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@ @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 -rf html/xml
+@ENABLE_GTK_DOC_TRUE@ @rm -f version.entities
+@ENABLE_GTK_DOC_TRUE@ @test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html )
+@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 $(DOC_MODULE).types; \
@ENABLE_GTK_DOC_TRUE@ fi
@ENABLE_GTK_DOC_FALSE@all-local:
@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 -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
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; \
</para>
<xi:include href="xml/gstaudio.xml" />
<xi:include href="xml/gstaudioclock.xml" />
+ <xi:include href="xml/gstaudiodecoder.xml" />
+ <xi:include href="xml/gstaudioencoder.xml" />
<xi:include href="xml/gstaudiofilter.xml" />
<xi:include href="xml/gstaudiomixerutils.xml" />
<xi:include href="xml/gstaudiosink.xml" />
<xi:include href="xml/gstbaseaudiosrc.xml" />
<xi:include href="xml/gstmultichannel.xml" />
<xi:include href="xml/gstringbuffer.xml" />
+ <xi:include href="xml/gstaudioiec61937.xml" />
</chapter>
<chapter id="gstreamer-cdda">
<xi:include href="xml/gsttag.xml" />
<xi:include href="xml/gsttagvorbis.xml" />
<xi:include href="xml/gsttagid3.xml" />
+ <xi:include href="xml/gsttagexif.xml" />
<xi:include href="xml/gsttagxmp.xml" />
+ <xi:include href="xml/gsttagxmpwriter.xml" />
<xi:include href="xml/gsttagdemux.xml" />
+ <xi:include href="xml/gsttagmux.xml" />
<xi:include href="xml/gsttaglanguagecodes.xml" />
+ <xi:include href="xml/gsttaglicenses.xml" />
</chapter>
<chapter id="gstreamer-base-utils">
flags.
</para>
<xi:include href="xml/gstpbutils.xml" />
+ <xi:include href="xml/gstpluginsbaseversion.xml" />
<xi:include href="xml/gstpbutilscodecutils.xml" />
<xi:include href="xml/gstpbutilsdescriptions.xml" />
<xi:include href="xml/gstpbutilsmissingplugins.xml" />
<filename>-lgstvideo-&GST_MAJORMINOR;</filename> to the library flags.
</para>
<xi:include href="xml/gstvideo.xml" />
+ <xi:include href="xml/gstvideooverlaycomposition.xml" />
<xi:include href="xml/gstvideofilter.xml" />
<xi:include href="xml/gstvideosink.xml" />
</chapter>
<FILE>gstappsrc</FILE>
<TITLE>appsrc</TITLE>
<INCLUDE>gst/app/gstappsrc.h</INCLUDE>
-GstAppSrc
GstAppStreamType
gst_app_src_set_caps
gst_app_src_get_caps
GST_IS_APP_BUFFER
GST_IS_APP_BUFFER_CLASS
GST_TYPE_APP_BUFFER
+GST_TYPE_APP_STREAM_TYPE
+gst_app_stream_type_get_type
<SUBSECTION Private>
+GstAppSrc
GstAppSrcPrivate
GstAppBuffer
GstAppBufferClass
<FILE>gstappsink</FILE>
<TITLE>appsink</TITLE>
<INCLUDE>gst/app/gstappsink.h</INCLUDE>
-GstAppSink
gst_app_sink_set_caps
gst_app_sink_get_caps
gst_app_sink_is_eos
GstAppSinkCallbacks
gst_app_sink_set_callbacks
<SUBSECTION Standard>
+GstAppSink
GstAppSinkPrivate
GstAppSinkClass
GST_APP_SINK
<SECTION>
<FILE>gstaudio</FILE>
<INCLUDE>gst/audio/audio.h</INCLUDE>
+GstAudioFlags
+GstAudioFormat
+GstAudioFormatFlags
+GstAudioFormatInfo
+GstAudioInfo
+gst_audio_info_init
+gst_audio_info_clear
+gst_audio_info_copy
+gst_audio_info_free
+gst_audio_info_from_caps
+gst_audio_info_to_caps
+gst_audio_info_convert
+gst_audio_format_get_info
+GST_AUDIO_FORMAT_INFO_DEPTH
+GST_AUDIO_FORMAT_INFO_ENDIANNESS
+GST_AUDIO_FORMAT_INFO_FLAGS
+GST_AUDIO_FORMAT_INFO_FORMAT
+GST_AUDIO_FORMAT_INFO_IS_FLOAT
+GST_AUDIO_FORMAT_INFO_IS_INTEGER
+GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN
+GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN
+GST_AUDIO_FORMAT_INFO_IS_SIGNED
+GST_AUDIO_FORMAT_INFO_NAME
+GST_AUDIO_FORMAT_INFO_WIDTH
+GST_AUDIO_INFO_BPF
+GST_AUDIO_INFO_BPS
+GST_AUDIO_INFO_CHANNELS
+GST_AUDIO_INFO_DEPTH
+GST_AUDIO_INFO_FLAGS
+GST_AUDIO_INFO_FORMAT
+GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS
+GST_AUDIO_INFO_NAME
+GST_AUDIO_INFO_POSITION
+GST_AUDIO_INFO_RATE
+GST_AUDIO_INFO_WIDTH
+
GstAudioFieldFlag
GST_FRAMES_TO_CLOCK_TIME
GST_CLOCK_TIME_TO_FRAMES
GST_TYPE_BUFFER_FORMAT_TYPE
gst_buffer_format_get_type
gst_buffer_format_type_get_type
+<SUBSECTION Private>
+_GST_AUDIO_FORMAT_NE
</SECTION>
<SECTION>
</SECTION>
<SECTION>
+<FILE>gstaudiodecoder</FILE>
+<INCLUDE>gst/audio/gstaudiodecoder.h</INCLUDE>
+GstAudioDecoder
+GstAudioDecoderClass
+GST_AUDIO_DECODER_ERROR
+GST_AUDIO_DECODER_SINK_NAME
+GST_AUDIO_DECODER_SINK_PAD
+GST_AUDIO_DECODER_SRC_NAME
+GST_AUDIO_DECODER_SRC_PAD
+gst_audio_decoder_finish_frame
+gst_audio_decoder_get_audio_info
+gst_audio_decoder_get_byte_time
+gst_audio_decoder_get_delay
+gst_audio_decoder_get_drainable
+gst_audio_decoder_get_latency
+gst_audio_decoder_get_max_errors
+gst_audio_decoder_get_min_latency
+gst_audio_decoder_get_needs_format
+gst_audio_decoder_get_parse_state
+gst_audio_decoder_get_plc
+gst_audio_decoder_get_plc_aware
+gst_audio_decoder_get_tolerance
+gst_audio_decoder_set_byte_time
+gst_audio_decoder_set_drainable
+gst_audio_decoder_set_latency
+gst_audio_decoder_set_max_errors
+gst_audio_decoder_set_min_latency
+gst_audio_decoder_set_needs_format
+gst_audio_decoder_set_plc
+gst_audio_decoder_set_plc_aware
+gst_audio_decoder_set_tolerance
+<SUBSECTION Standard>
+GST_AUDIO_DECODER
+GST_IS_AUDIO_DECODER
+GST_TYPE_AUDIO_DECODER
+gst_audio_decoder_get_type
+GST_AUDIO_DECODER_CLASS
+GST_IS_AUDIO_DECODER_CLASS
+GST_AUDIO_DECODER_GET_CLASS
+GstAudioDecoderPrivate
+</SECTION>
+
+<SECTION>
+<FILE>gstaudioencoder</FILE>
+<INCLUDE>gst/audio/gstaudioencoder.h</INCLUDE>
+GstAudioEncoder
+GstAudioEncoderClass
+GST_AUDIO_ENCODER_SEGMENT
+GST_AUDIO_ENCODER_SINK_NAME
+GST_AUDIO_ENCODER_SINK_PAD
+GST_AUDIO_ENCODER_SRC_NAME
+GST_AUDIO_ENCODER_SRC_PAD
+gst_audio_encoder_finish_frame
+gst_audio_encoder_get_audio_info
+gst_audio_encoder_get_drainable
+gst_audio_encoder_get_frame_max
+gst_audio_encoder_get_frame_samples_min
+gst_audio_encoder_get_frame_samples_max
+gst_audio_encoder_get_hard_min
+gst_audio_encoder_get_hard_resync
+gst_audio_encoder_get_latency
+gst_audio_encoder_get_lookahead
+gst_audio_encoder_get_mark_granule
+gst_audio_encoder_get_perfect_timestamp
+gst_audio_encoder_get_tolerance
+gst_audio_encoder_proxy_getcaps
+gst_audio_encoder_set_drainable
+gst_audio_encoder_set_frame_max
+gst_audio_encoder_set_frame_samples_min
+gst_audio_encoder_set_frame_samples_max
+gst_audio_encoder_set_hard_min
+gst_audio_encoder_set_hard_resync
+gst_audio_encoder_set_latency
+gst_audio_encoder_set_lookahead
+gst_audio_encoder_set_mark_granule
+gst_audio_encoder_set_perfect_timestamp
+gst_audio_encoder_set_tolerance
+<SUBSECTION Standard>
+GST_AUDIO_ENCODER
+GST_AUDIO_ENCODER_CAST
+GST_IS_AUDIO_ENCODER
+GST_TYPE_AUDIO_ENCODER
+gst_audio_encoder_get_type
+GST_AUDIO_ENCODER_CLASS
+GST_IS_AUDIO_ENCODER_CLASS
+GST_AUDIO_ENCODER_GET_CLASS
+GstAudioEncoderPrivate
+</SECTION>
+
+<SECTION>
<FILE>gstaudiofilter</FILE>
<INCLUDE>gst/audio/gstaudiofilter.h</INCLUDE>
GstAudioFilter
gst_ring_buffer_debug_spec_caps
</SECTION>
+<SECTION>
+<FILE>gstaudioiec61937</FILE>
+<INCLUDE>gst/audio/gstaudioiec61937.h</INCLUDE>
+gst_audio_iec61937_frame_size
+gst_audio_iec61937_payload
+</SECTION>
+
# cdda
<INCLUDE>gst/floatcast/floatcast.h</INCLUDE>
gst_cast_double
gst_cast_float
+<SUBSECTION Standard>
+inline
</SECTION>
<SECTION>
<FILE>gstriff</FILE>
<INCLUDE>gst/riff/riff-media.h</INCLUDE>
+gst_riff_create_audio_caps
+gst_riff_create_audio_template_caps
+gst_riff_create_iavs_caps
+gst_riff_create_iavs_template_caps
+gst_riff_create_video_caps
+gst_riff_create_video_template_caps
+gst_riff_init
+gst_riff_parse_chunk
+gst_riff_parse_file_header
+gst_riff_parse_info
+gst_riff_parse_strf_auds
+gst_riff_parse_strf_iavs
+gst_riff_parse_strf_vids
+gst_riff_parse_strh
+gst_riff_read_chunk
+<SUBSECTION Standard>
GST_RIFF_00
GST_RIFF_0021
GST_RIFF_0031
GST_RIFF_yv12
gst_riff_acid
-gst_riff_create_audio_caps
-gst_riff_create_audio_template_caps
-gst_riff_create_iavs_caps
-gst_riff_create_iavs_template_caps
-gst_riff_create_video_caps
-gst_riff_create_video_template_caps
gst_riff_dmlh
gst_riff_index_entry
-gst_riff_init
-gst_riff_parse_chunk
-gst_riff_parse_file_header
-gst_riff_parse_info
-gst_riff_parse_strf_auds
-gst_riff_parse_strf_iavs
-gst_riff_parse_strf_vids
-gst_riff_parse_strh
-gst_riff_read_chunk
gst_riff_strf_auds
gst_riff_strf_iavs
gst_riff_strf_vids
gst_riff_strh
-<SUBSECTION Standard>
</SECTION>
<FILE>gstrtspdefs</FILE>
<INCLUDE>gst/rtsp/gstrtspdefs.h</INCLUDE>
GST_RTSP_CHECK
+GST_RTSP_AUTH_MAX
GstRTSPEvent
GstRTSPResult
GstRTSPFamily
GstRTSPVersion
GstRTSPMethod
GstRTSPAuthMethod
-GST_RTSP_AUTH_MAX
GstRTSPHeaderField
GstRTSPStatusCode
gst_rtsp_strresult
GST_TAG_CAPTURING_FLASH_MODE
GST_TAG_CAPTURING_METERING_MODE
GST_TAG_CAPTURING_SOURCE
+GST_TAG_CAPTURING_EXPOSURE_COMPENSATION
GST_TAG_IMAGE_HORIZONTAL_PPI
GST_TAG_IMAGE_VERTICAL_PPI
+GST_TAG_ID3V2_HEADER_SIZE
gst_tag_register_musicbrainz_tags
gst_tag_freeform_string_to_utf8
gst_tag_parse_extended_comment
gst_tag_from_id3_user_tag
gst_tag_to_id3_tag
gst_tag_list_add_id3_image
+gst_tag_get_id3v2_tag_size
+gst_tag_list_from_id3v2_tag
</SECTION>
<SECTION>
<INCLUDE>gst/tag/tag.h</INCLUDE>
gst_tag_list_from_xmp_buffer
gst_tag_list_to_xmp_buffer
+gst_tag_list_to_xmp_buffer_full
+gst_tag_xmp_list_schemas
<SUBSECTION Standard>
</SECTION>
</SECTION>
<SECTION>
+<FILE>gsttagmux</FILE>
+<INCLUDE>gst/tag/gsttagmux.h</INCLUDE>
+GstTagMux
+GstTagMuxClass
+<SUBSECTION Standard>
+GstTagMuxPrivate
+GST_IS_TAG_MUX
+GST_IS_TAG_MUX_CLASS
+GST_TAG_MUX
+GST_TAG_MUX_CLASS
+GST_TYPE_TAG_MUX
+gst_tag_mux_get_type
+</SECTION>
+
+<SECTION>
<FILE>gsttaglanguagecodes</FILE>
<INCLUDE>gst/tag/tag.h</INCLUDE>
-<SUBSECTION>
gst_tag_get_language_codes
gst_tag_get_language_name
gst_tag_get_language_code
gst_tag_get_language_code_iso_639_2T
</SECTION>
+<SECTION>
+<FILE>gsttaglicenses</FILE>
+<INCLUDE>gst/tag/tag.h</INCLUDE>
+GstTagLicenseFlags
+gst_tag_get_license_flags
+gst_tag_get_license_nick
+gst_tag_get_license_title
+gst_tag_get_license_description
+gst_tag_get_license_jurisdiction
+gst_tag_get_license_version
+gst_tag_get_licenses
+<SUBSECTION Standard>
+gst_tag_license_flags_get_type
+</SECTION>
+
+<SECTION>
+<FILE>gsttagxmpwriter</FILE>
+gst_tag_xmp_writer_add_all_schemas
+gst_tag_xmp_writer_add_schema
+gst_tag_xmp_writer_has_schema
+gst_tag_xmp_writer_remove_schema
+gst_tag_xmp_writer_remove_all_schemas
+gst_tag_xmp_writer_tag_list_to_xmp_buffer
+<SUBSECTION Standard>
+GstTagXmpWriter
+GstTagXmpWriterInterface
+GST_TYPE_TAG_XMP_WRITER
+GST_TAG_XMP_WRITER
+GST_TAG_XMP_WRITER_INTERFACE
+GST_IS_TAG_XMP_WRITER
+GST_IS_TAG_XMP_WRITER_INTERFACE
+GST_TAG_XMP_WRITER_GET_INTERFACE
+gst_tag_xmp_writer_get_type
+</SECTION>
+
# base utils
<SECTION>
<INCLUDE>gst/pbutils/pbutils.h</INCLUDE>
<SUBSECTION>
gst_pb_utils_init
+</SECTION>
+
+<SECTION>
+<FILE>gstpluginsbaseversion</FILE>
+<INCLUDE>gst/pbutils/gstpluginsbaseversion.h</INCLUDE>
<SUBSECTION>
GST_PLUGINS_BASE_VERSION_MAJOR
GST_PLUGINS_BASE_VERSION_MINOR
gst_codec_utils_h264_get_profile
gst_codec_utils_h264_get_level
gst_codec_utils_h264_caps_set_level_and_profile
+gst_codec_utils_h264_get_level_idc
<SUBSECTION>
gst_codec_utils_mpeg4video_get_profile
gst_codec_utils_mpeg4video_get_level
gst_encoding_profile_unref
gst_encoding_profile_ref
gst_encoding_profile_find
+gst_encoding_profile_from_discoverer
gst_encoding_profile_get_name
gst_encoding_profile_get_description
gst_encoding_profile_get_format
GST_VIDEO_CAPS_RGB8_PALETTED
GST_VIDEO_CAPS_GRAY8
GST_VIDEO_CAPS_GRAY16
+GST_VIDEO_CAPS_ARGB_64
+GST_VIDEO_CAPS_r210
+GST_VIDEO_COMP1_MASK_15
+GST_VIDEO_COMP1_MASK_15_INT
+GST_VIDEO_COMP1_MASK_16
+GST_VIDEO_COMP1_MASK_16_INT
+GST_VIDEO_COMP2_MASK_15
+GST_VIDEO_COMP2_MASK_15_INT
+GST_VIDEO_COMP2_MASK_16
+GST_VIDEO_COMP2_MASK_16_INT
+GST_VIDEO_COMP3_MASK_15
+GST_VIDEO_COMP3_MASK_15_INT
+GST_VIDEO_COMP3_MASK_16
+GST_VIDEO_COMP3_MASK_16_INT
GST_VIDEO_FPS_RANGE
GST_VIDEO_GREEN_MASK_15
GST_VIDEO_GREEN_MASK_15_INT
GST_VIDEO_BUFFER_TFF
GST_VIDEO_BUFFER_RFF
GST_VIDEO_BUFFER_ONEFIELD
+GST_VIDEO_BUFFER_PROGRESSIVE
GstVideoFormat
gst_video_calculate_display_ratio
gst_video_frame_rate
gst_video_get_size
+gst_video_get_size_from_caps
gst_video_format_convert
gst_video_format_new_caps
gst_video_format_new_caps_interlaced
+gst_video_format_new_template_caps
gst_video_format_get_component_height
gst_video_format_get_component_offset
gst_video_format_get_component_width
+gst_video_format_get_component_depth
gst_video_format_get_pixel_stride
gst_video_format_get_row_stride
gst_video_format_get_size
gst_video_convert_frame_async
gst_video_event_new_still_frame
gst_video_event_parse_still_frame
+gst_video_event_new_upstream_force_key_unit
+gst_video_event_new_downstream_force_key_unit
+gst_video_event_is_force_key_unit
+gst_video_event_parse_upstream_force_key_unit
+gst_video_event_parse_downstream_force_key_unit
<SUBSECTION Standard>
gst_video_format_get_type
GST_TYPE_VIDEO_FORMAT
</SECTION>
<SECTION>
+<FILE>gstvideooverlaycomposition</FILE>
+<INCLUDE>gst/video/video-overlay-composition.h</INCLUDE>
+<SUBSECTION composition>
+GstVideoOverlayComposition
+GstVideoOverlayCompositionClass
+gst_video_overlay_composition_new
+gst_video_overlay_composition_ref
+gst_video_overlay_composition_unref
+gst_video_overlay_composition_add_rectangle
+gst_video_overlay_composition_n_rectangles
+gst_video_overlay_composition_get_rectangle
+gst_video_overlay_composition_get_seqnum
+gst_video_overlay_composition_copy
+gst_video_overlay_composition_make_writable
+gst_video_overlay_composition_blend
+<SUBSECTION composition-set-get>
+gst_video_buffer_get_overlay_composition
+gst_video_buffer_set_overlay_composition
+<SUBSECTION rectangle>
+GstVideoOverlayFormatFlags
+GstVideoOverlayRectangle
+GstVideoOverlayRectangleClass
+gst_video_overlay_rectangle_new_argb
+gst_video_overlay_rectangle_ref
+gst_video_overlay_rectangle_unref
+gst_video_overlay_rectangle_get_pixels_argb
+gst_video_overlay_rectangle_get_pixels_unscaled_argb
+gst_video_overlay_rectangle_get_render_rectangle
+gst_video_overlay_rectangle_get_seqnum
+gst_video_overlay_rectangle_set_render_rectangle
+gst_video_overlay_rectangle_copy
+<SUBSECTION Standard>
+GST_TYPE_VIDEO_OVERLAY_COMPOSITION
+GST_VIDEO_OVERLAY_COMPOSITION
+GST_VIDEO_OVERLAY_COMPOSITION_CLASS
+GST_VIDEO_OVERLAY_COMPOSITION_GET_CLASS
+GST_IS_VIDEO_OVERLAY_COMPOSITION
+GST_IS_VIDEO_VIDEO_OVERLAY_COMPOSITION_CLASS
+gst_video_overlay_composition_get_type
+
+GST_TYPE_VIDEO_OVERLAY_RECTANGLE
+GST_VIDEO_OVERLAY_RECTANGLE
+GST_VIDEO_OVERLAY_RECTANGLE_CLASS
+GST_VIDEO_OVERLAY_RECTANGLE_GET_CLASS
+GST_IS_VIDEO_OVERLAY_RECTANGLE
+GST_IS_VIDEO_VIDEO_OVERLAY_RECTANGLE_CLASS
+gst_video_overlay_rectangle_get_type
+</SECTION>
+
+<SECTION>
<FILE>gstvideofilter</FILE>
<INCLUDE>gst/video/gstvideofilter.h</INCLUDE>
GstVideoFilter
GstDiscovererContainerInfo
GstDiscovererAudioInfo
GstDiscovererVideoInfo
+GstDiscovererSubtitleInfo
gst_discoverer_stream_info_get_caps
gst_discoverer_stream_info_get_misc
gst_discoverer_stream_info_get_next
gst_discoverer_info_get_audio_streams
gst_discoverer_info_get_container_streams
gst_discoverer_info_get_streams
+gst_discoverer_info_get_subtitle_streams
gst_discoverer_info_get_video_streams
gst_discoverer_audio_info_get_bitrate
gst_discoverer_audio_info_get_channels
gst_discoverer_audio_info_get_depth
+gst_discoverer_audio_info_get_language
gst_discoverer_audio_info_get_max_bitrate
gst_discoverer_audio_info_get_sample_rate
gst_discoverer_container_info_get_streams
+gst_discoverer_subtitle_info_get_language
gst_discoverer_video_info_get_bitrate
gst_discoverer_video_info_get_depth
gst_discoverer_video_info_get_framerate_denom
GST_DISCOVERER_INFO
GST_DISCOVERER_STREAM_INFO
GST_DISCOVERER_VIDEO_INFO
+GST_DISCOVERER_SUBTITLE_INFO
GST_IS_DISCOVERER
GST_IS_DISCOVERER_INFO
GST_IS_DISCOVERER_AUDIO_INFO
GST_IS_DISCOVERER_CONTAINER_INFO
GST_IS_DISCOVERER_STREAM_INFO
GST_IS_DISCOVERER_VIDEO_INFO
+GST_IS_DISCOVERER_SUBTITLE_INFO
GST_TYPE_DISCOVERER
GST_TYPE_DISCOVERER_AUDIO_INFO
GST_TYPE_DISCOVERER_CONTAINER_INFO
GST_TYPE_DISCOVERER_RESULT
GST_TYPE_DISCOVERER_STREAM_INFO
GST_TYPE_DISCOVERER_VIDEO_INFO
+GST_TYPE_DISCOVERER_SUBTITLE_INFO
GstDiscovererAudioInfoClass
GstDiscovererClass
GstDiscovererContainerInfoClass
GstDiscovererPrivate
GstDiscovererStreamInfoClass
GstDiscovererVideoInfoClass
+GstDiscovererSubtitleInfoClass
GstDiscovererInfoClass
gst_discoverer_audio_info_get_type
gst_discoverer_container_info_get_type
gst_discoverer_info_copy
gst_discoverer_result_get_type
gst_discoverer_stream_info_get_type
+gst_discoverer_subtitle_info_get_type
gst_discoverer_video_info_get_type
</SECTION>
#include <gst/audio/gstaudioclock.h>
gst_audio_clock_get_type
+#include <gst/audio/gstaudiodecoder.h>
+gst_audio_decoder_get_type
+#include <gst/audio/gstaudioencoder.h>
+gst_audio_encoder_get_type
#include <gst/audio/gstaudiofilter.h>
gst_audio_filter_get_type
#include <gst/audio/gstaudiosink.h>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Annotation Glossary</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="prev" href="api-index-deprecated.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<tr><td colspan="5" class="shortcuts">
<a class="shortcut" href="#glsO">O</a>
|
- <a class="shortcut" href="#glsA">A</a>
- |
<a class="shortcut" href="#glsS">S</a>
|
+ <a class="shortcut" href="#glsA">A</a>
+ |
<a class="shortcut" href="#glsC">C</a>
|
<a class="shortcut" href="#glsT">T</a>
<dt>
<a name="annotation-glossterm-out"></a>out</dt>
<dd><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<a name="glsA"></a><h3 class="title">A</h3>
-<dt>
-<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
-<dd><p>NULL is ok, both for passing and for returning.</p></dd>
<a name="glsS"></a><h3 class="title">S</h3>
<dt>
<a name="annotation-glossterm-scope%20async"></a>scope async</dt>
<dd><p>The callback is valid until first called.</p></dd>
+<a name="glsA"></a><h3 class="title">A</h3>
+<dt>
+<a name="annotation-glossterm-allow-none"></a>allow-none</dt>
+<dd><p>NULL is ok, both for passing and for returning.</p></dd>
<a name="glsC"></a><h3 class="title">C</h3>
<dt>
<a name="annotation-glossterm-closure"></a>closure</dt>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Index of deprecated API</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="prev" href="api-index-full.html" title="Index">
<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Index</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="prev" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
<link rel="next" href="api-index-deprecated.html" title="Index of deprecated API">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a name="api-index-full"></a>Index</h2></div></div></div>
<a name="idx"></a><a name="idxA"></a><h3 class="title">A</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink">GstAppSink</a>, struct in <a class="link" href="gst-plugins-base-libs-appsink.html" title="appsink">appsink</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks">GstAppSinkCallbacks</a>, struct in <a class="link" href="gst-plugins-base-libs-appsink.html" title="appsink">appsink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc">GstAppSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks">GstAppSrcCallbacks</a>, struct in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" title="enum GstAudioFieldFlag">GstAudioFieldFlag</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct" title="struct GstAudioDecoder">GstAudioDecoder</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct" title="struct GstAudioFilter">GstAudioFilter</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency" title='The "min-latency" property'>GstAudioDecoder:min-latency</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" title="struct GstAudioFilterClass">GstAudioFilterClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc" title='The "plc" property'>GstAudioDecoder:plc</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()">GstAudioMixerFilterFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance" title='The "tolerance" property'>GstAudioDecoder:tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct" title="struct GstAudioSink">GstAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass" title="struct GstAudioDecoderClass">GstAudioDecoderClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass" title="struct GstAudioSinkClass">GstAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct" title="struct GstAudioEncoder">GstAudioEncoder</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct" title="struct GstAudioSrc">GstAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title='The "hard-resync" property'>GstAudioEncoder:hard-resync</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass" title="struct GstAudioSrcClass">GstAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule" title='The "mark-granule" property'>GstAudioEncoder:mark-granule</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip" title="gst_audio_buffer_clip ()">gst_audio_buffer_clip</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title='The "perfect-timestamp" property'>GstAudioEncoder:perfect-timestamp</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions" title="gst_audio_check_channel_positions ()">gst_audio_check_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance" title='The "tolerance" property'>GstAudioEncoder:tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-adjust" title="gst_audio_clock_adjust ()">gst_audio_clock_adjust</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass" title="struct GstAudioEncoderClass">GstAudioEncoderClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time" title="gst_audio_clock_get_time ()">gst_audio_clock_get_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" title="enum GstAudioFieldFlag">GstAudioFieldFlag</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate" title="gst_audio_clock_invalidate ()">gst_audio_clock_invalidate</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct" title="struct GstAudioFilter">GstAudioFilter</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new" title="gst_audio_clock_new ()">gst_audio_clock_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" title="struct GstAudioFilterClass">GstAudioFilterClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new-full" title="gst_audio_clock_new_full ()">gst_audio_clock_new_full</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" title="enum GstAudioFlags">GstAudioFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset" title="gst_audio_clock_reset ()">gst_audio_clock_reset</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat">GstAudioFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" title="gst_audio_default_registry_mixer_filter ()">gst_audio_default_registry_mixer_filter</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags">GstAudioFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS" title="GST_AUDIO_DEF_RATE">GST_AUDIO_DEF_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo">GstAudioFormatInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-duration-from-pad-buffer" title="gst_audio_duration_from_pad_buffer ()">gst_audio_duration_from_pad_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo">GstAudioInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" title="gst_audio_filter_class_add_pad_templates ()">gst_audio_filter_class_add_pad_templates</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc" title="GstAudioMixerFilterFunc ()">GstAudioMixerFilterFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions" title="gst_audio_fixate_channel_positions ()">gst_audio_fixate_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct" title="struct GstAudioSink">GstAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass" title="struct GstAudioSinkClass">GstAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">gstaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct" title="struct GstAudioSrc">GstAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-byte-size" title="gst_audio_frame_byte_size ()">gst_audio_frame_byte_size</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass" title="struct GstAudioSrcClass">GstAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">gstaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-length" title="gst_audio_frame_length ()">gst_audio_frame_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip" title="gst_audio_buffer_clip ()">gst_audio_buffer_clip</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions" title="gst_audio_get_channel_positions ()">gst_audio_get_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions" title="gst_audio_check_channel_positions ()">gst_audio_check_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-adjust" title="gst_audio_clock_adjust ()">gst_audio_clock_adjust</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time" title="gst_audio_clock_get_time ()">gst_audio_clock_get_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-is-buffer-framed" title="gst_audio_is_buffer_framed ()">gst_audio_is_buffer_framed</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate" title="gst_audio_clock_invalidate ()">gst_audio_clock_invalidate</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list" title="gst_audio_set_caps_channel_positions_list ()">gst_audio_set_caps_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new" title="gst_audio_clock_new ()">gst_audio_clock_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions" title="gst_audio_set_channel_positions ()">gst_audio_set_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new-full" title="gst_audio_clock_new_full ()">gst_audio_clock_new_full</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list" title="gst_audio_set_structure_channel_positions_list ()">gst_audio_set_structure_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset" title="gst_audio_clock_reset ()">gst_audio_clock_reset</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">gstaudioclock</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-structure-set-int" title="gst_audio_structure_set_int ()">gst_audio_structure_set_int</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS" title="GST_AUDIO_DECODER_ERROR()">GST_AUDIO_DECODER_ERROR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
-<a name="idxB"></a><h3 class="title">B</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink-struct" title="struct GstBaseAudioSink">GstBaseAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" title="gst_audio_decoder_finish_frame ()">gst_audio_decoder_finish_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>GstBaseAudioSink:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info" title="gst_audio_decoder_get_audio_info ()">gst_audio_decoder_get_audio_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull" title='The "can-activate-pull" property'>GstBaseAudioSink:can-activate-pull</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time" title="gst_audio_decoder_get_byte_time ()">gst_audio_decoder_get_byte_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>GstBaseAudioSink:drift-tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay" title="gst_audio_decoder_get_delay ()">gst_audio_decoder_get_delay</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>GstBaseAudioSink:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable" title="gst_audio_decoder_get_drainable ()">gst_audio_decoder_get_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock" title='The "provide-clock" property'>GstBaseAudioSink:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency" title="gst_audio_decoder_get_latency ()">gst_audio_decoder_get_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method" title='The "slave-method" property'>GstBaseAudioSink:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors" title="gst_audio_decoder_get_max_errors ()">gst_audio_decoder_get_max_errors</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkClass" title="struct GstBaseAudioSinkClass">GstBaseAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency" title="gst_audio_decoder_get_min_latency ()">gst_audio_decoder_get_min_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod">GstBaseAudioSinkSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format" title="gst_audio_decoder_get_needs_format ()">gst_audio_decoder_get_needs_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc-struct" title="struct GstBaseAudioSrc">GstBaseAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state" title="gst_audio_decoder_get_parse_state ()">gst_audio_decoder_get_parse_state</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>GstBaseAudioSrc:actual-buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc" title="gst_audio_decoder_get_plc ()">gst_audio_decoder_get_plc</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>GstBaseAudioSrc:actual-latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware" title="gst_audio_decoder_get_plc_aware ()">gst_audio_decoder_get_plc_aware</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>GstBaseAudioSrc:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance" title="gst_audio_decoder_get_tolerance ()">gst_audio_decoder_get_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>GstBaseAudioSrc:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time" title="gst_audio_decoder_set_byte_time ()">gst_audio_decoder_set_byte_time</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock" title='The "provide-clock" property'>GstBaseAudioSrc:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable" title="gst_audio_decoder_set_drainable ()">gst_audio_decoder_set_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method" title='The "slave-method" property'>GstBaseAudioSrc:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency" title="gst_audio_decoder_set_latency ()">gst_audio_decoder_set_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcClass" title="struct GstBaseAudioSrcClass">GstBaseAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors" title="gst_audio_decoder_set_max_errors ()">gst_audio_decoder_set_max_errors</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod">GstBaseAudioSrcSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency" title="gst_audio_decoder_set_min_latency ()">gst_audio_decoder_set_min_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct" title="struct GstBaseRTPAudioPayload">GstBaseRTPAudioPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format" title="gst_audio_decoder_set_needs_format ()">gst_audio_decoder_set_needs_format</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list" title='The "buffer-list" property'>GstBaseRTPAudioPayload:buffer-list</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc" title="gst_audio_decoder_set_plc ()">gst_audio_decoder_set_plc</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass" title="struct GstBaseRTPAudioPayloadClass">GstBaseRTPAudioPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware" title="gst_audio_decoder_set_plc_aware ()">gst_audio_decoder_set_plc_aware</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct" title="struct GstBaseRTPDepayload">GstBaseRTPDepayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance" title="gst_audio_decoder_set_tolerance ()">gst_audio_decoder_set_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay" title='The "queue-delay" property'>GstBaseRTPDepayload:queue-delay</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS" title="GST_AUDIO_DECODER_SINK_NAME">GST_AUDIO_DECODER_SINK_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass" title="struct GstBaseRTPDepayloadClass">GstBaseRTPDepayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS" title="GST_AUDIO_DECODER_SINK_PAD()">GST_AUDIO_DECODER_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct" title="struct GstBaseRTPPayload">GstBaseRTPPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS" title="GST_AUDIO_DECODER_SRC_NAME">GST_AUDIO_DECODER_SRC_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>GstBaseRTPPayload:max-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS" title="GST_AUDIO_DECODER_SRC_PAD()">GST_AUDIO_DECODER_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">gstaudiodecoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>GstBaseRTPPayload:min-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" title="gst_audio_default_registry_mixer_filter ()">gst_audio_default_registry_mixer_filter</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">gstaudiomixerutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu" title='The "mtu" property'>GstBaseRTPPayload:mtu</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS" title="GST_AUDIO_DEF_RATE">GST_AUDIO_DEF_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime" title='The "perfect-rtptime" property'>GstBaseRTPPayload:perfect-rtptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-duration-from-pad-buffer" title="gst_audio_duration_from_pad_buffer ()">gst_audio_duration_from_pad_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt" title='The "pt" property'>GstBaseRTPPayload:pt</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()">gst_audio_encoder_finish_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>GstBaseRTPPayload:ptime-multiple</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info" title="gst_audio_encoder_get_audio_info ()">gst_audio_encoder_get_audio_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum" title='The "seqnum" property'>GstBaseRTPPayload:seqnum</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable" title="gst_audio_encoder_get_drainable ()">gst_audio_encoder_get_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset" title='The "seqnum-offset" property'>GstBaseRTPPayload:seqnum-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max" title="gst_audio_encoder_get_frame_max ()">gst_audio_encoder_get_frame_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc" title='The "ssrc" property'>GstBaseRTPPayload:ssrc</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max" title="gst_audio_encoder_get_frame_samples_max ()">gst_audio_encoder_get_frame_samples_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp" title='The "timestamp" property'>GstBaseRTPPayload:timestamp</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min" title="gst_audio_encoder_get_frame_samples_min ()">gst_audio_encoder_get_frame_samples_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset" title='The "timestamp-offset" property'>GstBaseRTPPayload:timestamp-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min" title="gst_audio_encoder_get_hard_min ()">gst_audio_encoder_get_hard_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass" title="struct GstBaseRTPPayloadClass">GstBaseRTPPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync" title="gst_audio_encoder_get_hard_resync ()">gst_audio_encoder_get_hard_resync</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-is-filled" title="gst_basertppayload_is_filled ()">gst_basertppayload_is_filled</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency" title="gst_audio_encoder_get_latency ()">gst_audio_encoder_get_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push" title="gst_basertppayload_push ()">gst_basertppayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead" title="gst_audio_encoder_get_lookahead ()">gst_audio_encoder_get_lookahead</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push-list" title="gst_basertppayload_push_list ()">gst_basertppayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule" title="gst_audio_encoder_get_mark_granule ()">gst_audio_encoder_get_mark_granule</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-options" title="gst_basertppayload_set_options ()">gst_basertppayload_set_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp" title="gst_audio_encoder_get_perfect_timestamp ()">gst_audio_encoder_get_perfect_timestamp</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps" title="gst_basertppayload_set_outcaps ()">gst_basertppayload_set_outcaps</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance" title="gst_audio_encoder_get_tolerance ()">gst_audio_encoder_get_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-CLOCK:CAPS" title="GST_BASE_AUDIO_SINK_CLOCK()">GST_BASE_AUDIO_SINK_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps" title="gst_audio_encoder_proxy_getcaps ()">gst_audio_encoder_proxy_getcaps</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-create-ringbuffer" title="gst_base_audio_sink_create_ringbuffer ()">gst_base_audio_sink_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS" title="GST_AUDIO_ENCODER_SEGMENT()">GST_AUDIO_ENCODER_SEGMENT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable" title="gst_audio_encoder_set_drainable ()">gst_audio_encoder_set_drainable</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-provide-clock" title="gst_base_audio_sink_get_provide_clock ()">gst_base_audio_sink_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max" title="gst_audio_encoder_set_frame_max ()">gst_audio_encoder_set_frame_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()">gst_audio_encoder_set_frame_samples_max</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-PAD:CAPS" title="GST_BASE_AUDIO_SINK_PAD()">GST_BASE_AUDIO_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()">gst_audio_encoder_set_frame_samples_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" title="gst_base_audio_sink_set_drift_tolerance ()">gst_base_audio_sink_set_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min" title="gst_audio_encoder_set_hard_min ()">gst_audio_encoder_set_hard_min</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-provide-clock" title="gst_base_audio_sink_set_provide_clock ()">gst_base_audio_sink_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync" title="gst_audio_encoder_set_hard_resync ()">gst_audio_encoder_set_hard_resync</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method" title="gst_base_audio_sink_set_slave_method ()">gst_base_audio_sink_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency" title="gst_audio_encoder_set_latency ()">gst_audio_encoder_set_latency</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-CLOCK:CAPS" title="GST_BASE_AUDIO_SRC_CLOCK()">GST_BASE_AUDIO_SRC_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead" title="gst_audio_encoder_set_lookahead ()">gst_audio_encoder_set_lookahead</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-create-ringbuffer" title="gst_base_audio_src_create_ringbuffer ()">gst_base_audio_src_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule" title="gst_audio_encoder_set_mark_granule ()">gst_audio_encoder_set_mark_granule</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock" title="gst_base_audio_src_get_provide_clock ()">gst_base_audio_src_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp" title="gst_audio_encoder_set_perfect_timestamp ()">gst_audio_encoder_set_perfect_timestamp</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance" title="gst_audio_encoder_set_tolerance ()">gst_audio_encoder_set_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-PAD:CAPS" title="GST_BASE_AUDIO_SRC_PAD()">GST_BASE_AUDIO_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS" title="GST_AUDIO_ENCODER_SINK_NAME">GST_AUDIO_ENCODER_SINK_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-provide-clock" title="gst_base_audio_src_set_provide_clock ()">gst_base_audio_src_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS" title="GST_AUDIO_ENCODER_SINK_PAD()">GST_AUDIO_ENCODER_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method" title="gst_base_audio_src_set_slave_method ()">gst_base_audio_src_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS" title="GST_AUDIO_ENCODER_SRC_NAME">GST_AUDIO_ENCODER_SRC_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" title="gst_base_rtp_audio_payload_flush ()">gst_base_rtp_audio_payload_flush</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS" title="GST_AUDIO_ENCODER_SRC_PAD()">GST_AUDIO_ENCODER_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">gstaudioencoder</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter" title="gst_base_rtp_audio_payload_get_adapter ()">gst_base_rtp_audio_payload_get_adapter</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" title="gst_audio_filter_class_add_pad_templates ()">gst_audio_filter_class_add_pad_templates</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">gstaudiofilter</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push" title="gst_base_rtp_audio_payload_push ()">gst_base_rtp_audio_payload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions" title="gst_audio_fixate_channel_positions ()">gst_audio_fixate_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based" title="gst_base_rtp_audio_payload_set_frame_based ()">gst_base_rtp_audio_payload_set_frame_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-options" title="gst_base_rtp_audio_payload_set_frame_options ()">gst_base_rtp_audio_payload_set_frame_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options" title="gst_base_rtp_audio_payload_set_samplebits_options ()">gst_base_rtp_audio_payload_set_samplebits_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info" title="gst_audio_format_get_info ()">gst_audio_format_get_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based" title="gst_base_rtp_audio_payload_set_sample_based ()">gst_base_rtp_audio_payload_set_sample_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS" title="GST_AUDIO_FORMAT_INFO_DEPTH()">GST_AUDIO_FORMAT_INFO_DEPTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-options" title="gst_base_rtp_audio_payload_set_sample_options ()">gst_base_rtp_audio_payload_set_sample_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS" title="GST_AUDIO_FORMAT_INFO_ENDIANNESS()">GST_AUDIO_FORMAT_INFO_ENDIANNESS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push" title="gst_base_rtp_depayload_push ()">gst_base_rtp_depayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS" title="GST_AUDIO_FORMAT_INFO_FLAGS()">GST_AUDIO_FORMAT_INFO_FLAGS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" title="gst_base_rtp_depayload_push_list ()">gst_base_rtp_depayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS" title="GST_AUDIO_FORMAT_INFO_FORMAT()">GST_AUDIO_FORMAT_INFO_FORMAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts" title="gst_base_rtp_depayload_push_ts ()">gst_base_rtp_depayload_push_ts</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SINKPAD()">GST_BASE_RTP_DEPAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_FLOAT()">GST_AUDIO_FORMAT_INFO_IS_FLOAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SRCPAD()">GST_BASE_RTP_DEPAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_INTEGER()">GST_AUDIO_FORMAT_INFO_IS_INTEGER</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS" title="GST_BASE_RTP_PAYLOAD_MTU()">GST_BASE_RTP_PAYLOAD_MTU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-PT:CAPS" title="GST_BASE_RTP_PAYLOAD_PT()">GST_BASE_RTP_PAYLOAD_PT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_SIGNED()">GST_AUDIO_FORMAT_INFO_IS_SIGNED</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SINKPAD()">GST_BASE_RTP_PAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS" title="GST_AUDIO_FORMAT_INFO_NAME()">GST_AUDIO_FORMAT_INFO_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SRCPAD()">GST_BASE_RTP_PAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS" title="GST_AUDIO_FORMAT_INFO_WIDTH()">GST_AUDIO_FORMAT_INFO_WIDTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat" title="enum GstBufferFormat">GstBufferFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-byte-size" title="gst_audio_frame_byte_size ()">gst_audio_frame_byte_size</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType" title="enum GstBufferFormatType">GstBufferFormatType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-length" title="gst_audio_frame_length ()">gst_audio_frame_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
-<a name="idxC"></a><h3 class="title">C</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double" title="gst_cast_double()">gst_cast_double</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions" title="gst_audio_get_channel_positions ()">gst_audio_get_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float" title="gst_cast_float()">gst_cast_float</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" title="gst_audio_iec61937_frame_size ()">gst_audio_iec61937_frame_size</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">gstaudioiec61937</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct" title="struct GstCddaBaseSrc">GstCddaBaseSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()">gst_audio_iec61937_payload</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">gstaudioiec61937</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--device" title='The "device" property'>GstCddaBaseSrc:device</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS" title="GST_AUDIO_INFO_BPF()">GST_AUDIO_INFO_BPF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--mode" title='The "mode" property'>GstCddaBaseSrc:mode</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS" title="GST_AUDIO_INFO_BPS()">GST_AUDIO_INFO_BPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--track" title='The "track" property'>GstCddaBaseSrc:track</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS" title="GST_AUDIO_INFO_CHANNELS()">GST_AUDIO_INFO_CHANNELS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass" title="struct GstCddaBaseSrcClass">GstCddaBaseSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear" title="gst_audio_info_clear ()">gst_audio_info_clear</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcMode" title="enum GstCddaBaseSrcMode">GstCddaBaseSrcMode</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert" title="gst_audio_info_convert ()">gst_audio_info_convert</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack" title="struct GstCddaBaseSrcTrack">GstCddaBaseSrcTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy" title="gst_audio_info_copy ()">gst_audio_info_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#gst-cdda-base-src-add-track" title="gst_cdda_base_src_add_track ()">gst_cdda_base_src_add_track</a>, function in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS" title="GST_AUDIO_INFO_DEPTH()">GST_AUDIO_INFO_DEPTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS" title="GST_AUDIO_INFO_FLAGS()">GST_AUDIO_INFO_FLAGS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS" title="GST_CLOCK_TIME_TO_FRAMES()">GST_CLOCK_TIME_TO_FRAMES</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS" title="GST_AUDIO_INFO_FORMAT()">GST_AUDIO_INFO_FORMAT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile" title="gst_codec_utils_aac_caps_set_level_and_profile ()">gst_codec_utils_aac_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free" title="gst_audio_info_free ()">gst_audio_info_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()">gst_audio_info_from_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS" title="GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()">GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init" title="gst_audio_info_init ()">gst_audio_info_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" title="gst_codec_utils_h264_caps_set_level_and_profile ()">gst_codec_utils_h264_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS" title="GST_AUDIO_INFO_NAME()">GST_AUDIO_INFO_NAME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS" title="GST_AUDIO_INFO_POSITION()">GST_AUDIO_INFO_POSITION</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS" title="GST_AUDIO_INFO_RATE()">GST_AUDIO_INFO_RATE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps" title="gst_audio_info_to_caps ()">gst_audio_info_to_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()">gst_codec_utils_mpeg4video_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS" title="GST_AUDIO_INFO_WIDTH()">GST_AUDIO_INFO_WIDTH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()">gst_codec_utils_mpeg4video_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct" title="GstColorBalance">GstColorBalance</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-STANDARD-PAD-TEMPLATE-CAPS" title="GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS">GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed" title='The "value-changed" signal'>GstColorBalance::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-is-buffer-framed" title="gst_audio_is_buffer_framed ()">gst_audio_is_buffer_framed</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct" title="struct GstColorBalanceChannel">GstColorBalanceChannel</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list" title="gst_audio_set_caps_channel_positions_list ()">gst_audio_set_caps_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed" title='The "value-changed" signal'>GstColorBalanceChannel::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions" title="gst_audio_set_channel_positions ()">gst_audio_set_channel_positions</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass" title="struct GstColorBalanceChannelClass">GstColorBalanceChannelClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
+<a class="link" href="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list" title="gst_audio_set_structure_channel_positions_list ()">gst_audio_set_structure_channel_positions_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">gstmultichannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass" title="struct GstColorBalanceClass">GstColorBalanceClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-structure-set-int" title="gst_audio_structure_set_int ()">gst_audio_structure_set_int</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
+<a name="idxB"></a><h3 class="title">B</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType">GstColorBalanceType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink-struct" title="struct GstBaseAudioSink">GstBaseAudioSink</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold" title='The "alignment-threshold" property'>GstBaseAudioSink:alignment-threshold</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value" title="gst_color_balance_get_value ()">gst_color_balance_get_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>GstBaseAudioSink:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels" title="gst_color_balance_list_channels ()">gst_color_balance_list_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull" title='The "can-activate-pull" property'>GstBaseAudioSink:can-activate-pull</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-set-value" title="gst_color_balance_set_value ()">gst_color_balance_set_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait" title='The "discont-wait" property'>GstBaseAudioSink:discont-wait</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed" title="gst_color_balance_value_changed ()">gst_color_balance_value_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>GstBaseAudioSink:drift-tolerance</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
-<a name="idxD"></a><h3 class="title">D</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-struct" title="struct GstDiscoverer">GstDiscoverer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>GstBaseAudioSink:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered" title='The "discovered" signal'>GstDiscoverer::discovered</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock" title='The "provide-clock" property'>GstBaseAudioSink:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished" title='The "finished" signal'>GstDiscoverer::finished</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method" title='The "slave-method" property'>GstBaseAudioSink:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting" title='The "starting" signal'>GstDiscoverer::starting</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkClass" title="struct GstBaseAudioSinkClass">GstBaseAudioSinkClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>GstDiscoverer:timeout</a>, object property in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod">GstBaseAudioSinkSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo">GstDiscovererAudioInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc-struct" title="struct GstBaseAudioSrc">GstBaseAudioSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo">GstDiscovererContainerInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>GstBaseAudioSrc:actual-buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct" title="GstDiscovererInfo">GstDiscovererInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>GstBaseAudioSrc:actual-latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult">GstDiscovererResult</a>, enum in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>GstBaseAudioSrc:buffer-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo">GstDiscovererStreamInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>GstBaseAudioSrc:latency-time</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo">GstDiscovererVideoInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock" title='The "provide-clock" property'>GstBaseAudioSrc:provide-clock</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" title="gst_discoverer_audio_info_get_bitrate ()">gst_discoverer_audio_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method" title='The "slave-method" property'>GstBaseAudioSrc:slave-method</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" title="gst_discoverer_audio_info_get_channels ()">gst_discoverer_audio_info_get_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcClass" title="struct GstBaseAudioSrcClass">GstBaseAudioSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" title="gst_discoverer_audio_info_get_depth ()">gst_discoverer_audio_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod">GstBaseAudioSrcSlaveMethod</a>, enum in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" title="gst_discoverer_audio_info_get_max_bitrate ()">gst_discoverer_audio_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct" title="struct GstBaseRTPAudioPayload">GstBaseRTPAudioPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" title="gst_discoverer_audio_info_get_sample_rate ()">gst_discoverer_audio_info_get_sample_rate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list" title='The "buffer-list" property'>GstBaseRTPAudioPayload:buffer-list</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" title="gst_discoverer_container_info_get_streams ()">gst_discoverer_container_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass" title="struct GstBaseRTPAudioPayloadClass">GstBaseRTPAudioPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri" title="gst_discoverer_discover_uri ()">gst_discoverer_discover_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct" title="struct GstBaseRTPDepayload">GstBaseRTPDepayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async" title="gst_discoverer_discover_uri_async ()">gst_discoverer_discover_uri_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay" title='The "queue-delay" property'>GstBaseRTPDepayload:queue-delay</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass" title="struct GstBaseRTPDepayloadClass">GstBaseRTPDepayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct" title="struct GstBaseRTPPayload">GstBaseRTPPayload</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration" title="gst_discoverer_info_get_duration ()">gst_discoverer_info_get_duration</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>GstBaseRTPPayload:max-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>GstBaseRTPPayload:min-ptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu" title='The "mtu" property'>GstBaseRTPPayload:mtu</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable" title="gst_discoverer_info_get_seekable ()">gst_discoverer_info_get_seekable</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime" title='The "perfect-rtptime" property'>GstBaseRTPPayload:perfect-rtptime</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt" title='The "pt" property'>GstBaseRTPPayload:pt</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>GstBaseRTPPayload:ptime-multiple</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum" title='The "seqnum" property'>GstBaseRTPPayload:seqnum</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset" title='The "seqnum-offset" property'>GstBaseRTPPayload:seqnum-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc" title='The "ssrc" property'>GstBaseRTPPayload:ssrc</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp" title='The "timestamp" property'>GstBaseRTPPayload:timestamp</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref" title="gst_discoverer_info_ref()">gst_discoverer_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset" title='The "timestamp-offset" property'>GstBaseRTPPayload:timestamp-offset</a>, object property in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref" title="gst_discoverer_info_unref()">gst_discoverer_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass" title="struct GstBaseRTPPayloadClass">GstBaseRTPPayloadClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new" title="gst_discoverer_new ()">gst_discoverer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()">gst_discoverer_start</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stop" title="gst_discoverer_stop ()">gst_discoverer_stop</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()">gst_discoverer_stream_info_list_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref" title="gst_discoverer_stream_info_ref()">gst_discoverer_stream_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()">gst_discoverer_stream_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" title="gst_discoverer_video_info_get_bitrate ()">gst_discoverer_video_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" title="gst_discoverer_video_info_get_depth ()">gst_discoverer_video_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom" title="gst_discoverer_video_info_get_framerate_denom ()">gst_discoverer_video_info_get_framerate_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-num" title="gst_discoverer_video_info_get_framerate_num ()">gst_discoverer_video_info_get_framerate_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-height" title="gst_discoverer_video_info_get_height ()">gst_discoverer_video_info_get_height</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-max-bitrate" title="gst_discoverer_video_info_get_max_bitrate ()">gst_discoverer_video_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-denom" title="gst_discoverer_video_info_get_par_denom ()">gst_discoverer_video_info_get_par_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-num" title="gst_discoverer_video_info_get_par_num ()">gst_discoverer_video_info_get_par_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-width" title="gst_discoverer_video_info_get_width ()">gst_discoverer_video_info_get_width</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-image" title="gst_discoverer_video_info_is_image ()">gst_discoverer_video_info_is_image</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced" title="gst_discoverer_video_info_is_interlaced ()">gst_discoverer_video_info_is_interlaced</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<a name="idxE"></a><h3 class="title">E</h3>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct" title="GstEncodingAudioProfile">GstEncodingAudioProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct" title="GstEncodingContainerProfile">GstEncodingContainerProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct" title="GstEncodingProfile">GstEncodingProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct" title="GstEncodingTarget">GstEncodingTarget</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct" title="GstEncodingVideoProfile">GstEncodingVideoProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-CAPTURE:CAPS" title="GST_ENCODING_CATEGORY_CAPTURE">GST_ENCODING_CATEGORY_CAPTURE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE">GST_ENCODING_CATEGORY_DEVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-ONLINE-SERVICE:CAPS" title="GST_ENCODING_CATEGORY_ONLINE_SERVICE">GST_ENCODING_CATEGORY_ONLINE_SERVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-STORAGE-EDITING:CAPS" title="GST_ENCODING_CATEGORY_STORAGE_EDITING">GST_ENCODING_CATEGORY_STORAGE_EDITING</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile" title="gst_encoding_container_profile_add_profile ()">gst_encoding_container_profile_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-contains-profile" title="gst_encoding_container_profile_contains_profile ()">gst_encoding_container_profile_contains_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-get-profiles" title="gst_encoding_container_profile_get_profiles ()">gst_encoding_container_profile_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" title="gst_encoding_list_all_targets ()">gst_encoding_list_all_targets</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" title="gst_encoding_list_available_categories ()">gst_encoding_list_available_categories</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-input-caps" title="gst_encoding_profile_get_input_caps ()">gst_encoding_profile_get_input_caps</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick" title="gst_encoding_profile_get_type_nick ()">gst_encoding_profile_get_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal" title="gst_encoding_profile_is_equal ()">gst_encoding_profile_is_equal</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" title="gst_encoding_profile_ref()">gst_encoding_profile_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description" title="gst_encoding_profile_set_description ()">gst_encoding_profile_set_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format" title="gst_encoding_profile_set_format ()">gst_encoding_profile_set_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name" title="gst_encoding_profile_set_name ()">gst_encoding_profile_set_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence" title="gst_encoding_profile_set_presence ()">gst_encoding_profile_set_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset" title="gst_encoding_profile_set_preset ()">gst_encoding_profile_set_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction" title="gst_encoding_profile_set_restriction ()">gst_encoding_profile_set_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" title="gst_encoding_profile_unref()">gst_encoding_profile_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-add-profile" title="gst_encoding_target_add_profile ()">gst_encoding_target_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-category" title="gst_encoding_target_get_category ()">gst_encoding_target_get_category</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-description" title="gst_encoding_target_get_description ()">gst_encoding_target_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-name" title="gst_encoding_target_get_name ()">gst_encoding_target_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profile" title="gst_encoding_target_get_profile ()">gst_encoding_target_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profiles" title="gst_encoding_target_get_profiles ()">gst_encoding_target_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load" title="gst_encoding_target_load ()">gst_encoding_target_load</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file" title="gst_encoding_target_load_from_file ()">gst_encoding_target_load_from_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-new" title="gst_encoding_target_new ()">gst_encoding_target_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-ref" title="gst_encoding_target_ref()">gst_encoding_target_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save" title="gst_encoding_target_save ()">gst_encoding_target_save</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save-to-file" title="gst_encoding_target_save_to_file ()">gst_encoding_target_save_to_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-unref" title="gst_encoding_target_unref()">gst_encoding_target_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-pass" title="gst_encoding_video_profile_get_pass ()">gst_encoding_video_profile_get_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-variableframerate" title="gst_encoding_video_profile_get_variableframerate ()">gst_encoding_video_profile_get_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-pass" title="gst_encoding_video_profile_set_pass ()">gst_encoding_video_profile_set_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate" title="gst_encoding_video_profile_set_variableframerate ()">gst_encoding_video_profile_set_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
-</dt>
-<dd></dd>
-<a name="idxF"></a><h3 class="title">F</h3>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32">GstFFTF32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex">GstFFTF32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-is-filled" title="gst_basertppayload_is_filled ()">gst_basertppayload_is_filled</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64">GstFFTF64</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push" title="gst_basertppayload_push ()">gst_basertppayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex">GstFFTF64Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push-list" title="gst_basertppayload_push_list ()">gst_basertppayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16">GstFFTS16</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-options" title="gst_basertppayload_set_options ()">gst_basertppayload_set_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex">GstFFTS16Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps" title="gst_basertppayload_set_outcaps ()">gst_basertppayload_set_outcaps</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32">GstFFTS32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-CLOCK:CAPS" title="GST_BASE_AUDIO_SINK_CLOCK()">GST_BASE_AUDIO_SINK_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex">GstFFTS32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-create-ringbuffer" title="gst_base_audio_sink_create_ringbuffer ()">gst_base_audio_sink_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow">GstFFTWindow</a>, enum in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()">gst_fft_f32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-provide-clock" title="gst_base_audio_sink_get_provide_clock ()">gst_base_audio_sink_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free" title="gst_fft_f32_free ()">gst_fft_f32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()">gst_fft_f32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-PAD:CAPS" title="GST_BASE_AUDIO_SINK_PAD()">GST_BASE_AUDIO_SINK_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()">gst_fft_f32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" title="gst_base_audio_sink_set_drift_tolerance ()">gst_base_audio_sink_set_drift_tolerance</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window" title="gst_fft_f32_window ()">gst_fft_f32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-provide-clock" title="gst_base_audio_sink_set_provide_clock ()">gst_base_audio_sink_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft" title="gst_fft_f64_fft ()">gst_fft_f64_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method" title="gst_base_audio_sink_set_slave_method ()">gst_base_audio_sink_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">gstbaseaudiosink</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free" title="gst_fft_f64_free ()">gst_fft_f64_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-CLOCK:CAPS" title="GST_BASE_AUDIO_SRC_CLOCK()">GST_BASE_AUDIO_SRC_CLOCK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft" title="gst_fft_f64_inverse_fft ()">gst_fft_f64_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-create-ringbuffer" title="gst_base_audio_src_create_ringbuffer ()">gst_base_audio_src_create_ringbuffer</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()">gst_fft_f64_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock" title="gst_base_audio_src_get_provide_clock ()">gst_base_audio_src_get_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window" title="gst_fft_f64_window ()">gst_fft_f64_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()">gst_fft_next_fast_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-PAD:CAPS" title="GST_BASE_AUDIO_SRC_PAD()">GST_BASE_AUDIO_SRC_PAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()">gst_fft_s16_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-provide-clock" title="gst_base_audio_src_set_provide_clock ()">gst_base_audio_src_set_provide_clock</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free" title="gst_fft_s16_free ()">gst_fft_s16_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method" title="gst_base_audio_src_set_slave_method ()">gst_base_audio_src_set_slave_method</a>, function in <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">gstbaseaudiosrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()">gst_fft_s16_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" title="gst_base_rtp_audio_payload_flush ()">gst_base_rtp_audio_payload_flush</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()">gst_fft_s16_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter" title="gst_base_rtp_audio_payload_get_adapter ()">gst_base_rtp_audio_payload_get_adapter</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window" title="gst_fft_s16_window ()">gst_fft_s16_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push" title="gst_base_rtp_audio_payload_push ()">gst_base_rtp_audio_payload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()">gst_fft_s32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based" title="gst_base_rtp_audio_payload_set_frame_based ()">gst_base_rtp_audio_payload_set_frame_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free" title="gst_fft_s32_free ()">gst_fft_s32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-options" title="gst_base_rtp_audio_payload_set_frame_options ()">gst_base_rtp_audio_payload_set_frame_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()">gst_fft_s32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options" title="gst_base_rtp_audio_payload_set_samplebits_options ()">gst_base_rtp_audio_payload_set_samplebits_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()">gst_fft_s32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based" title="gst_base_rtp_audio_payload_set_sample_based ()">gst_base_rtp_audio_payload_set_sample_based</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window" title="gst_fft_s32_window ()">gst_fft_s32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-options" title="gst_base_rtp_audio_payload_set_sample_options ()">gst_base_rtp_audio_payload_set_sample_options</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">gstbasertpaudiopayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS" title="GST_FRAMES_TO_CLOCK_TIME()">GST_FRAMES_TO_CLOCK_TIME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push" title="gst_base_rtp_depayload_push ()">gst_base_rtp_depayload_push</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
-<a name="idxI"></a><h3 class="title">I</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext">GstInstallPluginsContext</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" title="gst_base_rtp_depayload_push_list ()">gst_base_rtp_depayload_push_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()">GstInstallPluginsResultFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts" title="gst_base_rtp_depayload_push_ts ()">gst_base_rtp_depayload_push_ts</a>, function in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn">GstInstallPluginsReturn</a>, enum in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SINKPAD()">GST_BASE_RTP_DEPAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_DEPAYLOAD_SRCPAD()">GST_BASE_RTP_DEPAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">gstbasertpdepayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()">gst_install_plugins_context_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS" title="GST_BASE_RTP_PAYLOAD_MTU()">GST_BASE_RTP_PAYLOAD_MTU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-PT:CAPS" title="GST_BASE_RTP_PAYLOAD_PT()">GST_BASE_RTP_PAYLOAD_PT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SINKPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SINKPAD()">GST_BASE_RTP_PAYLOAD_SINKPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress" title="gst_install_plugins_installation_in_progress ()">gst_install_plugins_installation_in_progress</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SRCPAD:CAPS" title="GST_BASE_RTP_PAYLOAD_SRCPAD()">GST_BASE_RTP_PAYLOAD_SRCPAD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">gstbasertppayload</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name" title="gst_install_plugins_return_get_name ()">gst_install_plugins_return_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat" title="enum GstBufferFormat">GstBufferFormat</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported" title="gst_install_plugins_supported ()">gst_install_plugins_supported</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType" title="enum GstBufferFormatType">GstBufferFormatType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">gstringbuffer</a>
</dt>
<dd></dd>
+<a name="idxC"></a><h3 class="title">C</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double" title="gst_cast_double()">gst_cast_double</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message" title="gst_is_missing_plugin_message ()">gst_is_missing_plugin_message</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float" title="gst_cast_float()">gst_cast_float</a>, macro in <a class="link" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">gstfloatcast</a>
</dt>
<dd></dd>
-<a name="idxM"></a><h3 class="title">M</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" title="gst_missing_decoder_installer_detail_new ()">gst_missing_decoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct" title="struct GstCddaBaseSrc">GstCddaBaseSrc</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new" title="gst_missing_decoder_message_new ()">gst_missing_decoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--device" title='The "device" property'>GstCddaBaseSrc:device</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" title="gst_missing_element_installer_detail_new ()">gst_missing_element_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--mode" title='The "mode" property'>GstCddaBaseSrc:mode</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new" title="gst_missing_element_message_new ()">gst_missing_element_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--track" title='The "track" property'>GstCddaBaseSrc:track</a>, object property in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" title="gst_missing_encoder_installer_detail_new ()">gst_missing_encoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass" title="struct GstCddaBaseSrcClass">GstCddaBaseSrcClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new" title="gst_missing_encoder_message_new ()">gst_missing_encoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcMode" title="enum GstCddaBaseSrcMode">GstCddaBaseSrcMode</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()">gst_missing_plugin_message_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack" title="struct GstCddaBaseSrcTrack">GstCddaBaseSrcTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()">gst_missing_plugin_message_get_installer_detail</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html#gst-cdda-base-src-add-track" title="gst_cdda_base_src_add_track ()">gst_cdda_base_src_add_track</a>, function in <a class="link" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">gstcddabasesrc</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-installer-detail-new" title="gst_missing_uri_sink_installer_detail_new ()">gst_missing_uri_sink_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new" title="gst_missing_uri_sink_message_new ()">gst_missing_uri_sink_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS" title="GST_CLOCK_TIME_TO_FRAMES()">GST_CLOCK_TIME_TO_FRAMES</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-installer-detail-new" title="gst_missing_uri_source_installer_detail_new ()">gst_missing_uri_source_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile" title="gst_codec_utils_aac_caps_set_level_and_profile ()">gst_codec_utils_aac_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new" title="gst_missing_uri_source_message_new ()">gst_missing_uri_source_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-struct" title="GstMixer">GstMixer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-mute-toggled" title='The "mute-toggled" signal'>GstMixer::mute-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-option-changed" title='The "option-changed" signal'>GstMixer::option-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" title="gst_codec_utils_h264_caps_set_level_and_profile ()">gst_codec_utils_h264_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-record-toggled" title='The "record-toggled" signal'>GstMixer::record-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-volume-changed" title='The "volume-changed" signal'>GstMixer::volume-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc" title="gst_codec_utils_h264_get_level_idc ()">gst_codec_utils_h264_get_level_idc</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags">GstMixerFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType">GstMixerMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct" title="struct GstMixerOptions">GstMixerOptions</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()">gst_codec_utils_mpeg4video_get_level</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct" title="struct GstMixerTrack">GstMixerTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()">gst_codec_utils_mpeg4video_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags" title='The "flags" property'>GstMixerTrack:flags</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct" title="GstColorBalance">GstColorBalance</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index" title='The "index" property'>GstMixerTrack:index</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed" title='The "value-changed" signal'>GstColorBalance::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label" title='The "label" property'>GstMixerTrack:label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct" title="struct GstColorBalanceChannel">GstColorBalanceChannel</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume" title='The "max-volume" property'>GstMixerTrack:max-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed" title='The "value-changed" signal'>GstColorBalanceChannel::value-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume" title='The "min-volume" property'>GstMixerTrack:min-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass" title="struct GstColorBalanceChannelClass">GstColorBalanceChannelClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">gstcolorbalancechannel</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels" title='The "num-channels" property'>GstMixerTrack:num-channels</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass" title="struct GstColorBalanceClass">GstColorBalanceClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label" title='The "untranslated-label" property'>GstMixerTrack:untranslated-label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType">GstColorBalanceType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags" title="enum GstMixerTrackFlags">GstMixerTrackFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType">GstMixerType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value" title="gst_color_balance_get_value ()">gst_color_balance_get_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels" title="gst_color_balance_list_channels ()">gst_color_balance_list_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-set-value" title="gst_color_balance_set_value ()">gst_color_balance_set_value</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option" title="gst_mixer_get_option ()">gst_mixer_get_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed" title="gst_color_balance_value_changed ()">gst_color_balance_value_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">gstcolorbalance</a>
</dt>
<dd></dd>
+<a name="idxD"></a><h3 class="title">D</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume" title="gst_mixer_get_volume ()">gst_mixer_get_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-struct" title="struct GstDiscoverer">GstDiscoverer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks" title="gst_mixer_list_tracks ()">gst_mixer_list_tracks</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered" title='The "discovered" signal'>GstDiscoverer::discovered</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished" title='The "finished" signal'>GstDiscoverer::finished</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting" title='The "starting" signal'>GstDiscoverer::starting</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed" title="gst_mixer_message_parse_options_list_changed ()">gst_mixer_message_parse_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>GstDiscoverer:timeout</a>, object property in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed" title="gst_mixer_message_parse_option_changed ()">gst_mixer_message_parse_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo">GstDiscovererAudioInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled" title="gst_mixer_message_parse_record_toggled ()">gst_mixer_message_parse_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo">GstDiscovererContainerInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed" title="gst_mixer_message_parse_volume_changed ()">gst_mixer_message_parse_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct" title="GstDiscovererInfo">GstDiscovererInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult">GstDiscovererResult</a>, enum in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled" title="gst_mixer_mute_toggled ()">gst_mixer_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo">GstDiscovererStreamInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()">gst_mixer_options_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo">GstDiscovererSubtitleInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed" title="gst_mixer_options_list_changed ()">gst_mixer_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo">GstDiscovererVideoInfo</a>, struct in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed" title="gst_mixer_option_changed ()">gst_mixer_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" title="gst_discoverer_audio_info_get_bitrate ()">gst_discoverer_audio_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled" title="gst_mixer_record_toggled ()">gst_mixer_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" title="gst_discoverer_audio_info_get_channels ()">gst_discoverer_audio_info_get_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute" title="gst_mixer_set_mute ()">gst_mixer_set_mute</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" title="gst_discoverer_audio_info_get_depth ()">gst_discoverer_audio_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option" title="gst_mixer_set_option ()">gst_mixer_set_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language" title="gst_discoverer_audio_info_get_language ()">gst_discoverer_audio_info_get_language</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record" title="gst_mixer_set_record ()">gst_mixer_set_record</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" title="gst_discoverer_audio_info_get_max_bitrate ()">gst_discoverer_audio_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume" title="gst_mixer_set_volume ()">gst_mixer_set_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" title="gst_discoverer_audio_info_get_sample_rate ()">gst_discoverer_audio_info_get_sample_rate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()">GST_MIXER_TRACK_HAS_FLAG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" title="gst_discoverer_container_info_get_streams ()">gst_discoverer_container_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed" title="gst_mixer_volume_changed ()">gst_mixer_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri" title="gst_discoverer_discover_uri ()">gst_discoverer_discover_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
-<a name="idxN"></a><h3 class="title">N</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct" title="GstNavigation">GstNavigation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async" title="gst_discoverer_discover_uri_async ()">gst_discoverer_discover_uri_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand">GstNavigationCommand</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType">GstNavigationEventType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface" title="struct GstNavigationInterface">GstNavigationInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration" title="gst_discoverer_info_get_duration ()">gst_discoverer_info_get_duration</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType">GstNavigationMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType">GstNavigationQueryType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable" title="gst_discoverer_info_get_seekable ()">gst_discoverer_info_get_seekable</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_MENU">GST_NAVIGATION_COMMAND_DVD_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams" title="gst_discoverer_info_get_subtitle_streams ()">gst_discoverer_info_get_subtitle_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()">gst_navigation_event_parse_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()">gst_navigation_event_parse_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref" title="gst_discoverer_info_ref()">gst_discoverer_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()">gst_navigation_event_parse_mouse_button_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref" title="gst_discoverer_info_unref()">gst_discoverer_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()">gst_navigation_event_parse_mouse_move_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new" title="gst_discoverer_new ()">gst_discoverer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()">gst_discoverer_start</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stop" title="gst_discoverer_stop ()">gst_discoverer_stop</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" title="gst_navigation_message_new_commands_changed ()">gst_navigation_message_new_commands_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" title="gst_navigation_message_new_mouse_over ()">gst_navigation_message_new_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" title="gst_navigation_message_parse_angles_changed ()">gst_navigation_message_parse_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" title="gst_navigation_message_parse_mouse_over ()">gst_navigation_message_parse_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()">gst_discoverer_stream_info_list_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref" title="gst_discoverer_stream_info_ref()">gst_discoverer_stream_info_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" title="gst_navigation_query_parse_commands_length ()">gst_navigation_query_parse_commands_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()">gst_discoverer_stream_info_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" title="gst_navigation_query_parse_commands_nth ()">gst_navigation_query_parse_commands_nth</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language" title="gst_discoverer_subtitle_info_get_language ()">gst_discoverer_subtitle_info_get_language</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles" title="gst_navigation_query_set_angles ()">gst_navigation_query_set_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" title="gst_discoverer_video_info_get_bitrate ()">gst_discoverer_video_info_get_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands" title="gst_navigation_query_set_commands ()">gst_navigation_query_set_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" title="gst_discoverer_video_info_get_depth ()">gst_discoverer_video_info_get_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv" title="gst_navigation_query_set_commandsv ()">gst_navigation_query_set_commandsv</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom" title="gst_discoverer_video_info_get_framerate_denom ()">gst_discoverer_video_info_get_framerate_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command" title="gst_navigation_send_command ()">gst_navigation_send_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-num" title="gst_discoverer_video_info_get_framerate_num ()">gst_discoverer_video_info_get_framerate_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event" title="gst_navigation_send_event ()">gst_navigation_send_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-height" title="gst_discoverer_video_info_get_height ()">gst_discoverer_video_info_get_height</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event" title="gst_navigation_send_key_event ()">gst_navigation_send_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-max-bitrate" title="gst_discoverer_video_info_get_max_bitrate ()">gst_discoverer_video_info_get_max_bitrate</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event" title="gst_navigation_send_mouse_event ()">gst_navigation_send_mouse_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-denom" title="gst_discoverer_video_info_get_par_denom ()">gst_discoverer_video_info_get_par_denom</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress">GstNetAddress</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-num" title="gst_discoverer_video_info_get_par_num ()">gst_discoverer_video_info_get_par_num</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" title="gst_netaddress_equal ()">gst_netaddress_equal</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-width" title="gst_discoverer_video_info_get_width ()">gst_discoverer_video_info_get_width</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes" title="gst_netaddress_get_address_bytes ()">gst_netaddress_get_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-image" title="gst_discoverer_video_info_is_image ()">gst_discoverer_video_info_is_image</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address" title="gst_netaddress_get_ip4_address ()">gst_netaddress_get_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced" title="gst_discoverer_video_info_is_interlaced ()">gst_discoverer_video_info_is_interlaced</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
</dt>
<dd></dd>
+<a name="idxE"></a><h3 class="title">E</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address" title="gst_netaddress_get_ip6_address ()">gst_netaddress_get_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct" title="GstEncodingAudioProfile">GstEncodingAudioProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type" title="gst_netaddress_get_net_type ()">gst_netaddress_get_net_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct" title="GstEncodingContainerProfile">GstEncodingContainerProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GST-NETADDRESS-MAX-LEN:CAPS" title="GST_NETADDRESS_MAX_LEN">GST_NETADDRESS_MAX_LEN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct" title="GstEncodingProfile">GstEncodingProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" title="gst_netaddress_set_address_bytes ()">gst_netaddress_set_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct" title="GstEncodingTarget">GstEncodingTarget</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address" title="gst_netaddress_set_ip4_address ()">gst_netaddress_set_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct" title="GstEncodingVideoProfile">GstEncodingVideoProfile</a>, struct in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address" title="gst_netaddress_set_ip6_address ()">gst_netaddress_set_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" title="gst_netaddress_to_string ()">gst_netaddress_to_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-CAPTURE:CAPS" title="GST_ENCODING_CATEGORY_CAPTURE">GST_ENCODING_CATEGORY_CAPTURE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer" title="struct GstNetBuffer">GstNetBuffer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE">GST_ENCODING_CATEGORY_DEVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new" title="gst_netbuffer_new ()">gst_netbuffer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-ONLINE-SERVICE:CAPS" title="GST_ENCODING_CATEGORY_ONLINE_SERVICE">GST_ENCODING_CATEGORY_ONLINE_SERVICE</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType">GstNetType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-STORAGE-EDITING:CAPS" title="GST_ENCODING_CATEGORY_STORAGE_EDITING">GST_ENCODING_CATEGORY_STORAGE_EDITING</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
-<a name="idxP"></a><h3 class="title">P</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()">gst_pb_utils_add_codec_description_to_tag_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile" title="gst_encoding_container_profile_add_profile ()">gst_encoding_container_profile_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description" title="gst_pb_utils_get_codec_description ()">gst_pb_utils_get_codec_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-contains-profile" title="gst_encoding_container_profile_contains_profile ()">gst_encoding_container_profile_contains_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description" title="gst_pb_utils_get_decoder_description ()">gst_pb_utils_get_decoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-get-profiles" title="gst_encoding_container_profile_get_profiles ()">gst_encoding_container_profile_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description" title="gst_pb_utils_get_element_description ()">gst_pb_utils_get_element_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-encoder-description" title="gst_pb_utils_get_encoder_description ()">gst_pb_utils_get_encoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" title="gst_encoding_list_all_targets ()">gst_encoding_list_all_targets</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description" title="gst_pb_utils_get_sink_description ()">gst_pb_utils_get_sink_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" title="gst_encoding_list_available_categories ()">gst_encoding_list_available_categories</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description" title="gst_pb_utils_get_source_description ()">gst_pb_utils_get_source_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" title="gst_pb_utils_init ()">gst_pb_utils_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer" title="gst_encoding_profile_from_discoverer ()">gst_encoding_profile_from_discoverer</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-input-caps" title="gst_encoding_profile_get_input_caps ()">gst_encoding_profile_get_input_caps</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-struct" title="GstPropertyProbe">GstPropertyProbe</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed" title='The "probe-needed" signal'>GstPropertyProbe::probe-needed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick" title="gst_encoding_profile_get_type_nick ()">gst_encoding_profile_get_type_nick</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbeInterface" title="struct GstPropertyProbeInterface">GstPropertyProbeInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal" title="gst_encoding_profile_is_equal ()">gst_encoding_profile_is_equal</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-properties" title="gst_property_probe_get_properties ()">gst_property_probe_get_properties</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" title="gst_encoding_profile_ref()">gst_encoding_profile_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-property" title="gst_property_probe_get_property ()">gst_property_probe_get_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description" title="gst_encoding_profile_set_description ()">gst_encoding_profile_set_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values" title="gst_property_probe_get_values ()">gst_property_probe_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format" title="gst_encoding_profile_set_format ()">gst_encoding_profile_set_format</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values-name" title="gst_property_probe_get_values_name ()">gst_property_probe_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name" title="gst_encoding_profile_set_name ()">gst_encoding_profile_set_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe" title="gst_property_probe_needs_probe ()">gst_property_probe_needs_probe</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence" title="gst_encoding_profile_set_presence ()">gst_encoding_profile_set_presence</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe-name" title="gst_property_probe_needs_probe_name ()">gst_property_probe_needs_probe_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset" title="gst_encoding_profile_set_preset ()">gst_encoding_profile_set_preset</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values" title="gst_property_probe_probe_and_get_values ()">gst_property_probe_probe_and_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction" title="gst_encoding_profile_set_restriction ()">gst_encoding_profile_set_restriction</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values-name" title="gst_property_probe_probe_and_get_values_name ()">gst_property_probe_probe_and_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" title="gst_encoding_profile_unref()">gst_encoding_profile_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property" title="gst_property_probe_probe_property ()">gst_property_probe_probe_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-add-profile" title="gst_encoding_target_add_profile ()">gst_encoding_target_add_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name" title="gst_property_probe_probe_property_name ()">gst_property_probe_probe_property_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-category" title="gst_encoding_target_get_category ()">gst_encoding_target_get_category</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
-<a name="idxR"></a><h3 class="title">R</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS" title="GST_RIFF_00">GST_RIFF_00</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-description" title="gst_encoding_target_get_description ()">gst_encoding_target_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS" title="GST_RIFF_0021">GST_RIFF_0021</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-name" title="gst_encoding_target_get_name ()">gst_encoding_target_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS" title="GST_RIFF_0031">GST_RIFF_0031</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profile" title="gst_encoding_target_get_profile ()">gst_encoding_target_get_profile</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS" title="GST_RIFF_0032">GST_RIFF_0032</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profiles" title="gst_encoding_target_get_profiles ()">gst_encoding_target_get_profiles</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS" title="GST_RIFF_00AM">GST_RIFF_00AM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load" title="gst_encoding_target_load ()">gst_encoding_target_load</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db" title="GST_RIFF_00db">GST_RIFF_00db</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file" title="gst_encoding_target_load_from_file ()">gst_encoding_target_load_from_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc" title="GST_RIFF_00dc">GST_RIFF_00dc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-new" title="gst_encoding_target_new ()">gst_encoding_target_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx" title="GST_RIFF_00dx">GST_RIFF_00dx</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-ref" title="gst_encoding_target_ref()">gst_encoding_target_ref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id" title="GST_RIFF_00id">GST_RIFF_00id</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save" title="gst_encoding_target_save ()">gst_encoding_target_save</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv" title="GST_RIFF_00iv">GST_RIFF_00iv</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save-to-file" title="gst_encoding_target_save_to_file ()">gst_encoding_target_save_to_file</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc" title="GST_RIFF_00pc">GST_RIFF_00pc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-unref" title="gst_encoding_target_unref()">gst_encoding_target_unref</a>, macro in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt" title="GST_RIFF_00rt">GST_RIFF_00rt</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-pass" title="gst_encoding_video_profile_get_pass ()">gst_encoding_video_profile_get_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc" title="GST_RIFF_00vc">GST_RIFF_00vc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-variableframerate" title="gst_encoding_video_profile_get_variableframerate ()">gst_encoding_video_profile_get_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm" title="GST_RIFF_00xm">GST_RIFF_00xm</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx" title="GST_RIFF_00xx">GST_RIFF_00xx</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-pass" title="gst_encoding_video_profile_set_pass ()">gst_encoding_video_profile_set_pass</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS" title="GST_RIFF_00__">GST_RIFF_00__</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate" title="gst_encoding_video_profile_set_variableframerate ()">gst_encoding_video_profile_set_variableframerate</a>, function in <a class="link" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">encoding-profile</a>
</dt>
<dd></dd>
+<a name="idxF"></a><h3 class="title">F</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS" title="GST_RIFF_01">GST_RIFF_01</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32">GstFFTF32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc" title="GST_RIFF_01dc">GST_RIFF_01dc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex">GstFFTF32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc" title="GST_RIFF_01pc">GST_RIFF_01pc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64">GstFFTF64</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb" title="GST_RIFF_01wb">GST_RIFF_01wb</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex">GstFFTF64Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS" title="GST_RIFF_02">GST_RIFF_02</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16">GstFFTS16</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS" title="GST_RIFF_03">GST_RIFF_03</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex">GstFFTS16Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS" title="GST_RIFF_04">GST_RIFF_04</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32">GstFFTS32</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS" title="GST_RIFF_05">GST_RIFF_05</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex">GstFFTS32Complex</a>, struct in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS" title="GST_RIFF_06">GST_RIFF_06</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow">GstFFTWindow</a>, enum in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS" title="GST_RIFF_07">GST_RIFF_07</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()">gst_fft_f32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-acid" title="gst_riff_acid">gst_riff_acid</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free" title="gst_fft_f32_free ()">gst_fft_f32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS" title="GST_RIFF_AURA">GST_RIFF_AURA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()">gst_fft_f32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr" title="GST_RIFF_azpr">GST_RIFF_azpr</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()">gst_fft_f32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS" title="GST_RIFF_BW10">GST_RIFF_BW10</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window" title="gst_fft_f32_window ()">gst_fft_f32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">gstfftf32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10" title="GST_RIFF_bw10">GST_RIFF_bw10</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft" title="gst_fft_f64_fft ()">gst_fft_f64_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc" title="GST_RIFF_ccc">GST_RIFF_ccc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free" title="gst_fft_f64_free ()">gst_fft_f64_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS" title="GST_RIFF_CCC">GST_RIFF_CCC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft" title="gst_fft_f64_inverse_fft ()">gst_fft_f64_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram" title="GST_RIFF_cram">GST_RIFF_cram</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()">gst_fft_f64_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS" title="GST_RIFF_CRAM">GST_RIFF_CRAM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window" title="gst_fft_f64_window ()">gst_fft_f64_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">gstfftf64</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()">gst_fft_next_fast_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstfft.html" title="gstfft">gstfft</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps" title="gst_riff_create_audio_template_caps ()">gst_riff_create_audio_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()">gst_fft_s16_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free" title="gst_fft_s16_free ()">gst_fft_s16_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps" title="gst_riff_create_iavs_template_caps ()">gst_riff_create_iavs_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()">gst_fft_s16_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()">gst_fft_s16_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps" title="gst_riff_create_video_template_caps ()">gst_riff_create_video_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window" title="gst_fft_s16_window ()">gst_fft_s16_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">gstffts16</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid" title="GST_RIFF_cvid">GST_RIFF_cvid</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()">gst_fft_s32_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS" title="GST_RIFF_CVID">GST_RIFF_CVID</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free" title="gst_fft_s32_free ()">gst_fft_s32_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS" title="GST_RIFF_CYUV">GST_RIFF_CYUV</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()">gst_fft_s32_inverse_fft</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv" title="GST_RIFF_cyuv">GST_RIFF_cyuv</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()">gst_fft_s32_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS" title="GST_RIFF_DIB">GST_RIFF_DIB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window" title="gst_fft_s32_window ()">gst_fft_s32_window</a>, function in <a class="link" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">gstffts32</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS" title="GST_RIFF_DISP">GST_RIFF_DISP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS" title="GST_FRAMES_TO_CLOCK_TIME()">GST_FRAMES_TO_CLOCK_TIME</a>, macro in <a class="link" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">gstaudio</a>
</dt>
<dd></dd>
+<a name="idxI"></a><h3 class="title">I</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS" title="GST_RIFF_DIV3">GST_RIFF_DIV3</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext">GstInstallPluginsContext</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1" title="GST_RIFF_dmb1">GST_RIFF_dmb1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()">GstInstallPluginsResultFunc</a>, user_function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS" title="GST_RIFF_DMB1">GST_RIFF_DMB1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn">GstInstallPluginsReturn</a>, enum in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh" title="gst_riff_dmlh">gst_riff_dmlh</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS" title="GST_RIFF_FCCH_MSVC">GST_RIFF_FCCH_MSVC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()">gst_install_plugins_context_free</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc" title="GST_RIFF_FCCH_msvc">GST_RIFF_FCCH_msvc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS" title="GST_RIFF_FCCH_RLE">GST_RIFF_FCCH_RLE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds" title="GST_RIFF_FCC_auds">GST_RIFF_FCC_auds</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress" title="gst_install_plugins_installation_in_progress ()">gst_install_plugins_installation_in_progress</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs" title="GST_RIFF_FCC_iavs">GST_RIFF_FCC_iavs</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name" title="gst_install_plugins_return_get_name ()">gst_install_plugins_return_get_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads" title="GST_RIFF_FCC_pads">GST_RIFF_FCC_pads</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported" title="gst_install_plugins_supported ()">gst_install_plugins_supported</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts" title="GST_RIFF_FCC_txts">GST_RIFF_FCC_txts</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">gstpbutilsinstallplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc" title="GST_RIFF_FCC_vidc">GST_RIFF_FCC_vidc</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message" title="gst_is_missing_plugin_message ()">gst_is_missing_plugin_message</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
+<a name="idxM"></a><h3 class="title">M</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids" title="GST_RIFF_FCC_vids">GST_RIFF_FCC_vids</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" title="gst_missing_decoder_installer_detail_new ()">gst_missing_decoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS" title="GST_RIFF_FF00">GST_RIFF_FF00</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new" title="gst_missing_decoder_message_new ()">gst_missing_decoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS" title="GST_RIFF_H263">GST_RIFF_H263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" title="gst_missing_element_installer_detail_new ()">gst_missing_element_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263" title="GST_RIFF_h263">GST_RIFF_h263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new" title="gst_missing_element_message_new ()">gst_missing_element_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263" title="GST_RIFF_i263">GST_RIFF_i263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" title="gst_missing_encoder_installer_detail_new ()">gst_missing_encoder_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS" title="GST_RIFF_I420">GST_RIFF_I420</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new" title="gst_missing_encoder_message_new ()">gst_missing_encoder_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420" title="GST_RIFF_i420">GST_RIFF_i420</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()">gst_missing_plugin_message_get_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS" title="GST_RIFF_IDIT">GST_RIFF_IDIT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()">gst_missing_plugin_message_get_installer_detail</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS" title="GST_RIFF_IJPG">GST_RIFF_IJPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-installer-detail-new" title="gst_missing_uri_sink_installer_detail_new ()">gst_missing_uri_sink_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry" title="gst_riff_index_entry">gst_riff_index_entry</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new" title="gst_missing_uri_sink_message_new ()">gst_missing_uri_sink_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS" title="GST_RIFF_INFO_IARL">GST_RIFF_INFO_IARL</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-installer-detail-new" title="gst_missing_uri_source_installer_detail_new ()">gst_missing_uri_source_installer_detail_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS" title="GST_RIFF_INFO_IART">GST_RIFF_INFO_IART</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new" title="gst_missing_uri_source_message_new ()">gst_missing_uri_source_message_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">gstpbutilsmissingplugins</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS" title="GST_RIFF_INFO_ICMS">GST_RIFF_INFO_ICMS</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-struct" title="GstMixer">GstMixer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS" title="GST_RIFF_INFO_ICMT">GST_RIFF_INFO_ICMT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-mute-toggled" title='The "mute-toggled" signal'>GstMixer::mute-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS" title="GST_RIFF_INFO_ICOP">GST_RIFF_INFO_ICOP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-option-changed" title='The "option-changed" signal'>GstMixer::option-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS" title="GST_RIFF_INFO_ICRD">GST_RIFF_INFO_ICRD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-record-toggled" title='The "record-toggled" signal'>GstMixer::record-toggled</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS" title="GST_RIFF_INFO_ICRP">GST_RIFF_INFO_ICRP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer-volume-changed" title='The "volume-changed" signal'>GstMixer::volume-changed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS" title="GST_RIFF_INFO_IDIM">GST_RIFF_INFO_IDIM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags">GstMixerFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS" title="GST_RIFF_INFO_IDPI">GST_RIFF_INFO_IDPI</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType">GstMixerMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS" title="GST_RIFF_INFO_IENG">GST_RIFF_INFO_IENG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct" title="struct GstMixerOptions">GstMixerOptions</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS" title="GST_RIFF_INFO_IGNR">GST_RIFF_INFO_IGNR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct" title="struct GstMixerTrack">GstMixerTrack</a>, struct in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS" title="GST_RIFF_INFO_IKEY">GST_RIFF_INFO_IKEY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags" title='The "flags" property'>GstMixerTrack:flags</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS" title="GST_RIFF_INFO_ILGT">GST_RIFF_INFO_ILGT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index" title='The "index" property'>GstMixerTrack:index</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS" title="GST_RIFF_INFO_IMED">GST_RIFF_INFO_IMED</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label" title='The "label" property'>GstMixerTrack:label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS" title="GST_RIFF_INFO_INAM">GST_RIFF_INFO_INAM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume" title='The "max-volume" property'>GstMixerTrack:max-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS" title="GST_RIFF_INFO_IPLT">GST_RIFF_INFO_IPLT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume" title='The "min-volume" property'>GstMixerTrack:min-volume</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS" title="GST_RIFF_INFO_IPRD">GST_RIFF_INFO_IPRD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels" title='The "num-channels" property'>GstMixerTrack:num-channels</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS" title="GST_RIFF_INFO_ISBJ">GST_RIFF_INFO_ISBJ</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label" title='The "untranslated-label" property'>GstMixerTrack:untranslated-label</a>, object property in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS" title="GST_RIFF_INFO_ISFT">GST_RIFF_INFO_ISFT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags" title="enum GstMixerTrackFlags">GstMixerTrackFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS" title="GST_RIFF_INFO_ISHP">GST_RIFF_INFO_ISHP</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType">GstMixerType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS" title="GST_RIFF_INFO_ISRC">GST_RIFF_INFO_ISRC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS" title="GST_RIFF_INFO_ISRF">GST_RIFF_INFO_ISRF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS" title="GST_RIFF_INFO_ITCH">GST_RIFF_INFO_ITCH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option" title="gst_mixer_get_option ()">gst_mixer_get_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-init" title="gst_riff_init ()">gst_riff_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume" title="gst_mixer_get_volume ()">gst_mixer_get_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS" title="GST_RIFF_ISBJ">GST_RIFF_ISBJ</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks" title="gst_mixer_list_tracks ()">gst_mixer_list_tracks</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS" title="GST_RIFF_ISFT">GST_RIFF_ISFT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31" title="GST_RIFF_iv31">GST_RIFF_iv31</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS" title="GST_RIFF_IV31">GST_RIFF_IV31</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed" title="gst_mixer_message_parse_options_list_changed ()">gst_mixer_message_parse_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS" title="GST_RIFF_IV32">GST_RIFF_IV32</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed" title="gst_mixer_message_parse_option_changed ()">gst_mixer_message_parse_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32" title="GST_RIFF_iv32">GST_RIFF_iv32</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled" title="gst_mixer_message_parse_record_toggled ()">gst_mixer_message_parse_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41" title="GST_RIFF_iv41">GST_RIFF_iv41</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed" title="gst_mixer_message_parse_volume_changed ()">gst_mixer_message_parse_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS" title="GST_RIFF_IV41">GST_RIFF_IV41</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50" title="GST_RIFF_iv50">GST_RIFF_iv50</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled" title="gst_mixer_mute_toggled ()">gst_mixer_mute_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS" title="GST_RIFF_IV50">GST_RIFF_IV50</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()">gst_mixer_options_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">gstmixeroptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv" title="GST_RIFF_iyuv">GST_RIFF_iyuv</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed" title="gst_mixer_options_list_changed ()">gst_mixer_options_list_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS" title="GST_RIFF_IYUV">GST_RIFF_IYUV</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed" title="gst_mixer_option_changed ()">gst_mixer_option_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS" title="GST_RIFF_JPEG">GST_RIFF_JPEG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled" title="gst_mixer_record_toggled ()">gst_mixer_record_toggled</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg" title="GST_RIFF_jpeg">GST_RIFF_jpeg</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute" title="gst_mixer_set_mute ()">gst_mixer_set_mute</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS" title="GST_RIFF_L263">GST_RIFF_L263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option" title="gst_mixer_set_option ()">gst_mixer_set_option</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl" title="GST_RIFF_LIST_adtl">GST_RIFF_LIST_adtl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record" title="gst_mixer_set_record ()">gst_mixer_set_record</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS" title="GST_RIFF_LIST_AVIX">GST_RIFF_LIST_AVIX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume" title="gst_mixer_set_volume ()">gst_mixer_set_volume</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl" title="GST_RIFF_LIST_hdrl">GST_RIFF_LIST_hdrl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS" title="GST_MIXER_TRACK_HAS_FLAG()">GST_MIXER_TRACK_HAS_FLAG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">gstmixertrack</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS" title="GST_RIFF_LIST_INFO">GST_RIFF_LIST_INFO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed" title="gst_mixer_volume_changed ()">gst_mixer_volume_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">gstmixer</a>
</dt>
<dd></dd>
+<a name="idxN"></a><h3 class="title">N</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi" title="GST_RIFF_LIST_movi">GST_RIFF_LIST_movi</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct" title="GstNavigation">GstNavigation</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml" title="GST_RIFF_LIST_odml">GST_RIFF_LIST_odml</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand">GstNavigationCommand</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl" title="GST_RIFF_LIST_strl">GST_RIFF_LIST_strl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType">GstNavigationEventType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263" title="GST_RIFF_m263">GST_RIFF_m263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface" title="struct GstNavigationInterface">GstNavigationInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS" title="GST_RIFF_M263">GST_RIFF_M263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType">GstNavigationMessageType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG" title="GST_RIFF_mJPG">GST_RIFF_mJPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType">GstNavigationQueryType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS" title="GST_RIFF_MJPG">GST_RIFF_MJPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU">GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS" title="GST_RIFF_MPIX">GST_RIFF_MPIX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU">GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1" title="GST_RIFF_mvi1">GST_RIFF_mvi1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU">GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS" title="GST_RIFF_MVI1">GST_RIFF_MVI1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_MENU">GST_NAVIGATION_COMMAND_DVD_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-none" title="GST_RIFF_none">GST_RIFF_none</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU">GST_NAVIGATION_COMMAND_DVD_ROOT_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS" title="GST_RIFF_NONE">GST_RIFF_NONE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU">GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack" title="GST_RIFF_pack">GST_RIFF_pack</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS" title="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU">GST_NAVIGATION_COMMAND_DVD_TITLE_MENU</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS" title="GST_RIFF_PACK">GST_RIFF_PACK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()">gst_navigation_event_parse_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk" title="gst_riff_parse_chunk ()">gst_riff_parse_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()">gst_navigation_event_parse_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header" title="gst_riff_parse_file_header ()">gst_riff_parse_file_header</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()">gst_navigation_event_parse_mouse_button_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info" title="gst_riff_parse_info ()">gst_riff_parse_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()">gst_navigation_event_parse_mouse_move_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds" title="gst_riff_parse_strf_auds ()">gst_riff_parse_strf_auds</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs" title="gst_riff_parse_strf_iavs ()">gst_riff_parse_strf_iavs</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids" title="gst_riff_parse_strf_vids ()">gst_riff_parse_strf_vids</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed" title="gst_navigation_message_new_commands_changed ()">gst_navigation_message_new_commands_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh" title="gst_riff_parse_strh ()">gst_riff_parse_strh</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over" title="gst_navigation_message_new_mouse_over ()">gst_navigation_message_new_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS" title="GST_RIFF_Q1_0">GST_RIFF_Q1_0</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed" title="gst_navigation_message_parse_angles_changed ()">gst_navigation_message_parse_angles_changed</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS" title="GST_RIFF_RAW">GST_RIFF_RAW</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over" title="gst_navigation_message_parse_mouse_over ()">gst_navigation_message_parse_mouse_over</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk" title="gst_riff_read_chunk ()">gst_riff_read_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec" title="GST_RIFF_rec">GST_RIFF_rec</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb" title="GST_RIFF_rgb">GST_RIFF_rgb</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS" title="GST_RIFF_RGB">GST_RIFF_RGB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS" title="GST_RIFF_RIFF_AVI">GST_RIFF_RIFF_AVI</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length" title="gst_navigation_query_parse_commands_length ()">gst_navigation_query_parse_commands_length</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS" title="GST_RIFF_RIFF_CDXA">GST_RIFF_RIFF_CDXA</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth" title="gst_navigation_query_parse_commands_nth ()">gst_navigation_query_parse_commands_nth</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS" title="GST_RIFF_RIFF_WAVE">GST_RIFF_RIFF_WAVE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles" title="gst_navigation_query_set_angles ()">gst_navigation_query_set_angles</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS" title="GST_RIFF_RLE4">GST_RIFF_RLE4</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands" title="gst_navigation_query_set_commands ()">gst_navigation_query_set_commands</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4" title="GST_RIFF_rle4">GST_RIFF_rle4</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv" title="gst_navigation_query_set_commandsv ()">gst_navigation_query_set_commandsv</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8" title="GST_RIFF_rle8">GST_RIFF_rle8</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command" title="gst_navigation_send_command ()">gst_navigation_send_command</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS" title="GST_RIFF_RLE8">GST_RIFF_RLE8</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event" title="gst_navigation_send_event ()">gst_navigation_send_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza" title="GST_RIFF_rpza">GST_RIFF_rpza</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event" title="gst_navigation_send_key_event ()">gst_navigation_send_key_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21" title="GST_RIFF_rt21">GST_RIFF_rt21</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event" title="gst_navigation_send_mouse_event ()">gst_navigation_send_mouse_event</a>, function in <a class="link" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">gstnavigation</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS" title="GST_RIFF_RT21">GST_RIFF_RT21</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress">GstNetAddress</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS" title="GST_RIFF_SFMC">GST_RIFF_SFMC</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" title="gst_netaddress_equal ()">gst_netaddress_equal</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds">gst_riff_strf_auds</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes" title="gst_netaddress_get_address_bytes ()">gst_netaddress_get_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs">gst_riff_strf_iavs</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address" title="gst_netaddress_get_ip4_address ()">gst_netaddress_get_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids">gst_riff_strf_vids</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address" title="gst_netaddress_get_ip6_address ()">gst_netaddress_get_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh">gst_riff_strh</a>, struct in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type" title="gst_netaddress_get_net_type ()">gst_netaddress_get_net_type</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid" title="GST_RIFF_TAG_acid">GST_RIFF_TAG_acid</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GST-NETADDRESS-MAX-LEN:CAPS" title="GST_NETADDRESS_MAX_LEN">GST_NETADDRESS_MAX_LEN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS" title="GST_RIFF_TAG_AVF0">GST_RIFF_TAG_AVF0</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" title="gst_netaddress_set_address_bytes ()">gst_netaddress_set_address_bytes</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih" title="GST_RIFF_TAG_avih">GST_RIFF_TAG_avih</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address" title="gst_netaddress_set_ip4_address ()">gst_netaddress_set_ip4_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext" title="GST_RIFF_TAG_bext">GST_RIFF_TAG_bext</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address" title="gst_netaddress_set_ip6_address ()">gst_netaddress_set_ip6_address</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS" title="GST_RIFF_TAG_BEXT">GST_RIFF_TAG_BEXT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" title="gst_netaddress_to_string ()">gst_netaddress_to_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue" title="GST_RIFF_TAG_cue">GST_RIFF_TAG_cue</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer" title="struct GstNetBuffer">GstNetBuffer</a>, struct in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data" title="GST_RIFF_TAG_data">GST_RIFF_TAG_data</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new" title="gst_netbuffer_new ()">gst_netbuffer_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh" title="GST_RIFF_TAG_dmlh">GST_RIFF_TAG_dmlh</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType">GstNetType</a>, enum in <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">gstnetbuffer</a>
</dt>
<dd></dd>
+<a name="idxP"></a><h3 class="title">P</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact" title="GST_RIFF_TAG_fact">GST_RIFF_TAG_fact</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()">gst_pb_utils_add_codec_description_to_tag_list</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt" title="GST_RIFF_TAG_fmt">GST_RIFF_TAG_fmt</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description" title="gst_pb_utils_get_codec_description ()">gst_pb_utils_get_codec_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1" title="GST_RIFF_TAG_idx1">GST_RIFF_TAG_idx1</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description" title="gst_pb_utils_get_decoder_description ()">gst_pb_utils_get_decoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS" title="GST_RIFF_TAG_JUNK">GST_RIFF_TAG_JUNK</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description" title="gst_pb_utils_get_element_description ()">gst_pb_utils_get_element_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS" title="GST_RIFF_TAG_JUNQ">GST_RIFF_TAG_JUNQ</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-encoder-description" title="gst_pb_utils_get_encoder_description ()">gst_pb_utils_get_encoder_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS" title="GST_RIFF_TAG_LIST">GST_RIFF_TAG_LIST</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description" title="gst_pb_utils_get_sink_description ()">gst_pb_utils_get_sink_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst" title="GST_RIFF_TAG_plst">GST_RIFF_TAG_plst</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description" title="gst_pb_utils_get_source_description ()">gst_pb_utils_get_source_description</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">gstpbutilsdescriptions</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS" title="GST_RIFF_TAG_RIFF">GST_RIFF_TAG_RIFF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" title="gst_pb_utils_init ()">gst_pb_utils_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">gstpbutils</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS" title="GST_RIFF_TAG_RIFX">GST_RIFF_TAG_RIFX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a>, function in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd" title="GST_RIFF_TAG_strd">GST_RIFF_TAG_strd</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf" title="GST_RIFF_TAG_strf">GST_RIFF_TAG_strf</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh" title="GST_RIFF_TAG_strh">GST_RIFF_TAG_strh</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn" title="GST_RIFF_TAG_strn">GST_RIFF_TAG_strn</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>, macro in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt" title="GST_RIFF_TAG_vedt">GST_RIFF_TAG_vedt</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">gstpluginsbaseversion</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran" title="GST_RIFF_tran">GST_RIFF_tran</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-struct" title="GstPropertyProbe">GstPropertyProbe</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS" title="GST_RIFF_TRAN">GST_RIFF_TRAN</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed" title='The "probe-needed" signal'>GstPropertyProbe::probe-needed</a>, object signal in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti" title="GST_RIFF_ulti">GST_RIFF_ulti</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbeInterface" title="struct GstPropertyProbeInterface">GstPropertyProbeInterface</a>, struct in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS" title="GST_RIFF_ULTI">GST_RIFF_ULTI</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-properties" title="gst_property_probe_get_properties ()">gst_property_probe_get_properties</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS" title="GST_RIFF_V422">GST_RIFF_V422</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-property" title="gst_property_probe_get_property ()">gst_property_probe_get_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422" title="GST_RIFF_v422">GST_RIFF_v422</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values" title="gst_property_probe_get_values ()">gst_property_probe_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS" title="GST_RIFF_VDOW">GST_RIFF_VDOW</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values-name" title="gst_property_probe_get_values_name ()">gst_property_probe_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl" title="GST_RIFF_vixl">GST_RIFF_vixl</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe" title="gst_property_probe_needs_probe ()">gst_property_probe_needs_probe</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS" title="GST_RIFF_VIXL">GST_RIFF_VIXL</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe-name" title="gst_property_probe_needs_probe_name ()">gst_property_probe_needs_probe_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS" title="GST_RIFF_VSSH">GST_RIFF_VSSH</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values" title="gst_property_probe_probe_and_get_values ()">gst_property_probe_probe_and_get_values</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy" title="GST_RIFF_vyuy">GST_RIFF_vyuy</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values-name" title="gst_property_probe_probe_and_get_values_name ()">gst_property_probe_probe_and_get_values_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS" title="GST_RIFF_VYUY">GST_RIFF_VYUY</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property" title="gst_property_probe_probe_property ()">gst_property_probe_probe_property</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham" title="GST_RIFF_wham">GST_RIFF_wham</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name" title="gst_property_probe_probe_property_name ()">gst_property_probe_probe_property_name</a>, function in <a class="link" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">gstpropertyprobe</a>
</dt>
<dd></dd>
+<a name="idxR"></a><h3 class="title">R</h3>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS" title="GST_RIFF_WHAM">GST_RIFF_WHAM</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS" title="GST_RIFF_WINX">GST_RIFF_WINX</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps" title="gst_riff_create_audio_template_caps ()">gst_riff_create_audio_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS" title="GST_RIFF_WPY2">GST_RIFF_WPY2</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263" title="GST_RIFF_x263">GST_RIFF_x263</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps" title="gst_riff_create_iavs_template_caps ()">gst_riff_create_iavs_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS" title="GST_RIFF_XMPG">GST_RIFF_XMPG</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg" title="GST_RIFF_xmpg">GST_RIFF_xmpg</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps" title="gst_riff_create_video_template_caps ()">gst_riff_create_video_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS" title="GST_RIFF_Y41P">GST_RIFF_Y41P</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-init" title="gst_riff_init ()">gst_riff_init</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p" title="GST_RIFF_y41p">GST_RIFF_y41p</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk" title="gst_riff_parse_chunk ()">gst_riff_parse_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS" title="GST_RIFF_YUV8">GST_RIFF_YUV8</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header" title="gst_riff_parse_file_header ()">gst_riff_parse_file_header</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS" title="GST_RIFF_YUV9">GST_RIFF_YUV9</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info" title="gst_riff_parse_info ()">gst_riff_parse_info</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2" title="GST_RIFF_yuy2">GST_RIFF_yuy2</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds" title="gst_riff_parse_strf_auds ()">gst_riff_parse_strf_auds</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS" title="GST_RIFF_YUY2">GST_RIFF_YUY2</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs" title="gst_riff_parse_strf_iavs ()">gst_riff_parse_strf_iavs</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS" title="GST_RIFF_YV12">GST_RIFF_YV12</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids" title="gst_riff_parse_strf_vids ()">gst_riff_parse_strf_vids</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12" title="GST_RIFF_yv12">GST_RIFF_yv12</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh" title="gst_riff_parse_strh ()">gst_riff_parse_strh</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
-<a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS" title="GST_RIFF_YVU9">GST_RIFF_YVU9</a>, macro in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
+<a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk" title="gst_riff_read_chunk ()">gst_riff_read_chunk</a>, function in <a class="link" href="gst-plugins-base-libs-gstriff.html" title="gstriff">gstriff</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags">GstTagLicenseFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux">GstTagMux</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">gsttagmux</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass">GstTagMuxClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">gsttagmux</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-CONTRAST:CAPS" title="GST_TAG_CAPTURING_CONTRAST">GST_TAG_CAPTURING_CONTRAST</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" title="GST_TAG_CAPTURING_EXPOSURE_COMPENSATION">GST_TAG_CAPTURING_EXPOSURE_COMPENSATION</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-MODE:CAPS" title="GST_TAG_CAPTURING_EXPOSURE_MODE">GST_TAG_CAPTURING_EXPOSURE_MODE</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()">gst_tag_get_id3v2_tag_size</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">gsttagid3</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code" title="gst_tag_get_language_code()">gst_tag_get_language_code</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">gsttaglanguagecodes</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" title="gst_tag_get_licenses ()">gst_tag_get_licenses</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description" title="gst_tag_get_license_description ()">gst_tag_get_license_description</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags" title="gst_tag_get_license_flags ()">gst_tag_get_license_flags</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" title="gst_tag_get_license_jurisdiction ()">gst_tag_get_license_jurisdiction</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick" title="gst_tag_get_license_nick ()">gst_tag_get_license_nick</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title" title="gst_tag_get_license_title ()">gst_tag_get_license_title</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" title="gst_tag_get_license_version ()">gst_tag_get_license_version</a>, function in <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">gsttaglicenses</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE">GST_TAG_ID3V2_HEADER_SIZE</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count" title="gst_tag_id3_genre_count ()">gst_tag_id3_genre_count</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">gsttagid3</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
-gst_tag_list_from_exif_buffer, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer" title="gst_tag_list_from_exif_buffer ()">gst_tag_list_from_exif_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header" title="gst_tag_list_from_exif_buffer_with_tiff_header ()">gst_tag_list_from_exif_buffer_with_tiff_header</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
</dt>
<dd></dd>
<dt>
-gst_tag_list_from_exif_buffer_with_tiff_header, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()">gst_tag_list_from_id3v2_tag</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">gsttagid3</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
-gst_tag_list_to_exif_buffer, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer" title="gst_tag_list_to_exif_buffer ()">gst_tag_list_to_exif_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
</dt>
<dd></dd>
<dt>
-gst_tag_list_to_exif_buffer_with_tiff_header, function in gsttagexif
+<a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header" title="gst_tag_list_to_exif_buffer_with_tiff_header ()">gst_tag_list_to_exif_buffer_with_tiff_header</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">gsttagexif</a>
</dt>
<dd></dd>
<dt>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full" title="gst_tag_list_to_xmp_buffer_full ()">gst_tag_list_to_xmp_buffer_full</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">gsttagxmp</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMARTISTID:CAPS" title="GST_TAG_MUSICBRAINZ_ALBUMARTISTID">GST_TAG_MUSICBRAINZ_ALBUMARTISTID</a>, macro in <a class="link" href="gst-plugins-base-libs-gsttag.html" title="gsttag">gsttag</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()">gst_tag_xmp_list_schemas</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">gsttagxmp</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas" title="gst_tag_xmp_writer_add_all_schemas ()">gst_tag_xmp_writer_add_all_schemas</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema" title="gst_tag_xmp_writer_add_schema ()">gst_tag_xmp_writer_add_schema</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" title="gst_tag_xmp_writer_has_schema ()">gst_tag_xmp_writer_has_schema</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas" title="gst_tag_xmp_writer_remove_all_schemas ()">gst_tag_xmp_writer_remove_all_schemas</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema" title="gst_tag_xmp_writer_remove_schema ()">gst_tag_xmp_writer_remove_schema</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer" title="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()">gst_tag_xmp_writer_tag_list_to_xmp_buffer</a>, function in <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">gsttagxmpwriter</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner-struct" title="GstTuner">GstTuner</a>, struct in <a class="link" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">gsttuner</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition">GstVideoOverlayComposition</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass" title="GstVideoOverlayCompositionClass">GstVideoOverlayCompositionClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags">GstVideoOverlayFormatFlags</a>, enum in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle">GstVideoOverlayRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass" title="GstVideoOverlayRectangleClass">GstVideoOverlayRectangleClass</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle">GstVideoRectangle</a>, struct in <a class="link" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">gstvideosink</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()">gst_video_buffer_get_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS" title="GST_VIDEO_BUFFER_ONEFIELD">GST_VIDEO_BUFFER_ONEFIELD</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" title="GST_VIDEO_BUFFER_PROGRESSIVE">GST_VIDEO_BUFFER_PROGRESSIVE</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS" title="GST_VIDEO_BUFFER_RFF">GST_VIDEO_BUFFER_RFF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" title="gst_video_buffer_set_overlay_composition ()">gst_video_buffer_set_overlay_composition</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS" title="GST_VIDEO_BUFFER_TFF">GST_VIDEO_BUFFER_TFF</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS" title="GST_VIDEO_CAPS_ARGB_64">GST_VIDEO_CAPS_ARGB_64</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR:CAPS" title="GST_VIDEO_CAPS_BGR">GST_VIDEO_CAPS_BGR</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210" title="GST_VIDEO_CAPS_r210">GST_VIDEO_CAPS_r210</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB:CAPS" title="GST_VIDEO_CAPS_RGB">GST_VIDEO_CAPS_RGB</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS" title="GST_VIDEO_COMP1_MASK_15">GST_VIDEO_COMP1_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS" title="GST_VIDEO_COMP1_MASK_15_INT">GST_VIDEO_COMP1_MASK_15_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS" title="GST_VIDEO_COMP1_MASK_16">GST_VIDEO_COMP1_MASK_16</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS" title="GST_VIDEO_COMP1_MASK_16_INT">GST_VIDEO_COMP1_MASK_16_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS" title="GST_VIDEO_COMP2_MASK_15">GST_VIDEO_COMP2_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS" title="GST_VIDEO_COMP2_MASK_15_INT">GST_VIDEO_COMP2_MASK_15_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS" title="GST_VIDEO_COMP2_MASK_16">GST_VIDEO_COMP2_MASK_16</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS" title="GST_VIDEO_COMP2_MASK_16_INT">GST_VIDEO_COMP2_MASK_16_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS" title="GST_VIDEO_COMP3_MASK_15">GST_VIDEO_COMP3_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS" title="GST_VIDEO_COMP3_MASK_15_INT">GST_VIDEO_COMP3_MASK_15_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS" title="GST_VIDEO_COMP3_MASK_16">GST_VIDEO_COMP3_MASK_16</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS" title="GST_VIDEO_COMP3_MASK_16_INT">GST_VIDEO_COMP3_MASK_16_INT</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame" title="gst_video_convert_frame ()">gst_video_convert_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" title="gst_video_event_is_force_key_unit ()">gst_video_event_is_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()">gst_video_event_new_downstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()">gst_video_event_new_still_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()">gst_video_event_new_upstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()">gst_video_event_parse_downstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()">gst_video_event_parse_still_frame</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" title="gst_video_event_parse_upstream_force_key_unit ()">gst_video_event_parse_upstream_force_key_unit</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert" title="gst_video_format_convert ()">gst_video_format_convert</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth" title="gst_video_format_get_component_depth ()">gst_video_format_get_component_depth</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height" title="gst_video_format_get_component_height ()">gst_video_format_get_component_height</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps" title="gst_video_format_new_template_caps ()">gst_video_format_new_template_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps" title="gst_video_format_parse_caps ()">gst_video_format_parse_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps" title="gst_video_get_size_from_caps ()">gst_video_get_size_from_caps</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS" title="GST_VIDEO_GREEN_MASK_15">GST_VIDEO_GREEN_MASK_15</a>, macro in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</dt>
<dd></dd>
<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle" title="gst_video_overlay_composition_add_rectangle ()">gst_video_overlay_composition_add_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()">gst_video_overlay_composition_blend</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()">gst_video_overlay_composition_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle" title="gst_video_overlay_composition_get_rectangle ()">gst_video_overlay_composition_get_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum" title="gst_video_overlay_composition_get_seqnum ()">gst_video_overlay_composition_get_seqnum</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()">gst_video_overlay_composition_make_writable</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new" title="gst_video_overlay_composition_new ()">gst_video_overlay_composition_new</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles" title="gst_video_overlay_composition_n_rectangles ()">gst_video_overlay_composition_n_rectangles</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" title="gst_video_overlay_composition_ref ()">gst_video_overlay_composition_ref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()">gst_video_overlay_composition_unref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" title="gst_video_overlay_rectangle_copy ()">gst_video_overlay_rectangle_copy</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb" title="gst_video_overlay_rectangle_get_pixels_argb ()">gst_video_overlay_rectangle_get_pixels_argb</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb" title="gst_video_overlay_rectangle_get_pixels_unscaled_argb ()">gst_video_overlay_rectangle_get_pixels_unscaled_argb</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()">gst_video_overlay_rectangle_get_render_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum" title="gst_video_overlay_rectangle_get_seqnum ()">gst_video_overlay_rectangle_get_seqnum</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb" title="gst_video_overlay_rectangle_new_argb ()">gst_video_overlay_rectangle_new_argb</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" title="gst_video_overlay_rectangle_ref ()">gst_video_overlay_rectangle_ref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle" title="gst_video_overlay_rectangle_set_render_rectangle ()">gst_video_overlay_rectangle_set_render_rectangle</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()">gst_video_overlay_rectangle_unref</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">gstvideooverlaycomposition</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-chroma-site" title="gst_video_parse_caps_chroma_site ()">gst_video_parse_caps_chroma_site</a>, function in <a class="link" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">gstvideo</a>
</dt>
<dd></dd>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Compiling</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="next" href="gstreamer-app.html" title="App Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8313760"></a><h2>Compiling against the base plugins libraries</h2>
+<a name="idp7713840"></a><h2>Compiling against the base plugins libraries</h2>
<p>
To compile against these libraries, you need to tell the compiler where to
find the header files and libraries. This is done with the
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>appsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-app.html" title="App Library">
<link rel="prev" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
<link rel="next" href="gstreamer-audio.html" title="Audio Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<pre class="synopsis">
#include <gst/app/gstappsink.h>
-struct <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink">GstAppSink</a>;
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps" title="gst_app_sink_set_caps ()">gst_app_sink_set_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps" title="gst_app_sink_set_caps ()">gst_app_sink_set_caps</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps" title="gst_app_sink_get_caps ()">gst_app_sink_get_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()">gst_app_sink_is_eos</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-emit-signals" title="gst_app_sink_set_emit_signals ()">gst_app_sink_set_emit_signals</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps" title="gst_app_sink_get_caps ()">gst_app_sink_get_caps</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()">gst_app_sink_is_eos</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-emit-signals" title="gst_app_sink_set_emit_signals ()">gst_app_sink_set_emit_signals</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-emit-signals" title="gst_app_sink_get_emit_signals ()">gst_app_sink_get_emit_signals</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-max-buffers" title="gst_app_sink_set_max_buffers ()">gst_app_sink_set_max_buffers</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-emit-signals" title="gst_app_sink_get_emit_signals ()">gst_app_sink_get_emit_signals</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-max-buffers" title="gst_app_sink_set_max_buffers ()">gst_app_sink_set_max_buffers</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-max-buffers" title="gst_app_sink_get_max_buffers ()">gst_app_sink_get_max_buffers</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-drop" title="gst_app_sink_set_drop ()">gst_app_sink_set_drop</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-max-buffers" title="gst_app_sink_get_max_buffers ()">gst_app_sink_get_max_buffers</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-drop" title="gst_app_sink_set_drop ()">gst_app_sink_set_drop</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> drop</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-drop" title="gst_app_sink_get_drop ()">gst_app_sink_get_drop</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()">gst_app_sink_pull_preroll</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer" title="gst_app_sink_pull_buffer ()">gst_app_sink_pull_buffer</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list" title="gst_app_sink_pull_buffer_list ()">gst_app_sink_pull_buffer_list</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-get-drop" title="gst_app_sink_get_drop ()">gst_app_sink_get_drop</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()">gst_app_sink_pull_preroll</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer" title="gst_app_sink_pull_buffer ()">gst_app_sink_pull_buffer</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> * <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list" title="gst_app_sink_pull_buffer_list ()">gst_app_sink_pull_buffer_list</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);
<a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks">GstAppSinkCallbacks</a>;
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()">gst_app_sink_set_callbacks</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()">gst_app_sink_set_callbacks</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks"><span class="type">GstAppSinkCallbacks</span></a> *callbacks</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
<div class="refsect1">
<a name="gst-plugins-base-libs-appsink.details"></a><h2>Details</h2>
<div class="refsect2">
-<a name="GstAppSink"></a><h3>struct GstAppSink</h3>
-<pre class="programlisting">struct GstAppSink {
- GstBaseSink basesink;
-};
-</pre>
-</div>
-<hr>
-<div class="refsect2">
<a name="gst-app-sink-set-caps"></a><h3>gst_app_sink_set_caps ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
<p>
Set the capabilities on the appsink element. This function takes
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-get-caps"></a><h3>gst_app_sink_get_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_app_sink_get_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_app_sink_get_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
Get the configured caps on <em class="parameter"><code>appsink</code></em>.
</p>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-is-eos"></a><h3>gst_app_sink_is_eos ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_sink_is_eos (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_sink_is_eos (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
Check if <em class="parameter"><code>appsink</code></em> is EOS, which is when no more buffers can be pulled because
an EOS event was received.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-set-emit-signals"></a><h3>gst_app_sink_set_emit_signals ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_emit_signals (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
<p>
Make appsink emit the "new-preroll" and "new-buffer" signals. This option is
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-get-emit-signals"></a><h3>gst_app_sink_get_emit_signals ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_sink_get_emit_signals (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_sink_get_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
Check if appsink will emit the "new-preroll" and "new-buffer" signals.
</p>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em> is emiting the "new-preroll" and "new-buffer"
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em> is emitting the "new-preroll" and "new-buffer"
signals.</td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="gst-app-sink-set-max-buffers"></a><h3>gst_app_sink_set_max_buffers ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_max_buffers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_max_buffers (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> max</code></em>);</pre>
<p>
Set the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>. After this
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-get-max-buffers"></a><h3>gst_app_sink_get_max_buffers ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_app_sink_get_max_buffers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_app_sink_get_max_buffers (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
Get the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>.
</p>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-set-drop"></a><h3>gst_app_sink_set_drop ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_drop (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_drop (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> drop</code></em>);</pre>
<p>
Instruct <em class="parameter"><code>appsink</code></em> to drop old buffers when the maximum amount of queued
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-get-drop"></a><h3>gst_app_sink_get_drop ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_sink_get_drop (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_sink_get_drop (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
Check if <em class="parameter"><code>appsink</code></em> will drop old buffers when the maximum amount of queued
buffers is reached.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-pull-preroll"></a><h3>gst_app_sink_pull_preroll ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_app_sink_pull_preroll (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_app_sink_pull_preroll (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
Get the last preroll buffer in <em class="parameter"><code>appsink</code></em>. This was the buffer that caused the
appsink to preroll in the PAUSED state. This buffer can be pulled many times
</p>
<p>
If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
</p>
<p>
This function blocks until a preroll buffer or EOS is received or the appsink
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-pull-buffer"></a><h3>gst_app_sink_pull_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_app_sink_pull_buffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_app_sink_pull_buffer (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
This function blocks until a buffer or EOS becomes available or the appsink
-element is set to the READY/NULL state.
+element is set to the READY/NULL state.
</p>
<p>
This function will only return buffers when the appsink is in the PLAYING
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-pull-buffer-list"></a><h3>gst_app_sink_pull_buffer_list ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> * gst_app_sink_pull_buffer_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> * gst_app_sink_pull_buffer_list (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
<p>
This function blocks until a buffer list or EOS becomes available or the
-appsink element is set to the READY/NULL state.
+appsink element is set to the READY/NULL state.
</p>
<p>
This function will only return buffer lists when the appsink is in the
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-sink-set-callbacks"></a><h3>gst_app_sink_set_callbacks ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_callbacks (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_sink_set_callbacks (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks"><span class="type">GstAppSinkCallbacks</span></a> *callbacks</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
less expensive, but also less flexible.
</p>
<p>
-If callbacks are installed, no signals will be emited for performance
+If callbacks are installed, no signals will be emitted for performance
reasons.
</p>
<div class="variablelist"><table border="0">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSink" title="struct GstAppSink"><span class="type">GstAppSink</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a>
</td>
</tr>
<tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>appsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-app.html" title="App Library">
<link rel="prev" href="gstreamer-app.html" title="App Library">
<link rel="next" href="gst-plugins-base-libs-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<pre class="synopsis">
#include <gst/app/gstappsrc.h>
-struct <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc">GstAppSrc</a>;
enum <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType">GstAppStreamType</a>;
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps" title="gst_app_src_set_caps ()">gst_app_src_set_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps" title="gst_app_src_set_caps ()">gst_app_src_set_caps</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps" title="gst_app_src_get_caps ()">gst_app_src_get_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-latency" title="gst_app_src_get_latency ()">gst_app_src_get_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *min</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *max</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-latency" title="gst_app_src_set_latency ()">gst_app_src_set_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> min</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size" title="gst_app_src_set_size ()">gst_app_src_set_size</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> size</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-size" title="gst_app_src_get_size ()">gst_app_src_get_size</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()">gst_app_src_set_stream_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps" title="gst_app_src_get_caps ()">gst_app_src_get_caps</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-latency" title="gst_app_src_get_latency ()">gst_app_src_get_latency</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *min</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *max</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-latency" title="gst_app_src_set_latency ()">gst_app_src_set_latency</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> min</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> max</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size" title="gst_app_src_set_size ()">gst_app_src_set_size</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> size</code></em>);
+<span class="returnvalue">gint64</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-size" title="gst_app_src_get_size ()">gst_app_src_get_size</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()">gst_app_src_set_stream_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="type">GstAppStreamType</span></a> type</code></em>);
-<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type" title="gst_app_src_get_stream_type ()">gst_app_src_get_stream_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes" title="gst_app_src_set_max_bytes ()">gst_app_src_set_max_bytes</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes" title="gst_app_src_get_max_bytes ()">gst_app_src_get_max_bytes</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals" title="gst_app_src_set_emit_signals ()">gst_app_src_set_emit_signals</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type" title="gst_app_src_get_stream_type ()">gst_app_src_get_stream_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes" title="gst_app_src_set_max_bytes ()">gst_app_src_set_max_bytes</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> max</code></em>);
+<span class="returnvalue">guint64</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes" title="gst_app_src_get_max_bytes ()">gst_app_src_get_max_bytes</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals" title="gst_app_src_set_emit_signals ()">gst_app_src_set_emit_signals</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);
<a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks">GstAppSrcCallbacks</a>;
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()">gst_app_src_set_callbacks</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()">gst_app_src_set_callbacks</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks"><span class="type">GstAppSrcCallbacks</span></a> *callbacks</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()">gst_app_src_push_buffer</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()">gst_app_src_push_buffer</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()">gst_app_src_end_of_stream</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()">gst_app_src_end_of_stream</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);
</pre>
</div>
<div class="refsect1">
</p>
<p>
The main way of handing data to the appsrc element is by calling the
-<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()"><code class="function">gst_app_src_push_buffer()</code></a> method or by emiting the push-buffer action signal.
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()"><code class="function">gst_app_src_push_buffer()</code></a> method or by emitting the push-buffer action signal.
This will put the buffer onto a queue from which appsrc will read from in its
streaming thread. It is important to note that data transport will not happen
from the thread that performed the push-buffer call.
</p>
<p>
When the internal queue is running out of data, the "need-data" signal is
-emited, which signals the application that it should start pushing more data
+emitted, which signals the application that it should start pushing more data
into appsrc.
</p>
<p>
ways:
</p>
<p>
-The push model, in which the application repeadedly calls the push-buffer method
+The push model, in which the application repeatedly calls the push-buffer method
with a new buffer. Optionally, the queue size in the appsrc can be controlled
with the enough-data and need-data signals by respectively stopping/starting
the push-buffer calls. This is a typical mode of operation for the
recommended.
</p>
<p>
-When the application is finished pushing data into appsrc, it should call
+When the application is finished pushing data into appsrc, it should call
<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()"><code class="function">gst_app_src_end_of_stream()</code></a> or emit the end-of-stream action signal. After
this call, no more buffers can be pushed into appsrc until a flushing seek
happened or the state of the appsrc has gone through READY.
<div class="refsect1">
<a name="gst-plugins-base-libs-appsrc.details"></a><h2>Details</h2>
<div class="refsect2">
-<a name="GstAppSrc"></a><h3>struct GstAppSrc</h3>
-<pre class="programlisting">struct GstAppSrc {
- GstBaseSrc basesrc;
-};
-</pre>
-</div>
-<hr>
-<div class="refsect2">
<a name="GstAppStreamType"></a><h3>enum GstAppStreamType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_APP_STREAM_TYPE_STREAM,
GST_APP_STREAM_TYPE_SEEKABLE,
GST_APP_STREAM_TYPE_RANDOM_ACCESS
<hr>
<div class="refsect2">
<a name="gst-app-src-set-caps"></a><h3>gst_app_src_set_caps ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
<p>
Set the capabilities on the appsrc element. This function takes
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-get-caps"></a><h3>gst_app_src_get_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_app_src_get_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_app_src_get_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
<p>
Get the configured caps on <em class="parameter"><code>appsrc</code></em>.
</p>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-get-latency"></a><h3>gst_app_src_get_latency ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *min</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *max</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_get_latency (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *min</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *max</code></em>);</pre>
<p>
Retrieve the min and max latencies in <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> respectively.
</p>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-set-latency"></a><h3>gst_app_src_set_latency ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> min</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_latency (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> min</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> max</code></em>);</pre>
<p>
Configure the <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> latency in <em class="parameter"><code>src</code></em>. If <em class="parameter"><code>min</code></em> is set to -1, the
default latency calculations for pseudo-live sources will be used.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-set-size"></a><h3>gst_app_src_set_size ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_size (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> size</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_size (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> size</code></em>);</pre>
<p>
Set the size of the stream in bytes. A value of -1 means that the size is
not known.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-get-size"></a><h3>gst_app_src_get_size ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a> gst_app_src_get_size (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">gint64</span> gst_app_src_get_size (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
<p>
Get the size of the stream in bytes. A value of -1 means that the size is
not known.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-set-stream-type"></a><h3>gst_app_src_set_stream_type ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_stream_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_stream_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="type">GstAppStreamType</span></a> type</code></em>);</pre>
<p>
Set the stream type on <em class="parameter"><code>appsrc</code></em>. For seekable streams, the "seek" signal must
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-get-stream-type"></a><h3>gst_app_src_get_stream_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a> gst_app_src_get_stream_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a> gst_app_src_get_stream_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
<p>
Get the stream type. Control the stream type of <em class="parameter"><code>appsrc</code></em>
with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()"><code class="function">gst_app_src_set_stream_type()</code></a>.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-set-max-bytes"></a><h3>gst_app_src_set_max_bytes ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_max_bytes (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_max_bytes (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> max</code></em>);</pre>
<p>
Set the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>.
After the maximum amount of bytes are queued, <em class="parameter"><code>appsrc</code></em> will emit the
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-get-max-bytes"></a><h3>gst_app_src_get_max_bytes ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> gst_app_src_get_max_bytes (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span> gst_app_src_get_max_bytes (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
<p>
Get the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>.
</p>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-get-emit-signals"></a><h3>gst_app_src_get_emit_signals ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_src_get_emit_signals (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_app_src_get_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
<p>
Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
</p>
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsrc</code></em> is emiting the "new-preroll" and "new-buffer"
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsrc</code></em> is emitting the "new-preroll" and "new-buffer"
signals.</td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="gst-app-src-set-emit-signals"></a><h3>gst_app_src_set_emit_signals ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_emit_signals (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_emit_signals (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
<p>
Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAppSrcCallbacks.enough-data"></a>enough_data</code></em> ()</span></p></td>
<td>Called when appsrc has enough data. It is recommended that the
application stops calling push-buffer until the need_data callback is
-emited again to avoid excessive buffer queueing.</td>
+emitted again to avoid excessive buffer queueing.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAppSrcCallbacks.seek-data"></a>seek_data</code></em> ()</span></p></td>
<hr>
<div class="refsect2">
<a name="gst-app-src-set-callbacks"></a><h3>gst_app_src_set_callbacks ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_callbacks (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_app_src_set_callbacks (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks"><span class="type">GstAppSrcCallbacks</span></a> *callbacks</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
less expensive, but also less flexible.
</p>
<p>
-If callbacks are installed, no signals will be emited for performance
+If callbacks are installed, no signals will be emitted for performance
reasons.
</p>
<div class="variablelist"><table border="0">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-push-buffer"></a><h3>gst_app_src_push_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_app_src_push_buffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_app_src_push_buffer (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Adds a buffer to the queue of buffers that the appsrc element will
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-app-src-end-of-stream"></a><h3>gst_app_src_end_of_stream ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_app_src_end_of_stream (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_app_src_end_of_stream (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
<p>
Indicates to the appsrc element that the last buffer queued in the
element is the last buffer of the stream.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrc" title="struct GstAppSrc"><span class="type">GstAppSrc</span></a>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a>
</td>
</tr>
<tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>encoding-profile</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
<link rel="prev" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
<link rel="next" href="gstreamer-video.html" title="Video Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct" title="GstEncodingProfile">GstEncodingProfile</a>;
#define <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" title="gst_encoding_profile_unref()">gst_encoding_profile_unref</a> (profile)
#define <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" title="gst_encoding_profile_ref()">gst_encoding_profile_ref</a> (profile)
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" title="gst_encoding_profile_find ()">gst_encoding_profile_find</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *profilename</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer" title="gst_encoding_profile_from_discoverer ()">gst_encoding_profile_from_discoverer</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" title="gst_encoding_profile_get_name ()">gst_encoding_profile_get_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" title="gst_encoding_profile_get_description ()">gst_encoding_profile_get_description</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" title="gst_encoding_profile_get_format ()">gst_encoding_profile_get_format</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset" title="gst_encoding_profile_get_preset ()">gst_encoding_profile_get_preset</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence" title="gst_encoding_profile_get_presence ()">gst_encoding_profile_get_presence</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()">gst_encoding_profile_get_restriction</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name" title="gst_encoding_profile_set_name ()">gst_encoding_profile_set_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick" title="gst_encoding_profile_get_type_nick ()">gst_encoding_profile_get_type_nick</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct" title="GstEncodingContainerProfile">GstEncodingContainerProfile</a>;
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new" title="gst_encoding_container_profile_new ()">gst_encoding_container_profile_new</a>
(<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *profile</code></em>);
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct" title="GstEncodingAudioProfile">GstEncodingAudioProfile</a>;
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new" title="gst_encoding_audio_profile_new ()">gst_encoding_audio_profile_new</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct" title="GstEncodingVideoProfile">GstEncodingVideoProfile</a>;
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> * <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new" title="gst_encoding_video_profile_new ()">gst_encoding_video_profile_new</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
<p>
</p>
<div class="refsect2">
-<a name="idp27641072"></a><p>
+<a name="idp29241168"></a><p>
Functions to create and handle encoding profiles.
</p>
<p>
</p>
<hr>
<div class="refsect2">
-<a name="idp27648640"></a><h3>Example: Creating a profile</h3>
+<a name="idp29248736"></a><h3>Example: Creating a profile</h3>
<p>
</p>
<div class="informalexample">
</p>
<hr>
<div class="refsect2">
-<a name="idp27651632"></a><h3>Example: Listing categories, targets and profiles</h3>
+<a name="idp29251728"></a><h3>Example: Listing categories, targets and profiles</h3>
<p>
</p>
<div class="informalexample">
<hr>
<div class="refsect2">
<a name="gst-encoding-profile-find"></a><h3>gst_encoding_profile_find ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gst_encoding_profile_find (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gst_encoding_profile_find (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *profilename</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>);</pre>
<p>
</div>
<hr>
<div class="refsect2">
+<a name="gst-encoding-profile-from-discoverer"></a><h3>gst_encoding_profile_from_discoverer ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> * gst_encoding_profile_from_discoverer
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<p>
+Creates a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> matching the formats from the given
+<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. Streams other than audio or video (eg,
+subtitles), are currently ignored.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>The <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> to read from. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-encoding-profile-get-name"></a><h3>gst_encoding_profile_get_name ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_encoding_profile_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_encoding_profile_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-encoding-profile-get-description"></a><h3>gst_encoding_profile_get_description ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_encoding_profile_get_description
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_encoding_profile_get_description
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-encoding-profile-get-format"></a><h3>gst_encoding_profile_get_format ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_encoding_profile_get_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_encoding_profile_get_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-encoding-profile-get-preset"></a><h3>gst_encoding_profile_get_preset ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_encoding_profile_get_preset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_encoding_profile_get_preset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-encoding-profile-get-restriction"></a><h3>gst_encoding_profile_get_restriction ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_encoding_profile_get_restriction
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_encoding_profile_get_restriction
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-encoding-container-profile-new"></a><h3>gst_encoding_container_profile_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> * gst_encoding_container_profile_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="returnvalue">GstEncodingContainerProfile</span></a> * gst_encoding_container_profile_new
(<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
<hr>
<div class="refsect2">
<a name="gst-encoding-audio-profile-new"></a><h3>gst_encoding_audio_profile_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> * gst_encoding_audio_profile_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="returnvalue">GstEncodingAudioProfile</span></a> * gst_encoding_audio_profile_new
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
<hr>
<div class="refsect2">
<a name="gst-encoding-video-profile-new"></a><h3>gst_encoding_video_profile_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> * gst_encoding_video_profile_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="returnvalue">GstEncodingVideoProfile</span></a> * gst_encoding_video_profile_new
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *format</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *restriction</code></em>,
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> variableframerate</code></em>);</pre>
<p>
-If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the incoming streamm will be allowed to have non-constant
+If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the incoming stream will be allowed to have non-constant
framerate. If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (default value), then the incoming stream will
be normalized by dropping/duplicating frames in order to produce a
constance framerate.
</pre>
<p>
<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for device-specific targets.
-The name of the target will usually be the contructor and model of the device,
+The name of the target will usually be the constructor and model of the device,
and that target will contain <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfiles</span></a> suitable for that device.
</p>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gstreamer-audio.html" title="Audio Library">
<link rel="next" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<pre class="synopsis">
#include <gst/audio/audio.h>
+enum <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" title="enum GstAudioFlags">GstAudioFlags</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat">GstAudioFormat</a>;
+enum <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags">GstAudioFormatFlags</a>;
+struct <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo">GstAudioFormatInfo</a>;
+struct <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo">GstAudioInfo</a>;
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init" title="gst_audio_info_init ()">gst_audio_info_init</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear" title="gst_audio_info_clear ()">gst_audio_info_clear</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy" title="gst_audio_info_copy ()">gst_audio_info_copy</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free" title="gst_audio_info_free ()">gst_audio_info_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()">gst_audio_info_from_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+ <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps" title="gst_audio_info_to_caps ()">gst_audio_info_to_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert" title="gst_audio_info_convert ()">gst_audio_info_convert</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="returnvalue">GstAudioFormatInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info" title="gst_audio_format_get_info ()">gst_audio_format_get_info</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>);
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS" title="GST_AUDIO_FORMAT_INFO_DEPTH()">GST_AUDIO_FORMAT_INFO_DEPTH</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS" title="GST_AUDIO_FORMAT_INFO_ENDIANNESS()">GST_AUDIO_FORMAT_INFO_ENDIANNESS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS" title="GST_AUDIO_FORMAT_INFO_FLAGS()">GST_AUDIO_FORMAT_INFO_FLAGS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS" title="GST_AUDIO_FORMAT_INFO_FORMAT()">GST_AUDIO_FORMAT_INFO_FORMAT</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_FLOAT()">GST_AUDIO_FORMAT_INFO_IS_FLOAT</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_INTEGER()">GST_AUDIO_FORMAT_INFO_IS_INTEGER</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()">GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN</a>(info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS" title="GST_AUDIO_FORMAT_INFO_IS_SIGNED()">GST_AUDIO_FORMAT_INFO_IS_SIGNED</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS" title="GST_AUDIO_FORMAT_INFO_NAME()">GST_AUDIO_FORMAT_INFO_NAME</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS" title="GST_AUDIO_FORMAT_INFO_WIDTH()">GST_AUDIO_FORMAT_INFO_WIDTH</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS" title="GST_AUDIO_INFO_BPF()">GST_AUDIO_INFO_BPF</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS" title="GST_AUDIO_INFO_BPS()">GST_AUDIO_INFO_BPS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS" title="GST_AUDIO_INFO_CHANNELS()">GST_AUDIO_INFO_CHANNELS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS" title="GST_AUDIO_INFO_DEPTH()">GST_AUDIO_INFO_DEPTH</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS" title="GST_AUDIO_INFO_FLAGS()">GST_AUDIO_INFO_FLAGS</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS" title="GST_AUDIO_INFO_FORMAT()">GST_AUDIO_INFO_FORMAT</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS" title="GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()">GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS</a>(info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS" title="GST_AUDIO_INFO_NAME()">GST_AUDIO_INFO_NAME</a> (i)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS" title="GST_AUDIO_INFO_POSITION()">GST_AUDIO_INFO_POSITION</a> (info,
+ c)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS" title="GST_AUDIO_INFO_RATE()">GST_AUDIO_INFO_RATE</a> (info)
+#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS" title="GST_AUDIO_INFO_WIDTH()">GST_AUDIO_INFO_WIDTH</a> (i)
enum <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" title="enum GstAudioFieldFlag">GstAudioFieldFlag</a>;
#define <a class="link" href="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS" title="GST_FRAMES_TO_CLOCK_TIME()">GST_FRAMES_TO_CLOCK_TIME</a> (frames,
rate)
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudio.details"></a><h2>Details</h2>
<div class="refsect2">
+<a name="GstAudioFlags"></a><h3>enum GstAudioFlags</h3>
+<pre class="programlisting">typedef enum {
+ GST_AUDIO_FLAG_NONE = 0,
+ GST_AUDIO_FLAG_DEFAULT_POSITIONS = (1 << 0)
+} GstAudioFlags;
+</pre>
+<p>
+Extra audio flags
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-AUDIO-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FLAG_NONE</code></span></p></td>
+<td>no valid flag
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FLAG_DEFAULT_POSITIONS</code></span></p></td>
+<td>unpositioned audio layout, position array
+ contains the default layout (meaning that the channel layout was not
+ explicitly specified in the caps)
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioFormat"></a><h3>enum GstAudioFormat</h3>
+<pre class="programlisting">typedef enum {
+ GST_AUDIO_FORMAT_UNKNOWN,
+ /* 8 bit */
+ GST_AUDIO_FORMAT_S8,
+ GST_AUDIO_FORMAT_U8,
+ /* 16 bit */
+ GST_AUDIO_FORMAT_S16LE,
+ GST_AUDIO_FORMAT_S16BE,
+ GST_AUDIO_FORMAT_U16LE,
+ GST_AUDIO_FORMAT_U16BE,
+ /* 24 bit in low 3 bytes of 32 bits*/
+ GST_AUDIO_FORMAT_S24_32LE,
+ GST_AUDIO_FORMAT_S24_32BE,
+ GST_AUDIO_FORMAT_U24_32LE,
+ GST_AUDIO_FORMAT_U24_32BE,
+ /* 32 bit */
+ GST_AUDIO_FORMAT_S32LE,
+ GST_AUDIO_FORMAT_S32BE,
+ GST_AUDIO_FORMAT_U32LE,
+ GST_AUDIO_FORMAT_U32BE,
+ /* 24 bit in 3 bytes*/
+ GST_AUDIO_FORMAT_S24LE,
+ GST_AUDIO_FORMAT_S24BE,
+ GST_AUDIO_FORMAT_U24LE,
+ GST_AUDIO_FORMAT_U24BE,
+ /* 20 bit in 3 bytes*/
+ GST_AUDIO_FORMAT_S20LE,
+ GST_AUDIO_FORMAT_S20BE,
+ GST_AUDIO_FORMAT_U20LE,
+ GST_AUDIO_FORMAT_U20BE,
+ /* 18 bit in 3 bytes*/
+ GST_AUDIO_FORMAT_S18LE,
+ GST_AUDIO_FORMAT_S18BE,
+ GST_AUDIO_FORMAT_U18LE,
+ GST_AUDIO_FORMAT_U18BE,
+ /* float */
+ GST_AUDIO_FORMAT_F32LE,
+ GST_AUDIO_FORMAT_F32BE,
+ GST_AUDIO_FORMAT_F64LE,
+ GST_AUDIO_FORMAT_F64BE,
+ /* native endianness equivalents */
+ GST_AUDIO_FORMAT_S16 = _GST_AUDIO_FORMAT_NE(S16),
+ GST_AUDIO_FORMAT_U16 = _GST_AUDIO_FORMAT_NE(U16),
+ GST_AUDIO_FORMAT_S24_32 = _GST_AUDIO_FORMAT_NE(S24_32),
+ GST_AUDIO_FORMAT_U24_32 = _GST_AUDIO_FORMAT_NE(U24_32),
+ GST_AUDIO_FORMAT_S32 = _GST_AUDIO_FORMAT_NE(S32),
+ GST_AUDIO_FORMAT_U32 = _GST_AUDIO_FORMAT_NE(U32),
+ GST_AUDIO_FORMAT_S24 = _GST_AUDIO_FORMAT_NE(S24),
+ GST_AUDIO_FORMAT_U24 = _GST_AUDIO_FORMAT_NE(U24),
+ GST_AUDIO_FORMAT_S20 = _GST_AUDIO_FORMAT_NE(S20),
+ GST_AUDIO_FORMAT_U20 = _GST_AUDIO_FORMAT_NE(U20),
+ GST_AUDIO_FORMAT_S18 = _GST_AUDIO_FORMAT_NE(S18),
+ GST_AUDIO_FORMAT_U18 = _GST_AUDIO_FORMAT_NE(U18),
+ GST_AUDIO_FORMAT_F32 = _GST_AUDIO_FORMAT_NE(F32),
+ GST_AUDIO_FORMAT_F64 = _GST_AUDIO_FORMAT_NE(F64)
+} GstAudioFormat;
+</pre>
+<p>
+Enum value describing the most common audio formats.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_UNKNOWN</code></span></p></td>
+<td>unknown audio format
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S8:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S8</code></span></p></td>
+<td>8 bits in 8 bits, signed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U8:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U8</code></span></p></td>
+<td>8 bits in 8 bits, unsigned
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S16LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S16LE</code></span></p></td>
+<td>16 bits in 16 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S16BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S16BE</code></span></p></td>
+<td>16 bits in 16 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U16LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U16LE</code></span></p></td>
+<td>16 bits in 16 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U16BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U16BE</code></span></p></td>
+<td>16 bits in 16 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24-32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24_32LE</code></span></p></td>
+<td>24 bits in 32 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24-32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24_32BE</code></span></p></td>
+<td>24 bits in 32 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24-32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24_32LE</code></span></p></td>
+<td>24 bits in 32 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24-32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24_32BE</code></span></p></td>
+<td>24 bits in 32 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S32LE</code></span></p></td>
+<td>32 bits in 32 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S32BE</code></span></p></td>
+<td>32 bits in 32 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U32LE</code></span></p></td>
+<td>32 bits in 32 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U32BE</code></span></p></td>
+<td>32 bits in 32 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24LE</code></span></p></td>
+<td>24 bits in 24 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24BE</code></span></p></td>
+<td>24 bits in 24 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24LE</code></span></p></td>
+<td>24 bits in 24 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24BE</code></span></p></td>
+<td>24 bits in 24 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S20LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S20LE</code></span></p></td>
+<td>20 bits in 24 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S20BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S20BE</code></span></p></td>
+<td>20 bits in 24 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U20LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U20LE</code></span></p></td>
+<td>20 bits in 24 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U20BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U20BE</code></span></p></td>
+<td>20 bits in 24 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S18LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S18LE</code></span></p></td>
+<td>18 bits in 24 bits, signed, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S18BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S18BE</code></span></p></td>
+<td>18 bits in 24 bits, signed, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U18LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U18LE</code></span></p></td>
+<td>18 bits in 24 bits, unsigned, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U18BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U18BE</code></span></p></td>
+<td>18 bits in 24 bits, unsigned, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F32LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F32LE</code></span></p></td>
+<td>32-bit floating point samples, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F32BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F32BE</code></span></p></td>
+<td>32-bit floating point samples, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F64LE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F64LE</code></span></p></td>
+<td>64-bit floating point samples, little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F64BE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F64BE</code></span></p></td>
+<td>64-bit floating point samples, big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S16:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S16</code></span></p></td>
+<td>16 bits in 16 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U16:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U16</code></span></p></td>
+<td>16 bits in 16 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24-32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24_32</code></span></p></td>
+<td>24 bits in 32 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24-32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24_32</code></span></p></td>
+<td>24 bits in 32 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S32</code></span></p></td>
+<td>32 bits in 32 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U32</code></span></p></td>
+<td>32 bits in 32 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S24:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S24</code></span></p></td>
+<td>24 bits in 24 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U24:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U24</code></span></p></td>
+<td>24 bits in 24 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S20:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S20</code></span></p></td>
+<td>20 bits in 24 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U20:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U20</code></span></p></td>
+<td>20 bits in 24 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-S18:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_S18</code></span></p></td>
+<td>18 bits in 24 bits, signed, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-U18:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_U18</code></span></p></td>
+<td>18 bits in 24 bits, unsigned, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F32:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F32</code></span></p></td>
+<td>32-bit floating point samples, native endianness
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-F64:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_F64</code></span></p></td>
+<td>64-bit floating point samples, native endianness
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioFormatFlags"></a><h3>enum GstAudioFormatFlags</h3>
+<pre class="programlisting">typedef enum {
+ GST_AUDIO_FORMAT_FLAG_INTEGER = (1 << 0),
+ GST_AUDIO_FORMAT_FLAG_FLOAT = (1 << 1),
+ GST_AUDIO_FORMAT_FLAG_SIGNED = (1 << 2),
+ GST_AUDIO_FORMAT_FLAG_COMPLEX = (1 << 4)
+} GstAudioFormatFlags;
+</pre>
+<p>
+The different audio flags that a format info can have.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_INTEGER</code></span></p></td>
+<td>integer samples
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_FLOAT</code></span></p></td>
+<td>float samples
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_SIGNED</code></span></p></td>
+<td>signed samples
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_FORMAT_FLAG_COMPLEX</code></span></p></td>
+<td>complex layout
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioFormatInfo"></a><h3>struct GstAudioFormatInfo</h3>
+<pre class="programlisting">struct GstAudioFormatInfo {
+ GstAudioFormat format;
+ const gchar * name;
+ GstAudioFormatFlags flags;
+ gint endianness;
+ gint width;
+ gint depth;
+ guint8 silence[8];
+};
+</pre>
+<p>
+Information for an audio format.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.format"></a>format</code></em>;</span></p></td>
+<td><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstAudioFormatInfo.name"></a>name</code></em>;</span></p></td>
+<td>string representation of the format</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags"><span class="type">GstAudioFormatFlags</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.flags"></a>flags</code></em>;</span></p></td>
+<td><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags"><span class="type">GstAudioFormatFlags</span></a></td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.endianness"></a>endianness</code></em>;</span></p></td>
+<td>the endianness</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.width"></a>width</code></em>;</span></p></td>
+<td>amount of bits used for one sample</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.depth"></a>depth</code></em>;</span></p></td>
+<td>amount of valid bits in <em class="parameter"><code>width</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="type">guint8</span> <em class="structfield"><code><a name="GstAudioFormatInfo.silence"></a>silence</code></em>[8];</span></p></td>
+<td>
+<em class="parameter"><code>width</code></em>/8 bytes with 1 silent sample</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioInfo"></a><h3>struct GstAudioInfo</h3>
+<pre class="programlisting">struct GstAudioInfo {
+ const GstAudioFormatInfo *finfo;
+ GstAudioFlags flags;
+ gint rate;
+ gint channels;
+ gint bpf;
+ GstAudioChannelPosition position[64];
+};
+</pre>
+<p>
+Information describing audio properties. This information can be filled
+in from GstCaps with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()"><code class="function">gst_audio_info_from_caps()</code></a>.
+</p>
+<p>
+Use the provided macros to access the info in this structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term">const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> *<em class="structfield"><code><a name="GstAudioInfo.finfo"></a>finfo</code></em>;</span></p></td>
+<td>the format info of the audio</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" title="enum GstAudioFlags"><span class="type">GstAudioFlags</span></a> <em class="structfield"><code><a name="GstAudioInfo.flags"></a>flags</code></em>;</span></p></td>
+<td>additional audio flags</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.rate"></a>rate</code></em>;</span></p></td>
+<td>the audio sample rate</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.channels"></a>channels</code></em>;</span></p></td>
+<td>the number of channels</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.bpf"></a>bpf</code></em>;</span></p></td>
+<td>the number of bytes for one frame, this is the size of one
+sample * <em class="parameter"><code>channels</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> <em class="structfield"><code><a name="GstAudioInfo.position"></a>position</code></em>[64];</span></p></td>
+<td>the position for each channel (assume all NONE for >64 channels)</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-init"></a><h3>gst_audio_info_init ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_info_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-clear"></a><h3>gst_audio_info_clear ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_info_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-copy"></a><h3>gst_audio_info_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> * gst_audio_info_copy (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-free"></a><h3>gst_audio_info_free ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_info_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-from-caps"></a><h3>gst_audio_info_from_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_info_from_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+ <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Parse <em class="parameter"><code>caps</code></em> and update <em class="parameter"><code>info</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if <em class="parameter"><code>caps</code></em> could be parsed</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-to-caps"></a><h3>gst_audio_info_to_caps ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_audio_info_to_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
+<p>
+Convert the values of <em class="parameter"><code>info</code></em> into a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> containing the
+info of <em class="parameter"><code>info</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-info-convert"></a><h3>gst_audio_info_convert ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_info_convert (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-format-get-info"></a><h3>gst_audio_format_get_info ()</h3>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="returnvalue">GstAudioFormatInfo</span></a> * gst_audio_format_get_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-DEPTH:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_DEPTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_DEPTH(info) ((info)->depth)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_ENDIANNESS()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_ENDIANNESS(info) ((info)->endianness)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-FLAGS:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_FLAGS()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_FLAGS(info) ((info)->flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-FORMAT:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_FORMAT()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_FORMAT(info) ((info)->format)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_FLOAT()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_FLOAT(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_FLOAT)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_INTEGER()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_INTEGER(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_INTEGER)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN(info) ((info)->endianness == G_BIG_ENDIAN)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN(info) ((info)->endianness == G_LITTLE_ENDIAN)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_IS_SIGNED()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_IS_SIGNED(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_SIGNED)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-NAME:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_NAME()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_NAME(info) ((info)->name)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-FORMAT-INFO-WIDTH:CAPS"></a><h3>GST_AUDIO_FORMAT_INFO_WIDTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_FORMAT_INFO_WIDTH(info) ((info)->width)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-BPF:CAPS"></a><h3>GST_AUDIO_INFO_BPF()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_BPF(info) ((info)->bpf)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-BPS:CAPS"></a><h3>GST_AUDIO_INFO_BPS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_BPS(info) (GST_AUDIO_INFO_DEPTH(info) >> 3)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-CHANNELS:CAPS"></a><h3>GST_AUDIO_INFO_CHANNELS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_CHANNELS(info) ((info)->channels)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-DEPTH:CAPS"></a><h3>GST_AUDIO_INFO_DEPTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_DEPTH(i) (GST_AUDIO_FORMAT_INFO_DEPTH((i)->finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-FLAGS:CAPS"></a><h3>GST_AUDIO_INFO_FLAGS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_FLAGS(info) ((info)->flags)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-FORMAT:CAPS"></a><h3>GST_AUDIO_INFO_FORMAT()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_FORMAT(i) (GST_AUDIO_FORMAT_INFO_FORMAT((i)->finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS"></a><h3>GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS(info) ((info)->flags & GST_AUDIO_FLAG_DEFAULT_POSITIONS)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-NAME:CAPS"></a><h3>GST_AUDIO_INFO_NAME()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_NAME(i) (GST_AUDIO_FORMAT_INFO_NAME((i)->finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-POSITION:CAPS"></a><h3>GST_AUDIO_INFO_POSITION()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_POSITION(info,c) ((info)->position[c])
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-RATE:CAPS"></a><h3>GST_AUDIO_INFO_RATE()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_RATE(info) ((info)->rate)
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-INFO-WIDTH:CAPS"></a><h3>GST_AUDIO_INFO_WIDTH()</h3>
+<pre class="programlisting">#define GST_AUDIO_INFO_WIDTH(i) (GST_AUDIO_FORMAT_INFO_WIDTH((i)->finfo))
+</pre>
+</div>
+<hr>
+<div class="refsect2">
<a name="GstAudioFieldFlag"></a><h3>enum GstAudioFieldFlag</h3>
<pre class="programlisting">typedef enum {
GST_AUDIO_FIELD_RATE = (1 << 0),
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> rate</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frame_size</code></em>);</pre>
<p>
-Clip the the buffer to the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><code class="literal">GstSegment</code></a>.
+Clip the buffer to the given <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstSegment.html#GstSegment"><code class="literal">GstSegment</code></a>.
</p>
<p>
After calling this function the caller does not own a reference to
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudioclock</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
-<link rel="next" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiodecoder.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gstaudioclock.synopsis" class="shortcut">Top</a>
<p>
Opaque <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a>.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
</div>
<hr>
<div class="refsect2">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudiodecoder</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
+<link rel="next" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioclock.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioencoder.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudiodecoder.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudiodecoder.description" class="shortcut">Description</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudiodecoder.object-hierarchy" class="shortcut">Object Hierarchy</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudiodecoder.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudiodecoder"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiodecoder.top_of_page"></a>gstaudiodecoder</span></h2>
+<p>gstaudiodecoder — Base class for audio decoders</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudiodecoder.synopsis"></a><h2>Synopsis</h2>
+<a name="GstAudioDecoder"></a><pre class="synopsis">
+#include <gst/audio/gstaudiodecoder.h>
+
+struct <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct" title="struct GstAudioDecoder">GstAudioDecoder</a>;
+struct <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass" title="struct GstAudioDecoderClass">GstAudioDecoderClass</a>;
+#define <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS" title="GST_AUDIO_DECODER_ERROR()">GST_AUDIO_DECODER_ERROR</a> (el,
+ weight,
+ domain,
+ code,
+ text,
+ debug,
+ ret)
+#define <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS" title="GST_AUDIO_DECODER_SINK_NAME">GST_AUDIO_DECODER_SINK_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS" title="GST_AUDIO_DECODER_SINK_PAD()">GST_AUDIO_DECODER_SINK_PAD</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS" title="GST_AUDIO_DECODER_SRC_NAME">GST_AUDIO_DECODER_SRC_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS" title="GST_AUDIO_DECODER_SRC_PAD()">GST_AUDIO_DECODER_SRC_PAD</a> (obj)
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" title="gst_audio_decoder_finish_frame ()">gst_audio_decoder_finish_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frames</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info" title="gst_audio_decoder_get_audio_info ()">gst_audio_decoder_get_audio_info</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time" title="gst_audio_decoder_get_byte_time ()">gst_audio_decoder_get_byte_time</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay" title="gst_audio_decoder_get_delay ()">gst_audio_decoder_get_delay</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable" title="gst_audio_decoder_get_drainable ()">gst_audio_decoder_get_drainable</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency" title="gst_audio_decoder_get_latency ()">gst_audio_decoder_get_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors" title="gst_audio_decoder_get_max_errors ()">gst_audio_decoder_get_max_errors</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">gint64</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency" title="gst_audio_decoder_get_min_latency ()">gst_audio_decoder_get_min_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format" title="gst_audio_decoder_get_needs_format ()">gst_audio_decoder_get_needs_format</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state" title="gst_audio_decoder_get_parse_state ()">gst_audio_decoder_get_parse_state</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sync</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc" title="gst_audio_decoder_get_plc ()">gst_audio_decoder_get_plc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware" title="gst_audio_decoder_get_plc_aware ()">gst_audio_decoder_get_plc_aware</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">gint64</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance" title="gst_audio_decoder_get_tolerance ()">gst_audio_decoder_get_tolerance</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time" title="gst_audio_decoder_set_byte_time ()">gst_audio_decoder_set_byte_time</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable" title="gst_audio_decoder_set_drainable ()">gst_audio_decoder_set_drainable</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency" title="gst_audio_decoder_set_latency ()">gst_audio_decoder_set_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors" title="gst_audio_decoder_set_max_errors ()">gst_audio_decoder_set_max_errors</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency" title="gst_audio_decoder_set_min_latency ()">gst_audio_decoder_set_min_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> num</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format" title="gst_audio_decoder_set_needs_format ()">gst_audio_decoder_set_needs_format</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc" title="gst_audio_decoder_set_plc ()">gst_audio_decoder_set_plc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware" title="gst_audio_decoder_set_plc_aware ()">gst_audio_decoder_set_plc_aware</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> plc</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance" title="gst_audio_decoder_set_tolerance ()">gst_audio_decoder_set_tolerance</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+ +----GstAudioDecoder
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency" title='The "min-latency" property'>min-latency</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc" title='The "plc" property'>plc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance" title='The "tolerance" property'>tolerance</a>" <span class="type">gint64</span> : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.description"></a><h2>Description</h2>
+<p>
+This base class is for audio decoders turning encoded data into
+raw audio samples.
+</p>
+<p>
+GstAudioDecoder and subclass should cooperate as follows.
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Configuration</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Initially, GstAudioDecoder calls <em class="parameter"><code>start</code></em> when the decoder element
+ is activated, which allows subclass to perform any global setup.
+ Base class (context) parameters can already be set according to subclass
+ capabilities (or possibly upon receive more information in subsequent
+ <em class="parameter"><code>set_format</code></em>).
+ </p></li>
+<li class="listitem"><p>
+ GstAudioDecoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
+ of input audio data that it is about to receive.
+ While unlikely, it might be called more than once, if changing input
+ parameters require reconfiguration.
+ </p></li>
+<li class="listitem"><p>
+ GstAudioDecoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Data processing</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Base class gathers input data, and optionally allows subclass
+ to parse this into subsequently manageable (as defined by subclass)
+ chunks. Such chunks are subsequently referred to as 'frames',
+ though they may or may not correspond to 1 (or more) audio format frame.
+ </p></li>
+<li class="listitem"><p>
+ Input frame is provided to subclass' <em class="parameter"><code>handle_frame</code></em>.
+ </p></li>
+<li class="listitem"><p>
+ If codec processing results in decoded data, subclass should call
+ <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em> to have decoded data pushed
+ downstream.
+ </p></li>
+<li class="listitem"><p>
+ Just prior to actually pushing a buffer downstream,
+ it is passed to <em class="parameter"><code>pre_push</code></em>. Subclass should either use this callback
+ to arrange for additional downstream pushing or otherwise ensure such
+ custom pushing occurs after at least a method call has finished since
+ setting src pad caps.
+ </p></li>
+<li class="listitem"><p>
+ During the parsing process GstAudioDecoderClass will handle both
+ srcpad and sinkpad events. Sink events will be passed to subclass
+ if <em class="parameter"><code>event</code></em> callback has been provided.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Shutdown phase</b></p>
+<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+ GstAudioDecoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
+ parsing will be stopped.
+ </p></li></ul>
+</div></li>
+</ol></div>
+<p>
+</p>
+<p>
+Subclass is responsible for providing pad template caps for
+source and sink pads. The pads need to be named "sink" and "src". It also
+needs to set the fixed caps on srcpad, when the format is ensured. This
+is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em> function, though
+it might be delayed until calling <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em>.
+</p>
+<p>
+In summary, above process should have subclass concentrating on
+codec data processing while leaving other matters to base class,
+such as most notably timestamp handling. While it may exert more control
+in this area (see e.g. <em class="parameter"><code>pre_push</code></em>), it is very much not recommended.
+</p>
+<p>
+In particular, base class will try to arrange for perfect output timestamps
+as much as possible while tracking upstream timestamps.
+To this end, if deviation between the next ideal expected perfect timestamp
+and upstream exceeds <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance" title='The "tolerance" property'><span class="type">"tolerance"</span></a>, then resync to upstream
+occurs (which would happen always if the tolerance mechanism is disabled).
+</p>
+<p>
+In non-live pipelines, baseclass can also (configurably) arrange for
+output buffer aggregation which may help to redue large(r) numbers of
+small(er) buffers being pushed and processed downstream.
+</p>
+<p>
+On the other hand, it should be noted that baseclass only provides limited
+seeking support (upon explicit subclass request), as full-fledged support
+should rather be left to upstream demuxer, parser or alike. This simple
+approach caters for seeking and duration reporting using estimated input
+bitrates.
+</p>
+<p>
+Things that subclass need to take care of:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>Provide pad templates</p></li>
+<li class="listitem"><p>
+ Set source pad caps when appropriate
+ </p></li>
+<li class="listitem"><p>
+ Set user-configurable properties to sane defaults for format and
+ implementing codec at hand, and convey some subclass capabilities and
+ expectations in context.
+ </p></li>
+<li class="listitem"><p>
+ Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
+ <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em>. If it is prepared to perform
+ PLC, it should also accept NULL data in <em class="parameter"><code>handle_frame</code></em> and provide for
+ data for indicated duration.
+ </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstAudioDecoder-struct"></a><h3>struct GstAudioDecoder</h3>
+<pre class="programlisting">struct GstAudioDecoder;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> data structure.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioDecoderClass"></a><h3>struct GstAudioDecoderClass</h3>
+<pre class="programlisting">struct GstAudioDecoderClass {
+ GstElementClass element_class;
+
+ /* virtual methods for subclasses */
+
+ gboolean (*start) (GstAudioDecoder *dec);
+
+ gboolean (*stop) (GstAudioDecoder *dec);
+
+ gboolean (*set_format) (GstAudioDecoder *dec,
+ GstCaps *caps);
+
+ GstFlowReturn (*parse) (GstAudioDecoder *dec,
+ GstAdapter *adapter,
+ gint *offset, gint *length);
+
+ GstFlowReturn (*handle_frame) (GstAudioDecoder *dec,
+ GstBuffer *buffer);
+
+ void (*flush) (GstAudioDecoder *dec, gboolean hard);
+
+ GstFlowReturn (*pre_push) (GstAudioDecoder *dec,
+ GstBuffer **buffer);
+
+ gboolean (*event) (GstAudioDecoder *dec,
+ GstEvent *event);
+};
+</pre>
+<p>
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum <em class="parameter"><code>handle_frame</code></em> (and likely <em class="parameter"><code>set_format</code></em>) needs to be
+overridden.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioDecoderClass.element-class"></a>element_class</code></em>;</span></p></td>
+<td>The parent class structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.start"></a>start</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element starts processing.
+Allows opening external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.stop"></a>stop</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element stops processing.
+Allows closing external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.set-format"></a>set_format</code></em> ()</span></p></td>
+<td>Notifies subclass of incoming data format (caps).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.parse"></a>parse</code></em> ()</span></p></td>
+<td>Optional.
+Allows chopping incoming data into manageable units (frames)
+for subsequent decoding. This division is at subclass
+discretion and may or may not correspond to 1 (or more)
+frames as defined by audio format.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Provides input data (or NULL to clear any remaining data)
+to subclass. Input data ref management is performed by
+base class, subclass should not care or intervene,
+and input data is only valid until next call to base class,
+most notably a call to <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" title="gst_audio_decoder_finish_frame ()"><code class="function">gst_audio_decoder_finish_frame()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.flush"></a>flush</code></em> ()</span></p></td>
+<td>Optional.
+Instructs subclass to clear any codec caches and discard
+any pending samples and not yet returned decoded data.
+<em class="parameter"><code>hard</code></em> indicates whether a FLUSH is being processed,
+or otherwise a DISCONT (or conceptually similar).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.pre-push"></a>pre_push</code></em> ()</span></p></td>
+<td>Optional.
+Called just prior to pushing (encoded data) buffer downstream.
+Subclass has full discretionary access to buffer,
+and a not OK flow return will abort downstream pushing.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioDecoderClass.event"></a>event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the sink pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-ERROR:CAPS"></a><h3>GST_AUDIO_DECODER_ERROR()</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_ERROR(el, weight, domain, code, text, debug, ret)</pre>
+<p>
+Utility function that audio decoder elements can use in case they encountered
+a data processing error that may be fatal for the current "data unit" but
+need not prevent subsequent decoding. Such errors are counted and if there
+are too many, as configured in the context's max_errors, the pipeline will
+post an error message and the application will be requested to stop further
+media processing. Otherwise, it is considered a "glitch" and only a warning
+is logged. In either case, <em class="parameter"><code>ret</code></em> is set to the proper value to
+return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>el</code></em> :</span></p></td>
+<td>the base audio decoder element that generates the error</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>weight</code></em> :</span></p></td>
+<td>element defined weight of the error, added to error count</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>domain</code></em> :</span></p></td>
+<td>like CORE, LIBRARY, RESOURCE or STREAM (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html"><span class="type">gstreamer-GstGError</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>code</code></em> :</span></p></td>
+<td>error code defined for that domain (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstGError.html"><span class="type">gstreamer-GstGError</span></a>)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>text</code></em> :</span></p></td>
+<td>the message to display (format string and args enclosed in
+parentheses)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>debug</code></em> :</span></p></td>
+<td>debugging information for the message (format string and args
+enclosed in parentheses)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>ret</code></em> :</span></p></td>
+<td>variable to receive return value</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SINK-NAME:CAPS"></a><h3>GST_AUDIO_DECODER_SINK_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SINK_NAME "sink"
+</pre>
+<p>
+The name of the templates for the sink pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SINK-PAD:CAPS"></a><h3>GST_AUDIO_DECODER_SINK_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SINK_PAD(obj) (((GstAudioDecoder *) (obj))->sinkpad)
+</pre>
+<p>
+Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base audio codec instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SRC-NAME:CAPS"></a><h3>GST_AUDIO_DECODER_SRC_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SRC_NAME "src"
+</pre>
+<p>
+The name of the templates for the source pad.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-DECODER-SRC-PAD:CAPS"></a><h3>GST_AUDIO_DECODER_SRC_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_DECODER_SRC_PAD(obj) (((GstAudioDecoder *) (obj))->srcpad)
+</pre>
+<p>
+Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base audio codec instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-finish-frame"></a><h3>gst_audio_decoder_finish_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_audio_decoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> frames</code></em>);</pre>
+<p>
+Collects decoded data and pushes it downstream.
+</p>
+<p>
+<em class="parameter"><code>buf</code></em> may be NULL in which case the indicated number of frames
+are discarded and considered to have produced no output
+(e.g. lead-in or setup frames).
+Otherwise, source pad caps must be set when it is called with valid
+data in <em class="parameter"><code>buf</code></em>.
+</p>
+<p>
+Note that a frame received in <code class="function">gst_audio_decoder_handle_frame()</code> may be
+invalidated by a call to this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>decoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>frames</code></em> :</span></p></td>
+<td>number of decoded frames represented by decoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that should be escalated to caller (of caller)</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-audio-info"></a><h3>gst_audio_decoder_get_audio_info ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> * gst_audio_decoder_get_audio_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> describing the input audio format</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-byte-time"></a><h3>gst_audio_decoder_get_byte_time ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_decoder_get_byte_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured byte to time conversion setting</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-delay"></a><h3>gst_audio_decoder_get_delay ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_decoder_get_delay (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured decoder delay</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-drainable"></a><h3>gst_audio_decoder_get_drainable ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_decoder_get_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder drain handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if drainable handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-latency"></a><h3>gst_audio_decoder_get_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
+<p>
+Sets the variables pointed to by <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> to the currently configured
+latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>a pointer to storage to hold minimum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>a pointer to storage to hold maximum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-max-errors"></a><h3>gst_audio_decoder_get_max_errors ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_decoder_get_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured decoder tolerated error count.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-min-latency"></a><h3>gst_audio_decoder_get_min_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span> gst_audio_decoder_get_min_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder's latency aggregation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>aggregation latency.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-needs-format"></a><h3>gst_audio_decoder_get_needs_format ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_decoder_get_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder required format handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if required format handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-parse-state"></a><h3>gst_audio_decoder_get_parse_state ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_get_parse_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sync</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);</pre>
+<p>
+Return current parsing (sync and eos) state.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>sync</code></em> :</span></p></td>
+<td>a pointer to a variable to hold the current sync state</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>eos</code></em> :</span></p></td>
+<td>a pointer to a variable to hold the current eos state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-plc"></a><h3>gst_audio_decoder_get_plc ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_decoder_get_plc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries decoder packet loss concealment handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if packet loss concealment is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-plc-aware"></a><h3>gst_audio_decoder_get_plc_aware ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_decoder_get_plc_aware (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured plc handling</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-get-tolerance"></a><h3>gst_audio_decoder_get_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span> gst_audio_decoder_get_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
+<p>
+Queries current audio jitter tolerance threshold.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>decoder audio jitter tolerance threshold.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-byte-time"></a><h3>gst_audio_decoder_set_byte_time ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_byte_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Allows baseclass to perform byte to time estimated conversion.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>whether to enable byte to time conversion</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-drainable"></a><h3>gst_audio_decoder_set_drainable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures decoder drain handling. If drainable, subclass might
+be handed a NULL buffer to have it return any leftover decoded data.
+Otherwise, it is not considered so capable and will only ever be passed
+real data.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-latency"></a><h3>gst_audio_decoder_set_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);</pre>
+<p>
+Sets decoder latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>minimum latency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>maximum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-max-errors"></a><h3>gst_audio_decoder_set_max_errors ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets numbers of tolerated decoder errors, where a tolerated one is then only
+warned about, but more than tolerated will lead to fatal error. Default
+is set to GST_AUDIO_DECODER_MAX_ERRORS.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>max tolerated errors</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-min-latency"></a><h3>gst_audio_decoder_set_min_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_min_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> num</code></em>);</pre>
+<p>
+Sets decoder minimum aggregation latency.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>new minimum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-needs-format"></a><h3>gst_audio_decoder_set_needs_format ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures decoder format needs. If enabled, subclass needs to be
+negotiated with format caps before it can process any data. It will then
+never be handed any data before it has been configured.
+Otherwise, it might be handed data without having been configured and
+is then expected being able to do so either by default
+or based on the input data.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-plc"></a><h3>gst_audio_decoder_set_plc ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_plc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Enable or disable decoder packet loss concealment, provided subclass
+and codec are capable and allow handling plc.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-plc-aware"></a><h3>gst_audio_decoder_set_plc_aware ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_plc_aware (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> plc</code></em>);</pre>
+<p>
+Indicates whether or not subclass handles packet loss concealment (plc).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>plc</code></em> :</span></p></td>
+<td>new plc state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-decoder-set-tolerance"></a><h3>gst_audio_decoder_set_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_decoder_set_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);</pre>
+<p>
+Configures decoder audio jitter tolerance threshold.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dec</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tolerance</code></em> :</span></p></td>
+<td>new tolerance</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstAudioDecoder--min-latency"></a><h3>The <code class="literal">"min-latency"</code> property</h3>
+<pre class="programlisting"> "min-latency" <span class="type">gint64</span> : Read / Write</pre>
+<p>Aggregate output data to a minimum of latency time (ns).</p>
+<p>Allowed values: >= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioDecoder--plc"></a><h3>The <code class="literal">"plc"</code> property</h3>
+<pre class="programlisting"> "plc" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>Perform packet loss concealment (if supported).</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioDecoder--tolerance"></a><h3>The <code class="literal">"tolerance"</code> property</h3>
+<pre class="programlisting"> "tolerance" <span class="type">gint64</span> : Read / Write</pre>
+<p>Perfect ts while timestamp jitter/imperfection within tolerance (ns).</p>
+<p>Allowed values: >= 0</p>
+<p>Default value: 0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudiodecoder.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html"><span class="type">GstBaseTransform</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudioencoder</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstaudiodecoder.html" title="gstaudiodecoder">
+<link rel="next" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudiodecoder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudiofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudioencoder.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudioencoder.description" class="shortcut">Description</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudioencoder.object-hierarchy" class="shortcut">Object Hierarchy</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudioencoder.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudioencoder.properties" class="shortcut">Properties</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudioencoder"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioencoder.top_of_page"></a>gstaudioencoder</span></h2>
+<p>gstaudioencoder — Base class for audio encoders</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudioencoder.synopsis"></a><h2>Synopsis</h2>
+<a name="GstAudioEncoder"></a><pre class="synopsis">
+#include <gst/audio/gstaudioencoder.h>
+
+struct <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct" title="struct GstAudioEncoder">GstAudioEncoder</a>;
+struct <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass" title="struct GstAudioEncoderClass">GstAudioEncoderClass</a>;
+#define <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS" title="GST_AUDIO_ENCODER_SEGMENT()">GST_AUDIO_ENCODER_SEGMENT</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS" title="GST_AUDIO_ENCODER_SINK_NAME">GST_AUDIO_ENCODER_SINK_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS" title="GST_AUDIO_ENCODER_SINK_PAD()">GST_AUDIO_ENCODER_SINK_PAD</a> (obj)
+#define <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS" title="GST_AUDIO_ENCODER_SRC_NAME">GST_AUDIO_ENCODER_SRC_NAME</a>
+#define <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS" title="GST_AUDIO_ENCODER_SRC_PAD()">GST_AUDIO_ENCODER_SRC_PAD</a> (obj)
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()">gst_audio_encoder_finish_frame</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info" title="gst_audio_encoder_get_audio_info ()">gst_audio_encoder_get_audio_info</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable" title="gst_audio_encoder_get_drainable ()">gst_audio_encoder_get_drainable</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max" title="gst_audio_encoder_get_frame_max ()">gst_audio_encoder_get_frame_max</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min" title="gst_audio_encoder_get_frame_samples_min ()">gst_audio_encoder_get_frame_samples_min</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max" title="gst_audio_encoder_get_frame_samples_max ()">gst_audio_encoder_get_frame_samples_max</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min" title="gst_audio_encoder_get_hard_min ()">gst_audio_encoder_get_hard_min</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync" title="gst_audio_encoder_get_hard_resync ()">gst_audio_encoder_get_hard_resync</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency" title="gst_audio_encoder_get_latency ()">gst_audio_encoder_get_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead" title="gst_audio_encoder_get_lookahead ()">gst_audio_encoder_get_lookahead</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule" title="gst_audio_encoder_get_mark_granule ()">gst_audio_encoder_get_mark_granule</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp" title="gst_audio_encoder_get_perfect_timestamp ()">gst_audio_encoder_get_perfect_timestamp</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<span class="returnvalue">gint64</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance" title="gst_audio_encoder_get_tolerance ()">gst_audio_encoder_get_tolerance</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps" title="gst_audio_encoder_proxy_getcaps ()">gst_audio_encoder_proxy_getcaps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable" title="gst_audio_encoder_set_drainable ()">gst_audio_encoder_set_drainable</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max" title="gst_audio_encoder_set_frame_max ()">gst_audio_encoder_set_frame_max</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()">gst_audio_encoder_set_frame_samples_min</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()">gst_audio_encoder_set_frame_samples_max</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min" title="gst_audio_encoder_set_hard_min ()">gst_audio_encoder_set_hard_min</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync" title="gst_audio_encoder_set_hard_resync ()">gst_audio_encoder_set_hard_resync</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency" title="gst_audio_encoder_set_latency ()">gst_audio_encoder_set_latency</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead" title="gst_audio_encoder_set_lookahead ()">gst_audio_encoder_set_lookahead</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule" title="gst_audio_encoder_set_mark_granule ()">gst_audio_encoder_set_mark_granule</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp" title="gst_audio_encoder_set_perfect_timestamp ()">gst_audio_encoder_set_perfect_timestamp</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance" title="gst_audio_encoder_set_tolerance ()">gst_audio_encoder_set_tolerance</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="synopsis">
+ <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+ +----GstAudioEncoder
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstAudioEncoder implements
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPreset.html">GstPreset</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.properties"></a><h2>Properties</h2>
+<pre class="synopsis">
+ "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title='The "hard-resync" property'>hard-resync</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule" title='The "mark-granule" property'>mark-granule</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read
+ "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title='The "perfect-timestamp" property'>perfect-timestamp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance" title='The "tolerance" property'>tolerance</a>" <span class="type">gint64</span> : Read / Write
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.description"></a><h2>Description</h2>
+<p>
+This base class is for audio encoders turning raw audio samples into
+encoded audio data.
+</p>
+<p>
+GstAudioEncoder and subclass should cooperate as follows.
+</p>
+<div class="orderedlist"><ol class="orderedlist" type="1">
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Configuration</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Initially, GstAudioEncoder calls <em class="parameter"><code>start</code></em> when the encoder element
+ is activated, which allows subclass to perform any global setup.
+ </p></li>
+<li class="listitem"><p>
+ GstAudioEncoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
+ of input audio data that it is about to receive. Subclass should
+ setup for encoding and configure various base class parameters
+ appropriately, notably those directing desired input data handling.
+ While unlikely, it might be called more than once, if changing input
+ parameters require reconfiguration.
+ </p></li>
+<li class="listitem"><p>
+ GstAudioEncoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Data processing</b></p>
+<ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ Base class gathers input sample data (as directed by the context's
+ frame_samples and frame_max) and provides this to subclass' <em class="parameter"><code>handle_frame</code></em>.
+ </p></li>
+<li class="listitem"><p>
+ If codec processing results in encoded data, subclass should call
+ <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em> to have encoded data pushed
+ downstream. Alternatively, it might also call to indicate dropped
+ (non-encoded) samples.
+ </p></li>
+<li class="listitem"><p>
+ Just prior to actually pushing a buffer downstream,
+ it is passed to <em class="parameter"><code>pre_push</code></em>.
+ </p></li>
+<li class="listitem"><p>
+ During the parsing process GstAudioEncoderClass will handle both
+ srcpad and sinkpad events. Sink events will be passed to subclass
+ if <em class="parameter"><code>event</code></em> callback has been provided.
+ </p></li>
+</ul>
+</div></li>
+<li class="listitem"><div class="itemizedlist">
+<p class="title"><b>Shutdown phase</b></p>
+<ul class="itemizedlist" type="disc"><li class="listitem"><p>
+ GstAudioEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
+ parsing will be stopped.
+ </p></li></ul>
+</div></li>
+</ol></div>
+<p>
+</p>
+<p>
+Subclass is responsible for providing pad template caps for
+source and sink pads. The pads need to be named "sink" and "src". It also
+needs to set the fixed caps on srcpad, when the format is ensured. This
+is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em> function, though
+it might be delayed until calling <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em>.
+</p>
+<p>
+In summary, above process should have subclass concentrating on
+codec data processing while leaving other matters to base class,
+such as most notably timestamp handling. While it may exert more control
+in this area (see e.g. <em class="parameter"><code>pre_push</code></em>), it is very much not recommended.
+</p>
+<p>
+In particular, base class will either favor tracking upstream timestamps
+(at the possible expense of jitter) or aim to arrange for a perfect stream of
+output timestamps, depending on <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title='The "perfect-timestamp" property'><span class="type">"perfect-timestamp"</span></a>.
+However, in the latter case, the input may not be so perfect or ideal, which
+is handled as follows. An input timestamp is compared with the expected
+timestamp as dictated by input sample stream and if the deviation is less
+than <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance" title='The "tolerance" property'><span class="type">"tolerance"</span></a>, the deviation is discarded.
+Otherwise, it is considered a discontuinity and subsequent output timestamp
+is resynced to the new position after performing configured discontinuity
+processing. In the non-perfect-timestamp case, an upstream variation
+exceeding tolerance only leads to marking DISCONT on subsequent outgoing
+(while timestamps are adjusted to upstream regardless of variation).
+While DISCONT is also marked in the perfect-timestamp case, this one
+optionally (see <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title='The "hard-resync" property'><span class="type">"hard-resync"</span></a>)
+performs some additional steps, such as clipping of (early) input samples
+or draining all currently remaining input data, depending on the direction
+of the discontuinity.
+</p>
+<p>
+If perfect timestamps are arranged, it is also possible to request baseclass
+(usually set by subclass) to provide additional buffer metadata (in OFFSET
+and OFFSET_END) fields according to granule defined semantics currently
+needed by oggmux. Specifically, OFFSET is set to granulepos (= sample count
+including buffer) and OFFSET_END to corresponding timestamp (as determined
+by same sample count and sample rate).
+</p>
+<p>
+Things that subclass need to take care of:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>Provide pad templates</p></li>
+<li class="listitem"><p>
+ Set source pad caps when appropriate
+ </p></li>
+<li class="listitem"><p>
+ Inform base class of buffer processing needs using context's
+ frame_samples and frame_bytes.
+ </p></li>
+<li class="listitem"><p>
+ Set user-configurable properties to sane defaults for format and
+ implementing codec at hand, e.g. those controlling timestamp behaviour
+ and discontinuity processing.
+ </p></li>
+<li class="listitem"><p>
+ Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
+ <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em>.
+ </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstAudioEncoder-struct"></a><h3>struct GstAudioEncoder</h3>
+<pre class="programlisting">struct GstAudioEncoder;</pre>
+<p>
+The opaque <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> data structure.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoderClass"></a><h3>struct GstAudioEncoderClass</h3>
+<pre class="programlisting">struct GstAudioEncoderClass {
+ GstElementClass element_class;
+
+ /* virtual methods for subclasses */
+
+ gboolean (*start) (GstAudioEncoder *enc);
+
+ gboolean (*stop) (GstAudioEncoder *enc);
+
+ gboolean (*set_format) (GstAudioEncoder *enc,
+ GstAudioInfo *info);
+
+ GstFlowReturn (*handle_frame) (GstAudioEncoder *enc,
+ GstBuffer *buffer);
+
+ void (*flush) (GstAudioEncoder *enc);
+
+ GstFlowReturn (*pre_push) (GstAudioEncoder *enc,
+ GstBuffer **buffer);
+
+ gboolean (*event) (GstAudioEncoder *enc,
+ GstEvent *event);
+
+ GstCaps * (*getcaps) (GstAudioEncoder *enc);
+};
+</pre>
+<p>
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum <em class="parameter"><code>set_format</code></em> and <em class="parameter"><code>handle_frame</code></em> needs to be overridden.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioEncoderClass.element-class"></a>element_class</code></em>;</span></p></td>
+<td>The parent class structure</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.start"></a>start</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element starts processing.
+Allows opening external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.stop"></a>stop</code></em> ()</span></p></td>
+<td>Optional.
+Called when the element stops processing.
+Allows closing external resources.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.set-format"></a>set_format</code></em> ()</span></p></td>
+<td>Notifies subclass of incoming data format.
+GstAudioInfo contains the format according to provided caps.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.handle-frame"></a>handle_frame</code></em> ()</span></p></td>
+<td>Provides input samples (or NULL to clear any remaining data)
+according to directions as configured by the subclass
+using the API. Input data ref management is performed
+by base class, subclass should not care or intervene,
+and input data is only valid until next call to base class,
+most notably a call to <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.flush"></a>flush</code></em> ()</span></p></td>
+<td>Optional.
+Instructs subclass to clear any codec caches and discard
+any pending samples and not yet returned encoded data.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.pre-push"></a>pre_push</code></em> ()</span></p></td>
+<td>Optional.
+Called just prior to pushing (encoded data) buffer downstream.
+Subclass has full discretionary access to buffer,
+and a not OK flow return will abort downstream pushing.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.event"></a>event</code></em> ()</span></p></td>
+<td>Optional.
+Event handler on the sink pad. This function should return
+TRUE if the event was handled and should be discarded
+(i.e. not unref'ed).</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstAudioEncoderClass.getcaps"></a>getcaps</code></em> ()</span></p></td>
+<td>Optional.
+Allows for a custom sink getcaps implementation (e.g.
+for multichannel input specification). If not implemented,
+default returns gst_audio_encoder_proxy_getcaps
+applied to sink template caps.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SEGMENT:CAPS"></a><h3>GST_AUDIO_ENCODER_SEGMENT()</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SEGMENT(obj) (GST_AUDIO_ENCODER_CAST (obj)->segment)
+</pre>
+<p>
+Gives the segment of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SINK-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_NAME "sink"
+</pre>
+<p>
+the name of the templates for the sink pad
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SINK-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)->sinkpad)
+</pre>
+<p>
+Gives the pointer to the sink <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SRC-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_NAME</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_NAME "src"
+</pre>
+<p>
+the name of the templates for the source pad
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-AUDIO-ENCODER-SRC-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_PAD()</h3>
+<pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)->srcpad)
+</pre>
+<p>
+Gives the pointer to the source <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> object of the element.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>obj</code></em> :</span></p></td>
+<td>base parse instance</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-finish-frame"></a><h3>gst_audio_encoder_finish_frame ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_audio_encoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
+<p>
+Collects encoded data and pushes encoded data downstream.
+Source pad caps must be set when this is called.
+</p>
+<p>
+If <em class="parameter"><code>samples</code></em> < 0, then best estimate is all samples provided to encoder
+(subclass) so far. <em class="parameter"><code>buf</code></em> may be NULL, in which case next number of <em class="parameter"><code>samples</code></em>
+are considered discarded, e.g. as a result of discontinuous transmission,
+and a discontinuity is marked.
+</p>
+<p>
+Note that samples received in <code class="function">gst_audio_encoder_handle_frame()</code>
+may be invalidated by a call to this function.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>encoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>samples</code></em> :</span></p></td>
+<td>number of samples (per channel) represented by encoded data</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that should be escalated to caller (of caller)</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-audio-info"></a><h3>gst_audio_encoder_get_audio_info ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> * gst_audio_encoder_get_audio_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> describing the input audio format</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-drainable"></a><h3>gst_audio_encoder_get_drainable ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_encoder_get_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries encoder drain handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if drainable handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-frame-max"></a><h3>gst_audio_encoder_get_frame_max ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_encoder_get_frame_max (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured maximum handled frames</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-frame-samples-min"></a><h3>gst_audio_encoder_get_frame_samples_min ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_encoder_get_frame_samples_min
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently maximum requested samples per frame</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-frame-samples-max"></a><h3>gst_audio_encoder_get_frame_samples_max ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_encoder_get_frame_samples_max
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-hard-min"></a><h3>gst_audio_encoder_get_hard_min ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_encoder_get_hard_min (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries encoder hard minimum handling.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if hard minimum handling is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-hard-resync"></a><h3>gst_audio_encoder_get_hard_resync ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_encoder_get_hard_resync (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-latency"></a><h3>gst_audio_encoder_get_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
+<p>
+Sets the variables pointed to by <em class="parameter"><code>min</code></em> and <em class="parameter"><code>max</code></em> to the currently configured
+latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>a pointer to storage to hold minimum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>a pointer to storage to hold maximum latency. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-lookahead"></a><h3>gst_audio_encoder_get_lookahead ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_audio_encoder_get_lookahead (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>currently configured encoder lookahead</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-mark-granule"></a><h3>gst_audio_encoder_get_mark_granule ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_encoder_get_mark_granule (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries if the encoder will handle granule marking.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if granule marking is enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-perfect-timestamp"></a><h3>gst_audio_encoder_get_perfect_timestamp ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_encoder_get_perfect_timestamp
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries encoder perfect timestamp behaviour.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if perfect timestamp setting enabled.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-get-tolerance"></a><h3>gst_audio_encoder_get_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">gint64</span> gst_audio_encoder_get_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
+<p>
+Queries current audio jitter tolerance threshold.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>encoder audio jitter tolerance threshold.
+MT safe.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-proxy-getcaps"></a><h3>gst_audio_encoder_proxy_getcaps ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_audio_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
+<p>
+Returns caps that express <em class="parameter"><code>caps</code></em> (or sink template caps if <em class="parameter"><code>caps</code></em> == NULL)
+restricted to channel/rate combinations supported by downstream elements
+(e.g. muxers).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>initial caps</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> owned by caller</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-drainable"></a><h3>gst_audio_encoder_set_drainable ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures encoder drain handling. If drainable, subclass might
+be handed a NULL buffer to have it return any leftover encoded data.
+Otherwise, it is not considered so capable and will only ever be passed
+real data.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-frame-max"></a><h3>gst_audio_encoder_set_frame_max ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_frame_max (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets max number of frames accepted at once (assumed minimally 1).
+Requires <em class="parameter"><code>frame_samples_min</code></em> and <em class="parameter"><code>frame_samples_max</code></em> to be the equal.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>number of frames</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-frame-samples-min"></a><h3>gst_audio_encoder_set_frame_samples_min ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_frame_samples_min
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets number of samples (per channel) subclass needs to be handed,
+at least or will be handed all available if 0.
+</p>
+<p>
+If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()"><code class="function">gst_audio_encoder_set_frame_samples_max()</code></a>
+must be called with the same number.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>number of samples per frame</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-frame-samples-max"></a><h3>gst_audio_encoder_set_frame_samples_max ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_frame_samples_max
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets number of samples (per channel) subclass needs to be handed,
+at most or will be handed all available if 0.
+</p>
+<p>
+If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()"><code class="function">gst_audio_encoder_set_frame_samples_min()</code></a>
+must be called with the same number.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>number of samples per frame</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-hard-min"></a><h3>gst_audio_encoder_set_hard_min ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_hard_min (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Configures encoder hard minimum handling. If enabled, subclass
+will never be handed less samples than it configured, which otherwise
+might occur near end-of-data handling. Instead, the leftover samples
+will simply be discarded.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-hard-resync"></a><h3>gst_audio_encoder_set_hard_resync ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_hard_resync (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-latency"></a><h3>gst_audio_encoder_set_latency ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);</pre>
+<p>
+Sets encoder latency.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>min</code></em> :</span></p></td>
+<td>minimum latency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>max</code></em> :</span></p></td>
+<td>maximum latency</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-lookahead"></a><h3>gst_audio_encoder_set_lookahead ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_lookahead (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
+<p>
+Sets encoder lookahead (in units of input rate samples)
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>num</code></em> :</span></p></td>
+<td>lookahead</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-mark-granule"></a><h3>gst_audio_encoder_set_mark_granule ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_mark_granule (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Enable or disable encoder granule handling.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-perfect-timestamp"></a><h3>gst_audio_encoder_set_perfect_timestamp ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_perfect_timestamp
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
+<p>
+Enable or disable encoder perfect output timestamp preference.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enabled</code></em> :</span></p></td>
+<td>new state</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-encoder-set-tolerance"></a><h3>gst_audio_encoder_set_tolerance ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_audio_encoder_set_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> tolerance</code></em>);</pre>
+<p>
+Configures encoder audio jitter tolerance threshold.
+</p>
+<p>
+MT safe.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>enc</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>tolerance</code></em> :</span></p></td>
+<td>new tolerance</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstAudioEncoder--hard-resync"></a><h3>The <code class="literal">"hard-resync"</code> property</h3>
+<pre class="programlisting"> "hard-resync" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>Perform clipping and sample flushing upon discontinuity.</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoder--mark-granule"></a><h3>The <code class="literal">"mark-granule"</code> property</h3>
+<pre class="programlisting"> "mark-granule" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read</pre>
+<p>Apply granule semantics to buffer metadata (implies perfect-timestamp).</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoder--perfect-timestamp"></a><h3>The <code class="literal">"perfect-timestamp"</code> property</h3>
+<pre class="programlisting"> "perfect-timestamp" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>Favour perfect timestamps over tracking upstream timestamps.</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioEncoder--tolerance"></a><h3>The <code class="literal">"tolerance"</code> property</h3>
+<pre class="programlisting"> "tolerance" <span class="type">gint64</span> : Read / Write</pre>
+<p>Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns).</p>
+<p>Allowed values: >= 0</p>
+<p>Default value: 40000000</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioencoder.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html"><span class="type">GstBaseTransform</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudiofilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
-<link rel="prev" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
+<link rel="prev" href="gst-plugins-base-libs-gstaudioencoder.html" title="gstaudioencoder">
<link rel="next" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioclock.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioencoder.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiofilter.description"></a><h2>Description</h2>
<p>
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> is a <span class="type">GstBaseTransform-derived</span> base class for simple audio
+<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> is a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html"><span class="type">GstBaseTransform</span></a>-derived base class for simple audio
filters, ie. those that output the same format that they get as input.
</p>
<p>
<p>
Base class for audio filters with the same format for input and output.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
<p class="since">Since 0.10.12</p>
</div>
<hr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstaudioiec61937</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-audio.html" title="Audio Library">
+<link rel="prev" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">
+<link rel="next" href="gstreamer-cdda.html" title="CDDA Library">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstringbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-cdda.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstaudioiec61937.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gstaudioiec61937.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstaudioiec61937"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioiec61937.top_of_page"></a>gstaudioiec61937</span></h2>
+<p>gstaudioiec61937 — Utility functions for IEC 61937 payloading</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstaudioiec61937.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include <gst/audio/gstaudioiec61937.h>
+
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" title="gst_audio_iec61937_frame_size ()">gst_audio_iec61937_frame_size</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()">gst_audio_iec61937_payload</a> (<em class="parameter"><code>const <span class="type">guint8</span> *src</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src_n</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *dst</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> dst_n</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioiec61937.description"></a><h2>Description</h2>
+<p>
+This module contains some helper functions for encapsulating various
+audio formats in IEC 61937 headers and padding.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstaudioiec61937.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-audio-iec61937-frame-size"></a><h3>gst_audio_iec61937_frame_size ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_audio_iec61937_frame_size (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);</pre>
+<p>
+Calculated the size of the buffer expected by <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()"><code class="function">gst_audio_iec61937_payload()</code></a> for
+payloading type from <em class="parameter"><code>spec</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>spec</code></em> :</span></p></td>
+<td>the ringbufer spec</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the size or 0 if the given <em class="parameter"><code>type</code></em> is not supported or cannot be
+payloaded.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-iec61937-payload"></a><h3>gst_audio_iec61937_payload ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_audio_iec61937_payload (<em class="parameter"><code>const <span class="type">guint8</span> *src</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> src_n</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *dst</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> dst_n</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec"><span class="type">GstRingBufferSpec</span></a> *spec</code></em>);</pre>
+<p>
+Payloads <em class="parameter"><code>src</code></em> in the form specified by IEC 61937 for the type from <em class="parameter"><code>spec</code></em> and
+stores the result in <em class="parameter"><code>dst</code></em>. <em class="parameter"><code>src</code></em> must contain exactly one frame of data and
+the frame is not checked for errors.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
+<td>a buffer containing the data to payload</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>src_n</code></em> :</span></p></td>
+<td>size of <em class="parameter"><code>src</code></em> in bytes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dst</code></em> :</span></p></td>
+<td>the destination buffer to store the payloaded contents in. Should not
+overlap with <em class="parameter"><code>src</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>dst_n</code></em> :</span></p></td>
+<td>size of <em class="parameter"><code>dst</code></em> in bytes</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>spec</code></em> :</span></p></td>
+<td>the ringbufer spec for <em class="parameter"><code>src</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>transfer-full: <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the payloading was successful, <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+otherwise.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudiomixerutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstaudiofilter.html" title="gstaudiofilter">
<link rel="next" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp7862112"></a><p>
+<a name="idp8831744"></a><p>
Provides some utility functions to detect available audio mixers
on the system.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils">
<link rel="next" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstaudiosink.html" title="gstaudiosink">
<link rel="next" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
Base class for simple audio sources.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
</div>
<hr>
<div class="refsect2">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstbaseaudiosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
<link rel="next" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method" title="gst_base_audio_sink_set_slave_method ()">gst_base_audio_sink_set_slave_method</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="type">GstBaseAudioSinkSlaveMethod</span></a> method</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" title="gst_base_audio_sink_get_slave_method ()">gst_base_audio_sink_get_slave_method</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>
+<span class="returnvalue">gint64</span> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" title="gst_base_audio_sink_get_drift_tolerance ()">gst_base_audio_sink_get_drift_tolerance</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" title="gst_base_audio_sink_set_drift_tolerance ()">gst_base_audio_sink_set_drift_tolerance</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> drift_tolerance</code></em>);
+ <em class="parameter"><code><span class="type">gint64</span> drift_tolerance</code></em>);
</pre>
</div>
<div class="refsect1">
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbaseaudiosink.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>buffer-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold" title='The "alignment-threshold" property'>alignment-threshold</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time" title='The "buffer-time" property'>buffer-time</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull" title='The "can-activate-pull" property'>can-activate-pull</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>drift-tolerance</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>latency-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait" title='The "discont-wait" property'>discont-wait</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance" title='The "drift-tolerance" property'>drift-tolerance</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time" title='The "latency-time" property'>latency-time</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock" title='The "provide-clock" property'>provide-clock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method" title='The "slave-method" property'>slave-method</a>" <a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="type">GstBaseAudioSinkSlaveMethod</span></a> : Read / Write
</pre>
/* subclass ringbuffer allocation */
GstRingBuffer* (*create_ringbuffer) (GstBaseAudioSink *sink);
+
+ /* subclass payloader */
+ GstBuffer* (*payload) (GstBaseAudioSink *sink,
+ GstBuffer *buffer);
};
</pre>
<p>
<td><p><span class="term"><em class="structfield"><code><a name="GstBaseAudioSinkClass.create-ringbuffer"></a>create_ringbuffer</code></em> ()</span></p></td>
<td>create and return a <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> to write to.</td>
</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseAudioSinkClass.payload"></a>payload</code></em> ()</span></p></td>
+<td>payload data in a format suitable to write to the sink. If no
+payloading is required, returns a reffed copy of the original
+buffer, else returns the payloaded buffer with all other metadata
+copied. (Since: 0.10.36)</td>
+</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstBaseAudioSinkSlaveMethod"></a><h3>enum GstBaseAudioSinkSlaveMethod</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE,
GST_BASE_AUDIO_SINK_SLAVE_SKEW,
GST_BASE_AUDIO_SINK_SLAVE_NONE
<hr>
<div class="refsect2">
<a name="gst-base-audio-sink-get-slave-method"></a><h3>gst_base_audio_sink_get_slave_method ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a> gst_base_audio_sink_get_slave_method
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod" title="enum GstBaseAudioSinkSlaveMethod"><span class="returnvalue">GstBaseAudioSinkSlaveMethod</span></a> gst_base_audio_sink_get_slave_method
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);</pre>
<p>
Get the current slave method used by <em class="parameter"><code>sink</code></em>.
<hr>
<div class="refsect2">
<a name="gst-base-audio-sink-get-drift-tolerance"></a><h3>gst_base_audio_sink_get_drift_tolerance ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a> gst_base_audio_sink_get_drift_tolerance
+<pre class="programlisting"><span class="returnvalue">gint64</span> gst_base_audio_sink_get_drift_tolerance
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>);</pre>
<p>
Get the current drift tolerance, in microseconds, used by <em class="parameter"><code>sink</code></em>.
<a name="gst-base-audio-sink-set-drift-tolerance"></a><h3>gst_base_audio_sink_set_drift_tolerance ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_base_audio_sink_set_drift_tolerance
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink"><span class="type">GstBaseAudioSink</span></a> *sink</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> drift_tolerance</code></em>);</pre>
+ <em class="parameter"><code><span class="type">gint64</span> drift_tolerance</code></em>);</pre>
<p>
Controls the sink's drift tolerance.
</p>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbaseaudiosink.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
+<a name="GstBaseAudioSink--alignment-threshold"></a><h3>The <code class="literal">"alignment-threshold"</code> property</h3>
+<pre class="programlisting"> "alignment-threshold" <span class="type">guint64</span> : Read / Write</pre>
+<p>Timestamp alignment threshold in nanoseconds.</p>
+<p>Allowed values: [1,18446744073709551614]</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="GstBaseAudioSink--buffer-time"></a><h3>The <code class="literal">"buffer-time"</code> property</h3>
-<pre class="programlisting"> "buffer-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "buffer-time" <span class="type">gint64</span> : Read / Write</pre>
<p>Size of audio buffer in microseconds.</p>
<p>Allowed values: >= 1</p>
<p>Default value: 200000</p>
</div>
<hr>
<div class="refsect2">
+<a name="GstBaseAudioSink--discont-wait"></a><h3>The <code class="literal">"discont-wait"</code> property</h3>
+<pre class="programlisting"> "discont-wait" <span class="type">guint64</span> : Read / Write</pre>
+<p>
+A window of time in nanoseconds to wait before creating a discontinuity as
+a result of breaching the drift-tolerance.
+</p>
+<p>Allowed values: <= 18446744073709551614</p>
+<p>Default value: 1000000000</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="GstBaseAudioSink--drift-tolerance"></a><h3>The <code class="literal">"drift-tolerance"</code> property</h3>
-<pre class="programlisting"> "drift-tolerance" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "drift-tolerance" <span class="type">gint64</span> : Read / Write</pre>
<p>
-Controls the amount of time in milliseconds that timestamps or clocks are allowed
+Controls the amount of time in microseconds that clocks are allowed
to drift before resynchronisation happens.
</p>
<p>Allowed values: >= 1</p>
<hr>
<div class="refsect2">
<a name="GstBaseAudioSink--latency-time"></a><h3>The <code class="literal">"latency-time"</code> property</h3>
-<pre class="programlisting"> "latency-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "latency-time" <span class="type">gint64</span> : Read / Write</pre>
<p>Audio latency in microseconds.</p>
<p>Allowed values: >= 1</p>
<p>Default value: 10000</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstbaseaudiosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstbaseaudiosink.html" title="gstbaseaudiosink">
<link rel="next" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> provide</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock" title="gst_base_audio_src_get_provide_clock ()">gst_base_audio_src_get_provide_clock</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>
+<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method" title="gst_base_audio_src_get_slave_method ()">gst_base_audio_src_get_slave_method</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method" title="gst_base_audio_src_set_slave_method ()">gst_base_audio_src_set_slave_method</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="type">GstBaseAudioSrcSlaveMethod</span></a> method</code></em>);
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbaseaudiosrc.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>actual-buffer-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>actual-latency-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>buffer-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>latency-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time" title='The "actual-buffer-time" property'>actual-buffer-time</a>" <span class="type">gint64</span> : Read
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time" title='The "actual-latency-time" property'>actual-latency-time</a>" <span class="type">gint64</span> : Read
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time" title='The "buffer-time" property'>buffer-time</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time" title='The "latency-time" property'>latency-time</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock" title='The "provide-clock" property'>provide-clock</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method" title='The "slave-method" property'>slave-method</a>" <a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="type">GstBaseAudioSrcSlaveMethod</span></a> : Read / Write
</pre>
<hr>
<div class="refsect2">
<a name="GstBaseAudioSrcSlaveMethod"></a><h3>enum GstBaseAudioSrcSlaveMethod</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE,
GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP,
GST_BASE_AUDIO_SRC_SLAVE_SKEW,
<hr>
<div class="refsect2">
<a name="gst-base-audio-src-get-slave-method"></a><h3>gst_base_audio_src_get_slave_method ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a> gst_base_audio_src_get_slave_method
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod" title="enum GstBaseAudioSrcSlaveMethod"><span class="returnvalue">GstBaseAudioSrcSlaveMethod</span></a> gst_base_audio_src_get_slave_method
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc"><span class="type">GstBaseAudioSrc</span></a> *src</code></em>);</pre>
<p>
Get the current slave method used by <em class="parameter"><code>src</code></em>.
<a name="gst-plugins-base-libs-gstbaseaudiosrc.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstBaseAudioSrc--actual-buffer-time"></a><h3>The <code class="literal">"actual-buffer-time"</code> property</h3>
-<pre class="programlisting"> "actual-buffer-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read</pre>
+<pre class="programlisting"> "actual-buffer-time" <span class="type">gint64</span> : Read</pre>
<p>
Actual configured size of audio buffer in microseconds.
</p>
<hr>
<div class="refsect2">
<a name="GstBaseAudioSrc--actual-latency-time"></a><h3>The <code class="literal">"actual-latency-time"</code> property</h3>
-<pre class="programlisting"> "actual-latency-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read</pre>
+<pre class="programlisting"> "actual-latency-time" <span class="type">gint64</span> : Read</pre>
<p>
Actual configured audio latency in microseconds.
</p>
<hr>
<div class="refsect2">
<a name="GstBaseAudioSrc--buffer-time"></a><h3>The <code class="literal">"buffer-time"</code> property</h3>
-<pre class="programlisting"> "buffer-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "buffer-time" <span class="type">gint64</span> : Read / Write</pre>
<p>Size of audio buffer in microseconds.</p>
<p>Allowed values: >= 1</p>
<p>Default value: 200000</p>
<hr>
<div class="refsect2">
<a name="GstBaseAudioSrc--latency-time"></a><h3>The <code class="literal">"latency-time"</code> property</h3>
-<pre class="programlisting"> "latency-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "latency-time" <span class="type">gint64</span> : Read / Write</pre>
<p>Audio latency in microseconds.</p>
<p>Allowed values: >= 1</p>
<p>Default value: 10000</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstbasertpaudiopayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gstreamer-rtp.html" title="RTP Library">
<link rel="next" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstAdapter.html"><span class="returnvalue">GstAdapter</span></a> * <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter" title="gst_base_rtp_audio_payload_get_adapter ()">gst_base_rtp_audio_payload_get_adapter</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *basertpaudiopayload</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push" title="gst_base_rtp_audio_payload_push ()">gst_base_rtp_audio_payload_push</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *baseaudiopayload</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" title="gst_base_rtp_audio_payload_flush ()">gst_base_rtp_audio_payload_flush</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *baseaudiopayload</code></em>,
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbasertpaudiopayload.description"></a><h2>Description</h2>
<p>
-</p>
-<div class="refsect2">
-<a name="idp16015920"></a><h3>Usage</h3>
-<p>
Provides a base class for audio RTP payloaders for frame or sample based
audio codecs (constant bitrate)
</p>
RTP packets always contain full frames.
</p>
<p>
+</p>
+<div class="refsect2">
+<a name="idp18656560"></a><h3>Usage</h3>
+<p>
To use this base class, your child element needs to call either
<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based" title="gst_base_rtp_audio_payload_set_frame_based ()"><code class="function">gst_base_rtp_audio_payload_set_frame_based()</code></a> or
<a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based" title="gst_base_rtp_audio_payload_set_sample_based ()"><code class="function">gst_base_rtp_audio_payload_set_sample_based()</code></a>. This is usually done in the
<a name="GstBaseRTPAudioPayloadClass"></a><h3>struct GstBaseRTPAudioPayloadClass</h3>
<pre class="programlisting">struct GstBaseRTPAudioPayloadClass {
GstBaseRTPPayloadClass parent_class;
-
- gpointer _gst_reserved[GST_PADDING];
};
</pre>
+<p>
+Base class for audio RTP payloader.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass" title="struct GstBaseRTPPayloadClass"><span class="type">GstBaseRTPPayloadClass</span></a> <em class="structfield"><code><a name="GstBaseRTPAudioPayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<div class="refsect2">
<a name="gst-base-rtp-audio-payload-push"></a><h3>gst_base_rtp_audio_payload_push ()</h3>
<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_base_rtp_audio_payload_push (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload"><span class="type">GstBaseRTPAudioPayload</span></a> *baseaudiopayload</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstbasertpdepayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">
<link rel="next" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push" title="gst_base_rtp_depayload_push ()">gst_base_rtp_depayload_push</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *out_buf</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts" title="gst_base_rtp_depayload_push_ts ()">gst_base_rtp_depayload_push_ts</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *out_buf</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" title="gst_base_rtp_depayload_push_list ()">gst_base_rtp_depayload_push_list</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *out_list</code></em>);
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbasertpdepayload.description"></a><h2>Description</h2>
<p>
-</p>
-<div class="refsect2">
-<a name="idp15451472"></a><p>
Provides a base class for RTP depayloaders
</p>
</div>
-<p>
-</p>
-</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbasertpdepayload.details"></a><h2>Details</h2>
<div class="refsect2">
gboolean (*handle_event) (GstBaseRTPDepayload * filter, GstEvent * event);
};
</pre>
+<p>
+Base class for audio RTP payloader.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseRTPDepayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.set-caps"></a>set_caps</code></em> ()</span></p></td>
+<td>configure the depayloader</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.add-to-queue"></a>add_to_queue</code></em> ()</span></p></td>
+<td>(deprecated)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.process"></a>process</code></em> ()</span></p></td>
+<td>process incoming rtp packets</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.set-gst-timestamp"></a>set_gst_timestamp</code></em> ()</span></p></td>
+<td>convert from RTP timestamp to GST timestamp</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.packet-lost"></a>packet_lost</code></em> ()</span></p></td>
+<td>signal the depayloader about packet loss</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPDepayloadClass.handle-event"></a>handle_event</code></em> ()</span></p></td>
+<td>custom event handling</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<div class="refsect2">
<a name="gst-base-rtp-depayload-push-ts"></a><h3>gst_base_rtp_depayload_push_ts ()</h3>
<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_base_rtp_depayload_push_ts (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload"><span class="type">GstBaseRTPDepayload</span></a> *filter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *out_buf</code></em>);</pre>
<p>
Push <em class="parameter"><code>out_buf</code></em> to the peer of <em class="parameter"><code>filter</code></em>. This function takes ownership of
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstbasertppayload</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gst-plugins-base-libs-gstbasertpdepayload.html" title="gstbasertpdepayload">
<link rel="next" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> dynamic</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> clock_rate</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> clock_rate</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps" title="gst_basertppayload_set_outcaps ()">gst_basertppayload_set_outcaps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload"><span class="type">GstBaseRTPPayload</span></a> *payload</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fieldname</code></em>,
<em class="parameter"><code>...</code></em>);
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbasertppayload.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>max-ptime</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>min-ptime</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime" title='The "max-ptime" property'>max-ptime</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime" title='The "min-ptime" property'>min-ptime</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu" title='The "mtu" property'>mtu</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime" title='The "perfect-rtptime" property'>perfect-rtptime</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt" title='The "pt" property'>pt</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>ptime-multiple</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple" title='The "ptime-multiple" property'>ptime-multiple</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum" title='The "seqnum" property'>seqnum</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
"<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset" title='The "seqnum-offset" property'>seqnum-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc" title='The "ssrc" property'>ssrc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbasertppayload.description"></a><h2>Description</h2>
<p>
-</p>
-<div class="refsect2">
-<a name="idp17358176"></a><p>
Provides a base class for RTP payloaders
</p>
</div>
-<p>
-</p>
-</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstbasertppayload.details"></a><h2>Details</h2>
<div class="refsect2">
GstCaps * (*get_caps) (GstBaseRTPPayload *payload, GstPad * pad);
};
</pre>
+<p>
+Base class for audio RTP payloader.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBaseRTPPayloadClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.set-caps"></a>set_caps</code></em> ()</span></p></td>
+<td>configure the payloader</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.handle-buffer"></a>handle_buffer</code></em> ()</span></p></td>
+<td>process data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.handle-event"></a>handle_event</code></em> ()</span></p></td>
+<td>custom event handling</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseRTPPayloadClass.get-caps"></a>get_caps</code></em> ()</span></p></td>
+<td>get desired caps</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> dynamic</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> clock_rate</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> clock_rate</code></em>);</pre>
<p>
Set the rtp options of the payloader. These options will be set in the caps
of the payloader. Subclasses must call this method before calling
<a name="gst-plugins-base-libs-gstbasertppayload.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstBaseRTPPayload--max-ptime"></a><h3>The <code class="literal">"max-ptime"</code> property</h3>
-<pre class="programlisting"> "max-ptime" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "max-ptime" <span class="type">gint64</span> : Read / Write</pre>
<p>Maximum duration of the packet data in ns (-1 = unlimited up to MTU).</p>
<p>Allowed values: >= -1</p>
<p>Default value: -1</p>
<hr>
<div class="refsect2">
<a name="GstBaseRTPPayload--min-ptime"></a><h3>The <code class="literal">"min-ptime"</code> property</h3>
-<pre class="programlisting"> "min-ptime" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "min-ptime" <span class="type">gint64</span> : Read / Write</pre>
<p>Minimum duration of the packet data in ns (can't go above MTU).</p>
<p>Allowed values: >= 0</p>
<p>Default value: 0</p>
<hr>
<div class="refsect2">
<a name="GstBaseRTPPayload--ptime-multiple"></a><h3>The <code class="literal">"ptime-multiple"</code> property</h3>
-<pre class="programlisting"> "ptime-multiple" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "ptime-multiple" <span class="type">gint64</span> : Read / Write</pre>
<p>Force buffers to be multiples of this duration in ns (0 disables).</p>
<p>Allowed values: >= 0</p>
<p>Default value: 0</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstcddabasesrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-cdda.html" title="CDDA Library">
<link rel="prev" href="gstreamer-cdda.html" title="CDDA Library">
<link rel="next" href="gstreamer-ffft.html" title="FFT Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp11424608"></a><h3>Using GstCddaBaseSrc-based elements in applications</h3>
+<a name="idp11955168"></a><h3>Using GstCddaBaseSrc-based elements in applications</h3>
<p>
Provides a base class for CDDA sources, which handles things like seeking,
querying, discid calculation, tags, and buffer timestamping.
gchar ** (*probe_devices) (GstCddaBaseSrc *src);
};
</pre>
+<p>
+Cdda source base class.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><span class="type">GstPushSrcClass</span> <em class="structfield"><code><a name="GstCddaBaseSrcClass.pushsrc-class"></a>pushsrc_class</code></em>;</span></p></td>
+<td>the parent class</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.open"></a>open</code></em> ()</span></p></td>
+<td>opening the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.close"></a>close</code></em> ()</span></p></td>
+<td>closing the device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.read-sector"></a>read_sector</code></em> ()</span></p></td>
+<td>reading a sector</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.get-default-device"></a>get_default_device</code></em> ()</span></p></td>
+<td>getting the default device</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstCddaBaseSrcClass.probe-devices"></a>probe_devices</code></em> ()</span></p></td>
+<td>probing possible devices</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstcolorbalance</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="next" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed" title="gst_color_balance_value_changed ()">gst_color_balance_value_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a> <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a> <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" title="gst_color_balance_get_balance_type ()">gst_color_balance_get_balance_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp11606512"></a><p>
+<a name="idp13682272"></a><p>
This interface is implemented by elements which can perform some color
balance operation on video frames they process. For example, modifying
the brightness, contrast, hue or saturation.
void (* value_changed) (GstColorBalance *balance,
GstColorBalanceChannel *channel,
gint value);
-
- gpointer _gst_reserved[GST_PADDING];
};
</pre>
+<p>
+Color-balance interface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstColorBalanceClass.klass"></a>klass</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a> <em class="structfield"><code><a name="GstColorBalanceClass.balance-type"></a>balance_type</code></em>;</span></p></td>
+<td>implementation type</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.list-channels"></a>list_channels</code></em> ()</span></p></td>
+<td>list handled channels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.set-value"></a>set_value</code></em> ()</span></p></td>
+<td>set a channel value</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.get-value"></a>get_value</code></em> ()</span></p></td>
+<td>get a channel value</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceClass.value-changed"></a>value_changed</code></em> ()</span></p></td>
+<td>default handler for value changed notification</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstColorBalanceType"></a><h3>enum GstColorBalanceType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_COLOR_BALANCE_HARDWARE,
GST_COLOR_BALANCE_SOFTWARE
} GstColorBalanceType;
and max_value.
</p>
<p>
-See Also: The <span class="type">"min_value"</span> and
- <span class="type">"max_value"</span> members of the
+See Also: The <span class="type">GstColorBalanceChannel.min_value</span> and
+ <span class="type">GstColorBalanceChannel.max_value</span> members of the
<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.
</p>
<div class="variablelist"><table border="0">
be between min_value and max_value.
</p>
<p>
-See Also: The <span class="type">"min_value"</span> and
- <span class="type">"max_value"</span> members of the
+See Also: The <span class="type">GstColorBalanceChannel.min_value</span> and
+ <span class="type">GstColorBalanceChannel.max_value</span> members of the
<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.
</p>
<div class="variablelist"><table border="0">
<hr>
<div class="refsect2">
<a name="gst-color-balance-get-balance-type"></a><h3>gst_color_balance_get_balance_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a> gst_color_balance_get_balance_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a> gst_color_balance_get_balance_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
<p>
Get the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a> of this implementation.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstcolorbalancechannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
<link rel="next" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp8229152"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
+<a name="idp13450016"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
for modifying the color balance implemented by an element providing the
<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> interface. For example, Hue or Saturation.
</p>
/* signals */
void (* value_changed) (GstColorBalanceChannel *channel,
gint value);
-
- gpointer _gst_reserved[GST_PADDING];
};
</pre>
+<p>
+Color-balance channel class.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GstColorBalanceChannelClass.parent"></a>parent</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstColorBalanceChannelClass.value-changed"></a>value_changed</code></em> ()</span></p></td>
+<td>default handler for value changed notification</td>
+</tr>
+</tbody>
+</table></div>
</div>
</div>
<div class="refsect1">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstdiscoverer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
<link rel="prev" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
<link rel="next" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct" title="GstDiscovererInfo">GstDiscovererInfo</a>;
enum <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult">GstDiscovererResult</a>;
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration" title="gst_discoverer_info_get_duration ()">gst_discoverer_info_get_duration</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result" title="gst_discoverer_info_get_result ()">gst_discoverer_info_get_result</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info" title="gst_discoverer_info_get_stream_info ()">gst_discoverer_info_get_stream_info</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a>
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list" title="gst_discoverer_info_get_stream_list ()">gst_discoverer_info_get_stream_list</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags" title="gst_discoverer_info_get_tags ()">gst_discoverer_info_get_tags</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri" title="gst_discoverer_info_get_uri ()">gst_discoverer_info_get_uri</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable" title="gst_discoverer_info_get_seekable ()">gst_discoverer_info_get_seekable</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
#define <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref" title="gst_discoverer_info_ref()">gst_discoverer_info_ref</a> (info)
#define <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref" title="gst_discoverer_info_unref()">gst_discoverer_info_unref</a> (info)
<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo">GstDiscovererContainerInfo</a>;
<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo">GstDiscovererAudioInfo</a>;
<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo">GstDiscovererVideoInfo</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a>
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>
+ <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo">GstDiscovererSubtitleInfo</a>;
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" title="gst_discoverer_stream_info_get_caps ()">gst_discoverer_stream_info_get_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()">gst_discoverer_stream_info_get_next</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()">gst_discoverer_stream_info_get_previous</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
+const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags" title="gst_discoverer_stream_info_get_tags ()">gst_discoverer_stream_info_get_tags</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
#define <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref" title="gst_discoverer_stream_info_ref()">gst_discoverer_stream_info_ref</a> (info)
#define <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()">gst_discoverer_stream_info_unref</a> (info)
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()">gst_discoverer_stream_info_list_free</a>
(<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *infos</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick" title="gst_discoverer_stream_info_get_stream_type_nick ()">gst_discoverer_stream_info_get_stream_type_nick</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" title="gst_discoverer_info_get_audio_streams ()">gst_discoverer_info_get_audio_streams</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" title="gst_discoverer_info_get_container_streams ()">gst_discoverer_info_get_container_streams</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a>
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" title="gst_discoverer_info_get_streams ()">gst_discoverer_info_get_streams</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> streamtype</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams" title="gst_discoverer_info_get_subtitle_streams ()">gst_discoverer_info_get_subtitle_streams</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" title="gst_discoverer_info_get_video_streams ()">gst_discoverer_info_get_video_streams</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" title="gst_discoverer_audio_info_get_bitrate ()">gst_discoverer_audio_info_get_bitrate</a>
(<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" title="gst_discoverer_audio_info_get_channels ()">gst_discoverer_audio_info_get_channels</a>
(<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" title="gst_discoverer_audio_info_get_depth ()">gst_discoverer_audio_info_get_depth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language" title="gst_discoverer_audio_info_get_language ()">gst_discoverer_audio_info_get_language</a>
+ (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" title="gst_discoverer_audio_info_get_max_bitrate ()">gst_discoverer_audio_info_get_max_bitrate</a>
(<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" title="gst_discoverer_audio_info_get_sample_rate ()">gst_discoverer_audio_info_get_sample_rate</a>
(<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" title="gst_discoverer_container_info_get_streams ()">gst_discoverer_container_info_get_streams</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> *info</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language" title="gst_discoverer_subtitle_info_get_language ()">gst_discoverer_subtitle_info_get_language</a>
+ (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" title="gst_discoverer_video_info_get_bitrate ()">gst_discoverer_video_info_get_bitrate</a>
(<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" title="gst_discoverer_video_info_get_depth ()">gst_discoverer_video_info_get_depth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);
<div class="refsect1">
<a name="gst-plugins-base-libs-gstdiscoverer.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>timeout</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write / Construct
+ "<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout" title='The "timeout" property'>timeout</a>" <span class="type">guint64</span> : Read / Write / Construct
</pre>
</div>
<div class="refsect1">
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
-<td>If an error occurred, this field will be filled in.</td>
+<td>If an error occurred, this field will be filled in. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>uri</code></em> was succesfully appended to the list of pending
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>uri</code></em> was successfully appended to the list of pending
uris, else <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
</td>
</tr>
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-misc"></a><h3>gst_discoverer_info_get_misc ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_info_get_misc
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_info_get_misc (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-result"></a><h3>gst_discoverer_info_get_result ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a> gst_discoverer_info_get_result (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a> gst_discoverer_info_get_result (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-stream-info"></a><h3>gst_discoverer_info_get_stream_info ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_info_get_stream_info
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_info_get_stream_info
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-stream-list"></a><h3>gst_discoverer_info_get_stream_list ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_stream_list
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_stream_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-tags"></a><h3>gst_discoverer_info_get_tags ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_discoverer_info_get_tags
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_discoverer_info_get_tags (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>all tags contained in the <code class="literal">URI</code>. If you wish to use
+<td>all tags contained in the URI. If you wish to use
the tags after the life-time of <em class="parameter"><code>info</code></em>, you will need to copy them. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
</tr>
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-uri"></a><h3>gst_discoverer_info_get_uri ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_discoverer_info_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_discoverer_info_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the wheter the URI is seekable.</td>
+<td>the whether the URI is seekable.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
+<a name="GstDiscovererSubtitleInfo"></a><h3>GstDiscovererSubtitleInfo</h3>
+<pre class="programlisting">typedef struct _GstDiscovererSubtitleInfo GstDiscovererSubtitleInfo;</pre>
+<p>
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> specific to subtitle streams (this includes text and
+image based ones).
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-discoverer-stream-info-get-caps"></a><h3>gst_discoverer_stream_info_get_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_discoverer_stream_info_get_caps
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_discoverer_stream_info_get_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-discoverer-stream-info-get-misc"></a><h3>gst_discoverer_stream_info_get_misc ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_stream_info_get_misc
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="returnvalue">GstStructure</span></a> * gst_discoverer_stream_info_get_misc
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-discoverer-stream-info-get-next"></a><h3>gst_discoverer_stream_info_get_next ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_next
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_next
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-discoverer-stream-info-get-previous"></a><h3>gst_discoverer_stream_info_get_previous ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_previous
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> * gst_discoverer_stream_info_get_previous
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-discoverer-stream-info-get-tags"></a><h3>gst_discoverer_stream_info_get_tags ()</h3>
-<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_discoverer_stream_info_get_tags
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
+<pre class="programlisting">const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_discoverer_stream_info_get_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="gst-discoverer-stream-info-get-stream-type-nick"></a><h3>gst_discoverer_stream_info_get_stream_type_nick ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_discoverer_stream_info_get_stream_type_nick
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_discoverer_stream_info_get_stream_type_nick
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-audio-streams"></a><h3>gst_discoverer_info_get_audio_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_audio_streams
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_audio_streams
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<p>
Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> contained in <em class="parameter"><code>info</code></em>
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-container-streams"></a><h3>gst_discoverer_info_get_container_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_container_streams
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_container_streams
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<p>
Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> contained in <em class="parameter"><code>info</code></em>
<hr>
<div class="refsect2">
<a name="gst-discoverer-info-get-streams"></a><h3>gst_discoverer_info_get_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_streams
- (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_streams (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> streamtype</code></em>);</pre>
<p>
Finds the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> contained in <em class="parameter"><code>info</code></em> that match the
</div>
<hr>
<div class="refsect2">
+<a name="gst-discoverer-info-get-subtitle-streams"></a><h3>gst_discoverer_info_get_subtitle_streams ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_subtitle_streams
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
+<p>
+Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> contained in <em class="parameter"><code>info</code></em>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
+matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
+<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.DiscovererStreamInfo]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-discoverer-info-get-video-streams"></a><h3>gst_discoverer_info_get_video_streams ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_video_streams
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_discoverer_info_get_video_streams
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
<p>
Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> contained in <em class="parameter"><code>info</code></em>
</div>
<hr>
<div class="refsect2">
+<a name="gst-discoverer-audio-info-get-language"></a><h3>gst_discoverer_audio_info_get_language ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_discoverer_audio_info_get_language
+ (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the language of the stream, or NULL if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-discoverer-audio-info-get-max-bitrate"></a><h3>gst_discoverer_audio_info_get_max_bitrate ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_discoverer_audio_info_get_max_bitrate
(<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
+<a name="gst-discoverer-subtitle-info-get-language"></a><h3>gst_discoverer_subtitle_info_get_language ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_discoverer_subtitle_info_get_language
+ (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> *info</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the language of the stream, or NULL if unknown.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-discoverer-video-info-get-bitrate"></a><h3>gst_discoverer_video_info_get_bitrate ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_discoverer_video_info_get_bitrate
(<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
<a name="gst-plugins-base-libs-gstdiscoverer.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstDiscoverer--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3>
-<pre class="programlisting"> "timeout" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write / Construct</pre>
+<pre class="programlisting"> "timeout" <span class="type">guint64</span> : Read / Write / Construct</pre>
<p>
The duration (in nanoseconds) after which the discovery of an individual
URI will timeout.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstfft</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
<link rel="prev" href="gstreamer-ffft.html" title="FFT Library">
<link rel="next" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a name="gst-plugins-base-libs-gstfft.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstFFTWindow"></a><h3>enum GstFFTWindow</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_FFT_WINDOW_RECTANGULAR,
GST_FFT_WINDOW_HAMMING,
GST_FFT_WINDOW_HANN,
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstfftf32</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
<link rel="prev" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
<link rel="next" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
<a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32"><span class="type">GstFFTF32</span></a> provides a FFT implementation and related functions for
32 bit float samples. To use this call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="struct GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the appropriate parameters and
then call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()"><code class="function">gst_fft_f32_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()"><code class="function">gst_fft_f32_inverse_fft()</code></a> to perform the
FFT or inverse FFT on a buffer of samples.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstfftf64</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
<link rel="prev" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
<link rel="next" href="gstreamer-floatcast.html" title="FloatCast Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
<a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64"><span class="type">GstFFTF64</span></a> provides a FFT implementation and related functions for
64 bit float samples. To use this call <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()"><code class="function">gst_fft_f64_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64"><span class="type">GstFFTF64</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="struct GstFFTF64"><span class="type">GstFFTF64</span></a> instance with the appropriate parameters and
then call <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft" title="gst_fft_f64_fft ()"><code class="function">gst_fft_f64_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft" title="gst_fft_f64_inverse_fft ()"><code class="function">gst_fft_f64_inverse_fft()</code></a> to perform the
FFT or inverse FFT on a buffer of samples.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstffts16</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
<link rel="prev" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
<link rel="next" href="gst-plugins-base-libs-gstffts32.html" title="gstffts32">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="returnvalue">GstFFTS16</span></a> * <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()">gst_fft_s16_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()">gst_fft_s16_fft</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+ <em class="parameter"><code>const <span class="type">gint16</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()">gst_fft_s16_inverse_fft</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>);
+ <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window" title="gst_fft_s16_window ()">gst_fft_s16_window</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+ <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free" title="gst_fft_s16_free ()">gst_fft_s16_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>);
</pre>
<p>
<a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> provides a FFT implementation and related functions for
signed 16 bit integer samples. To use this call <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()"><code class="function">gst_fft_s16_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> instance with the appropriate parameters and
then call <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()"><code class="function">gst_fft_s16_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()"><code class="function">gst_fft_s16_inverse_fft()</code></a> to perform the
FFT or inverse FFT on a buffer of samples.
</p>
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GstFFTS16Complex.r"></a>r</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint16</span> <em class="structfield"><code><a name="GstFFTS16Complex.r"></a>r</code></em>;</span></p></td>
<td>Real part</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GstFFTS16Complex.i"></a>i</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint16</span> <em class="structfield"><code><a name="GstFFTS16Complex.i"></a>i</code></em>;</span></p></td>
<td>Imaginary part</td>
</tr>
</tbody>
<div class="refsect2">
<a name="gst-fft-s16-fft"></a><h3>gst_fft_s16_fft ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_fft_s16_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+ <em class="parameter"><code>const <span class="type">gint16</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>);</pre>
<p>
This performs the FFT on <em class="parameter"><code>timedata</code></em> and puts the result in <em class="parameter"><code>freqdata</code></em>.
<a name="gst-fft-s16-inverse-fft"></a><h3>gst_fft_s16_inverse_fft ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_fft_s16_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>);</pre>
+ <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>);</pre>
<p>
This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em> and puts the result in <em class="parameter"><code>timedata</code></em>.
</p>
<div class="refsect2">
<a name="gst-fft-s16-window"></a><h3>gst_fft_s16_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_fft_s16_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="struct GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
+ <em class="parameter"><code><span class="type">gint16</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
<p>
This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstffts32</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-ffft.html" title="FFT Library">
<link rel="prev" href="gst-plugins-base-libs-gstffts16.html" title="gstffts16">
<link rel="next" href="gst-plugins-base-libs-gstfftf32.html" title="gstfftf32">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="returnvalue">GstFFTS32</span></a> * <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()">gst_fft_s32_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()">gst_fft_s32_fft</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+ <em class="parameter"><code>const <span class="type">gint32</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()">gst_fft_s32_inverse_fft</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>);
+ <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window" title="gst_fft_s32_window ()">gst_fft_s32_window</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free" title="gst_fft_s32_free ()">gst_fft_s32_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>);
</pre>
<p>
<a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> provides a FFT implementation and related functions for
signed 32 bit integer samples. To use this call <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()"><code class="function">gst_fft_s32_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> instance with the appropiate parameters and
+allocating a <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> instance with the appropriate parameters and
then call <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()"><code class="function">gst_fft_s32_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()"><code class="function">gst_fft_s32_inverse_fft()</code></a> to perform the
FFT or inverse FFT on a buffer of samples.
</p>
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="GstFFTS32Complex.r"></a>r</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint32</span> <em class="structfield"><code><a name="GstFFTS32Complex.r"></a>r</code></em>;</span></p></td>
<td>Real part</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="GstFFTS32Complex.i"></a>i</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">gint32</span> <em class="structfield"><code><a name="GstFFTS32Complex.i"></a>i</code></em>;</span></p></td>
<td>Imaginary part</td>
</tr>
</tbody>
<div class="refsect2">
<a name="gst-fft-s32-fft"></a><h3>gst_fft_s32_fft ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_fft_s32_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+ <em class="parameter"><code>const <span class="type">gint32</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>);</pre>
<p>
This performs the FFT on <em class="parameter"><code>timedata</code></em> and puts the result in <em class="parameter"><code>freqdata</code></em>.
<a name="gst-fft-s32-inverse-fft"></a><h3>gst_fft_s32_inverse_fft ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_fft_s32_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>);</pre>
+ <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>);</pre>
<p>
This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em> and puts the result in <em class="parameter"><code>timedata</code></em>.
</p>
<div class="refsect2">
<a name="gst-fft-s32-window"></a><h3>gst_fft_s32_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_fft_s32_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="struct GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> *timedata</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
<p>
This calls the window function <em class="parameter"><code>window</code></em> on the <em class="parameter"><code>timedata</code></em> sample buffer.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstfloatcast</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-floatcast.html" title="FloatCast Library">
<link rel="prev" href="gstreamer-floatcast.html" title="FloatCast Library">
<link rel="next" href="gstreamer-interfaces.html" title="Interfaces Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstmixer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstcolorbalancechannel.html" title="gstcolorbalancechannel">
<link rel="next" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed" title="gst_mixer_mixer_changed ()">gst_mixer_mixer_changed</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerFlags" title="enum GstMixerFlags"><span class="returnvalue">GstMixerFlags</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags" title="gst_mixer_get_mixer_flags ()">gst_mixer_get_mixer_flags</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerType" title="enum GstMixerType"><span class="returnvalue">GstMixerType</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type" title="gst_mixer_get_mixer_type ()">gst_mixer_get_mixer_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixer"><span class="type">GstMixer</span></a> *mixer</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type" title="gst_mixer_message_get_type ()">gst_mixer_message_get_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled" title="gst_mixer_message_parse_mute_toggled ()">gst_mixer_message_parse_mute_toggled</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack"><span class="type">GstMixerTrack</span></a> **track</code></em>,
<hr>
<div class="refsect2">
<a name="GstMixerType"></a><h3>enum GstMixerType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_MIXER_HARDWARE,
GST_MIXER_SOFTWARE
} GstMixerType;
</pre>
+<p>
+Mixer classification.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-MIXER-HARDWARE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_HARDWARE</code></span></p></td>
+<td>mixing is implemented with dedicated hardware.
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MIXER-SOFTWARE:CAPS"></a><span class="term"><code class="literal">GST_MIXER_SOFTWARE</code></span></p></td>
+<td>mixing is implemented via software processing.
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstMixerFlags"></a><h3>enum GstMixerFlags</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_MIXER_FLAG_NONE = 0,
GST_MIXER_FLAG_AUTO_NOTIFICATIONS = (1<<0),
GST_MIXER_FLAG_HAS_WHITELIST = (1<<1),
<hr>
<div class="refsect2">
<a name="GstMixerMessageType"></a><h3>enum GstMixerMessageType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_MIXER_MESSAGE_INVALID,
GST_MIXER_MESSAGE_MUTE_TOGGLED,
GST_MIXER_MESSAGE_RECORD_TOGGLED,
</p>
<p>
The new options are not contained in the message on purpose. Applications
-should call <code class="function">gst_mixer_option_get_values()</code> on <em class="parameter"><code>opts</code></em> to make <em class="parameter"><code>opts</code></em> update
+should call <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()"><code class="function">gst_mixer_options_get_values()</code></a> on <em class="parameter"><code>opts</code></em> to make <em class="parameter"><code>opts</code></em> update
its internal state and obtain the new list of values.
</p>
<p>
<hr>
<div class="refsect2">
<a name="gst-mixer-message-get-type"></a><h3>gst_mixer_message_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> gst_mixer_message_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType" title="enum GstMixerMessageType"><span class="returnvalue">GstMixerMessageType</span></a> gst_mixer_message_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
<p>
Check a bus message to see if it is a GstMixer notification
message and return the GstMixerMessageType identifying which
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstmixeroptions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstmixer.html" title="gstmixer">
<link rel="next" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a name="gst-plugins-base-libs-gstmixeroptions.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstMixerOptions-struct"></a><h3>struct GstMixerOptions</h3>
-<pre class="programlisting">struct GstMixerOptions;</pre>
+<pre class="programlisting">struct GstMixerOptions {
+ /* list of strings (do not access directly) (FIXME 0.11: make private) */
+ GList *values;
+};
+</pre>
+<p>
+Mixer control object.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
-<tbody></tbody>
+<tbody><tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstMixerOptions-struct.values"></a>values</code></em>;</span></p></td>
+<td>List of option strings. Do not access this member directly,
+always use <a class="link" href="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values" title="gst_mixer_options_get_values ()"><code class="function">gst_mixer_options_get_values()</code></a> instead.</td>
+</tr></tbody>
</table></div>
</div>
<hr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstmixertrack</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstmixeroptions.html" title="gstmixeroptions">
<link rel="next" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstmultichannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstbaseaudiosrc.html" title="gstbaseaudiosrc">
<link rel="next" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
* incompatible with all other positions, either all positions
* are defined or all positions are undefined, but can't mix'n'match */
GST_AUDIO_CHANNEL_POSITION_NONE,
-
- /* don't use - counter */
- GST_AUDIO_CHANNEL_POSITION_NUM
} GstAudioChannelPosition;
</pre>
+<p>
+Audio channel positions.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_INVALID</code></span></p></td>
-<td></td>
+<td>invalid position
+</td>
</tr>
<tr>
<td><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-MONO:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_FRONT_MONO</code></span></p></td>
any other channel position
</td>
</tr>
-<tr>
-<td><p><a name="GST-AUDIO-CHANNEL-POSITION-NUM:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CHANNEL_POSITION_NUM</code></span></p></td>
-<td></td>
-</tr>
</tbody>
</table></div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstnavigation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstmixertrack.html" title="gstmixertrack">
<link rel="next" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()">gst_navigation_message_get_type</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="returnvalue">GstMessage</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed" title="gst_navigation_message_new_angles_changed ()">gst_navigation_message_new_angles_changed</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html"><span class="type">GstObject</span></a> *src</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles" title="gst_navigation_query_new_angles ()">gst_navigation_query_new_angles</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type" title="gst_navigation_query_get_type ()">gst_navigation_query_get_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="returnvalue">GstQuery</span></a> * <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()">gst_navigation_query_new_commands</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles" title="gst_navigation_query_parse_angles ()">gst_navigation_query_parse_angles</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
</p>
<p>
The GstNavigation message functions provide functions for creating and parsing
-custom bus messages for signalling GstNavigation changes.
+custom bus messages for signaling GstNavigation changes.
</p>
</li>
</ul></div>
/* virtual functions */
void (*send_event) (GstNavigation *navigation, GstStructure *structure);
-
- gpointer _gst_reserved[GST_PADDING];
};
</pre>
+<p>
+Color-balance interface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstNavigationInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstNavigationInterface.send-event"></a>send_event</code></em> ()</span></p></td>
+<td>sending a navigation event</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
GST_NAVIGATION_COMMAND_MENU5 = 5,
GST_NAVIGATION_COMMAND_MENU6 = 6,
GST_NAVIGATION_COMMAND_MENU7 = 7,
-
+
GST_NAVIGATION_COMMAND_LEFT = 20,
GST_NAVIGATION_COMMAND_RIGHT = 21,
GST_NAVIGATION_COMMAND_UP = 22,
<hr>
<div class="refsect2">
<a name="GstNavigationQueryType"></a><h3>enum GstNavigationQueryType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_NAVIGATION_QUERY_INVALID = 0,
GST_NAVIGATION_QUERY_COMMANDS = 1,
GST_NAVIGATION_QUERY_ANGLES = 2
} GstNavigationQueryType;
</pre>
+<p>
+Tyoes of navigation interface queries.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-NAVIGATION-QUERY-INVALID:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_INVALID</code></span></p></td>
+<td>invalid query
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-NAVIGATION-QUERY-COMMANDS:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_COMMANDS</code></span></p></td>
+<td>command query
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-NAVIGATION-QUERY-ANGLES:CAPS"></a><span class="term"><code class="literal">GST_NAVIGATION_QUERY_ANGLES</code></span></p></td>
+<td>viewing angle query
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<hr>
<div class="refsect2">
<a name="gst-navigation-message-get-type"></a><h3>gst_navigation_message_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> gst_navigation_message_get_type
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a> gst_navigation_message_get_type
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
<p>
Check a bus message to see if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> event, and return
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>The type of the <span class="type">GstNavigationMessage</span>, or
+<td>The type of the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GstMessage"><span class="type">GstMessage</span></a>, or
<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_INVALID</span></a> if the message is not a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a>
notification.</td>
</tr>
<hr>
<div class="refsect2">
<a name="gst-navigation-query-get-type"></a><h3>gst_navigation_query_get_type ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> gst_navigation_query_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a> gst_navigation_query_get_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
<p>
Inspect a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstQuery.html#GstQuery"><span class="type">GstQuery</span></a> and return the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> associated with
it if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> query.
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>The <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> of the query, or
-<span class="type">GST_NAVIGATION_QUERY_INVALID</span>
+<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"><span class="type">GST_NAVIGATION_QUERY_INVALID</span></a>
</td>
</tr>
</tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstnetbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-netbuffer.html" title="Network Buffer Library">
<link rel="prev" href="gstreamer-netbuffer.html" title="Network Buffer Library">
<link rel="next" href="gstreamer-riff.html" title="Riff Media Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer" title="struct GstNetBuffer"><span class="returnvalue">GstNetBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new" title="gst_netbuffer_new ()">gst_netbuffer_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType"><span class="returnvalue">GstNetType</span></a> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type" title="gst_netaddress_get_net_type ()">gst_netaddress_get_net_type</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address" title="gst_netaddress_set_ip4_address ()">gst_netaddress_set_ip4_address</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> address</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> address</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address" title="gst_netaddress_get_ip4_address ()">gst_netaddress_get_ip4_address</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *address</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> *address</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address" title="gst_netaddress_set_ip6_address ()">gst_netaddress_set_ip6_address</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address" title="gst_netaddress_get_ip6_address ()">gst_netaddress_get_ip6_address</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes" title="gst_netaddress_get_address_bytes ()">gst_netaddress_get_address_bytes</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" title="gst_netaddress_set_address_bytes ()">gst_netaddress_set_address_bytes</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType"><span class="type">GstNetType</span></a> type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" title="gst_netaddress_equal ()">gst_netaddress_equal</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr1</code></em>,
<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr2</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" title="gst_netaddress_to_string ()">gst_netaddress_to_string</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
<div class="refsect2">
<a name="gst-netaddress-set-ip4-address"></a><h3>gst_netaddress_set_ip4_address ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_netaddress_set_ip4_address (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> address</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> address</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
<p>
Set <em class="parameter"><code>naddr</code></em> with the IPv4 <em class="parameter"><code>address</code></em> and <em class="parameter"><code>port</code></em> pair.
</p>
<div class="refsect2">
<a name="gst-netaddress-get-ip4-address"></a><h3>gst_netaddress_get_ip4_address ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_netaddress_get_ip4_address (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *address</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> *address</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
<p>
Get the IPv4 address stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>. This function requires
that the address type of <em class="parameter"><code>naddr</code></em> is of type <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GST-NET-TYPE-IP4:CAPS"><span class="type">GST_NET_TYPE_IP4</span></a>.
<div class="refsect2">
<a name="gst-netaddress-set-ip6-address"></a><h3>gst_netaddress_set_ip6_address ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_netaddress_set_ip6_address (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
<p>
Set <em class="parameter"><code>naddr</code></em> with the IPv6 <em class="parameter"><code>address</code></em> and <em class="parameter"><code>port</code></em> pair.
</p>
<div class="refsect2">
<a name="gst-netaddress-get-ip6-address"></a><h3>gst_netaddress_get_ip6_address ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_netaddress_get_ip6_address (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
<p>
Get the IPv6 address stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>.
</p>
<div class="refsect2">
<a name="gst-netaddress-get-address-bytes"></a><h3>gst_netaddress_get_address_bytes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_netaddress_get_address_bytes (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
<p>
Get just the address bytes stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>.
</p>
<a name="gst-netaddress-set-address-bytes"></a><h3>gst_netaddress_set_address_bytes ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_netaddress_set_address_bytes (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress" title="struct GstNetAddress"><span class="type">GstNetAddress</span></a> *naddr</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnetbuffer.html#GstNetType" title="enum GstNetType"><span class="type">GstNetType</span></a> type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> address[16]</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> address[16]</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
<p>
Set just the address bytes stored in <em class="parameter"><code>naddr</code></em> into <em class="parameter"><code>address</code></em>.
</p>
<p>
Note that <em class="parameter"><code>port</code></em> must be expressed in network byte order, use <a href="http://library.gnome.org/devel/glib/unstable/glib-Byte-Order-Macros.html#g-htons"><code class="function">g_htons()</code></a> to
-convert it to network byte order order. IP4 address bytes must also be
+convert it to network byte order. IP4 address bytes must also be
stored in network byte order.
</p>
<div class="variablelist"><table border="0">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstpbutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
<link rel="prev" href="gstreamer-base-utils.html" title="Base Utils Library">
-<link rel="next" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstpbutilscodecutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstpluginsbaseversion.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gstpbutils.synopsis" class="shortcut">Top</a>
#include <gst/pbutils/pbutils.h>
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" title="gst_pb_utils_init ()">gst_pb_utils_init</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-
-#define <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>
-#define <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>
-#define <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>
-#define <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>
-#define <a class="link" href="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a> (major,
- minor,
- micro)
-<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp19337104"></a><h3>Linking to this library</h3>
+<a name="idp7121744"></a><h3>Linking to this library</h3>
<p>
libgstpbutils is a general utility library for plugins and applications,
available since gst-plugins-base 0.10.12. It currently provides the
</p>
<p class="since">Since 0.10.12</p>
</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MAJOR</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MAJOR (0)
-</pre>
-<p>
-The major version of GStreamer's gst-plugins-base libraries at compile time.
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-MINOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MINOR</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (10)
-</pre>
-<p>
-The minor version of GStreamer's gst-plugins-base libraries at compile time.
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (34)
-</pre>
-<p>
-The micro version of GStreamer's gst-plugins-base libraries at compile time.
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-PLUGINS-BASE-VERSION-NANO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_NANO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_NANO (0)
-</pre>
-<p>
-The nano version of GStreamer's gst-plugins-base libraries at compile time.
-Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
-</p>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-CHECK-PLUGINS-BASE-VERSION:CAPS"></a><h3>GST_CHECK_PLUGINS_BASE_VERSION()</h3>
-<pre class="programlisting">#define GST_CHECK_PLUGINS_BASE_VERSION(major,minor,micro)</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-plugins-base-version"></a><h3>gst_plugins_base_version ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_plugins_base_version (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);</pre>
-<p>
-Gets the version number of the GStreamer Plugins Base libraries.
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
-<td>pointer to a guint to store the major version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>minor</code></em> :</span></p></td>
-<td>pointer to a guint to store the minor version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>micro</code></em> :</span></p></td>
-<td>pointer to a guint to store the micro version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>nano</code></em> :</span></p></td>
-<td>pointer to a guint to store the nano version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-<p class="since">Since 0.10.31</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-plugins-base-version-string"></a><h3>gst_plugins_base_version_string ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_plugins_base_version_string (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>
-This function returns a string that is useful for describing this version
-of GStreamer's gst-plugins-base libraries to the outside world: user agent
-strings, logging, about dialogs ...
-</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody><tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a newly allocated string describing this version of gst-plugins-base</td>
-</tr></tbody>
-</table></div>
-<p class="since">Since 0.10.31</p>
-</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstpbutilscodecutils</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
-<link rel="prev" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
+<link rel="prev" href="gst-plugins-base-libs-gstpluginsbaseversion.html" title="gstpluginsbaseversion">
<link rel="next" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstpbutils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstpluginsbaseversion.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>
(<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> sr_idx</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()">gst_codec_utils_aac_get_profile</a> (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()">gst_codec_utils_aac_get_level</a> (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile" title="gst_codec_utils_aac_caps_set_level_and_profile ()">gst_codec_utils_aac_caps_set_level_and_profile</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()">gst_codec_utils_h264_get_profile</a> (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()">gst_codec_utils_h264_get_level</a> (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" title="gst_codec_utils_h264_caps_set_level_and_profile ()">gst_codec_utils_h264_caps_set_level_and_profile</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
+<span class="returnvalue">guint8</span> <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc" title="gst_codec_utils_h264_get_level_idc ()">gst_codec_utils_h264_get_level_idc</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()">gst_codec_utils_mpeg4video_get_profile</a>
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+ (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()">gst_codec_utils_mpeg4video_get_level</a>
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+ (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" title="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()">gst_codec_utils_mpeg4video_caps_set_level_and_profile</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
</pre>
</div>
<p>
</p>
<div class="refsect2">
-<a name="idp24572928"></a><p>
+<a name="idp27788672"></a><p>
Provides codec-specific ulility functions such as functions to provide the
codec profile and level in human-readable string form from header data.
</p>
<hr>
<div class="refsect2">
<a name="gst-codec-utils-aac-get-profile"></a><h3>gst_codec_utils_aac_get_profile ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_aac_get_profile (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_aac_get_profile (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Returns the profile of the given AAC stream as a string. The profile is
<hr>
<div class="refsect2">
<a name="gst-codec-utils-aac-get-level"></a><h3>gst_codec_utils_aac_get_level ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_aac_get_level (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_aac_get_level (<em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Determines the level of a stream as defined in ISO/IEC 14496-3. For AAC LC
<a name="gst-codec-utils-aac-caps-set-level-and-profile"></a><h3>gst_codec_utils_aac_caps_set_level_and_profile ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_codec_utils_aac_caps_set_level_and_profile
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *audio_config</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Sets the level and profile on <em class="parameter"><code>caps</code></em> if it can be determined from
<hr>
<div class="refsect2">
<a name="gst-codec-utils-h264-get-profile"></a><h3>gst_codec_utils_h264_get_profile ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_h264_get_profile (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_h264_get_profile (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Converts the profile indication (profile_idc) in the stream's
<hr>
<div class="refsect2">
<a name="gst-codec-utils-h264-get-level"></a><h3>gst_codec_utils_h264_get_level ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_h264_get_level (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_h264_get_level (<em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Converts the level indication (level_idc) in the stream's
<a name="gst-codec-utils-h264-caps-set-level-and-profile"></a><h3>gst_codec_utils_h264_caps_set_level_and_profile ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_codec_utils_h264_caps_set_level_and_profile
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *sps</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Sets the level and profile in <em class="parameter"><code>caps</code></em> if it can be determined from <em class="parameter"><code>sps</code></em>. See
</div>
<hr>
<div class="refsect2">
+<a name="gst-codec-utils-h264-get-level-idc"></a><h3>gst_codec_utils_h264_get_level_idc ()</h3>
+<pre class="programlisting"><span class="returnvalue">guint8</span> gst_codec_utils_h264_get_level_idc (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);</pre>
+<p>
+Transform a level string from the caps into the level_idc
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>level</code></em> :</span></p></td>
+<td>A level string from caps</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the level_idc or 0 if the level is unknown</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-codec-utils-mpeg4video-get-profile"></a><h3>gst_codec_utils_mpeg4video_get_profile ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_mpeg4video_get_profile
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+ (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Converts the profile indication in the stream's visual object sequence into
<div class="refsect2">
<a name="gst-codec-utils-mpeg4video-get-level"></a><h3>gst_codec_utils_mpeg4video_get_level ()</h3>
<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_codec_utils_mpeg4video_get_level
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+ (<em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Converts the level indication in the stream's visual object sequence into
<a name="gst-codec-utils-mpeg4video-caps-set-level-and-profile"></a><h3>gst_codec_utils_mpeg4video_caps_set_level_and_profile ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_codec_utils_mpeg4video_caps_set_level_and_profile
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *vis_obj_seq</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Sets the level and profile in <em class="parameter"><code>caps</code></em> if it can be determined from
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstpbutilsdescriptions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
<link rel="prev" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
<link rel="next" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp23918896"></a><p>
+<a name="idp25852032"></a><p>
The above functions provide human-readable strings for media formats
and decoder/demuxer/depayloader/encoder/muxer/payloader elements for use
in error dialogs or other messages shown to users.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstpbutilsinstallplugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
<link rel="prev" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html" title="gstpbutilsmissingplugins">
<link rel="next" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
enum <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn">GstInstallPluginsReturn</a>;
<span class="returnvalue">void</span> (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()">*GstInstallPluginsResultFunc</a>) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> result</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()">gst_install_plugins_async</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> func</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()">gst_install_plugins_sync</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name" title="gst_install_plugins_return_get_name ()">gst_install_plugins_return_get_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> ret</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress" title="gst_install_plugins_installation_in_progress ()">gst_install_plugins_installation_in_progress</a>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported" title="gst_install_plugins_supported ()">gst_install_plugins_supported</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext">GstInstallPluginsContext</a>;
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> * <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()">gst_install_plugins_context_new</a>
(<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()">gst_install_plugins_context_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid" title="gst_install_plugins_context_set_xid ()">gst_install_plugins_context_set_xid</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
<p>
</p>
<div class="refsect2">
-<a name="idp23991312"></a><h3>Overview</h3>
+<a name="idp25467280"></a><h3>Overview</h3>
<p>
Using this API, applications can request the installation of missing
GStreamer plugins. These may be missing decoders/demuxers or encoders/muxers
<p>
Result codes returned by <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> and
<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>, and also the result code passed to the
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> specified with <code class="function">gst_install_plugin_async()</code>.
+<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> specified with <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a>.
</p>
<p>
These codes indicate success or failure of starting an external installer
<hr>
<div class="refsect2">
<a name="gst-install-plugins-async"></a><h3>gst_install_plugins_async ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> gst_install_plugins_async (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> gst_install_plugins_async (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> func</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<hr>
<div class="refsect2">
<a name="gst-install-plugins-sync"></a><h3>gst_install_plugins_sync ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> gst_install_plugins_sync (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a> gst_install_plugins_sync (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **details</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);</pre>
<p>
Requests plugin installation and block until the plugins have been
<hr>
<div class="refsect2">
<a name="gst-install-plugins-context-new"></a><h3>gst_install_plugins_context_new ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> * gst_install_plugins_context_new
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> * gst_install_plugins_context_new
(<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Creates a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstpbutilsmissingplugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
<link rel="prev" href="gst-plugins-base-libs-gstpbutilsdescriptions.html" title="gstpbutilsdescriptions">
<link rel="next" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html" title="gstpbutilsinstallplugins">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp26701328"></a><p>
+<a name="idp28136352"></a><p>
Functions to create, recognise and parse missing-plugins messages for
applications and elements.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstpluginsbaseversion</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-base-utils.html" title="Base Utils Library">
+<link rel="prev" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
+<link rel="next" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstpbutils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-base-utils.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstpbutilscodecutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstpluginsbaseversion.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gstpluginsbaseversion.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpluginsbaseversion.top_of_page"></a>gstpluginsbaseversion</span></h2>
+<p>gstpluginsbaseversion — GStreamer gst-plugins-base libraries version macros.</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include <gst/pbutils/gstpluginsbaseversion.h>
+
+#define <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MAJOR">GST_PLUGINS_BASE_VERSION_MAJOR</a>
+#define <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" title="GST_PLUGINS_BASE_VERSION_MINOR">GST_PLUGINS_BASE_VERSION_MINOR</a>
+#define <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" title="GST_PLUGINS_BASE_VERSION_MICRO">GST_PLUGINS_BASE_VERSION_MICRO</a>
+#define <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" title="GST_PLUGINS_BASE_VERSION_NANO">GST_PLUGINS_BASE_VERSION_NANO</a>
+#define <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS" title="GST_CHECK_PLUGINS_BASE_VERSION()">GST_CHECK_PLUGINS_BASE_VERSION</a> (major,
+ minor,
+ micro)
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" title="gst_plugins_base_version ()">gst_plugins_base_version</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" title="gst_plugins_base_version_string ()">gst_plugins_base_version_string</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion.description"></a><h2>Description</h2>
+<p>
+Use the GST_PLUGINS_BASE_VERSION_* macros e.g. to check what version of
+gst-plugins-base you are building against, and <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" title="gst_plugins_base_version ()"><code class="function">gst_plugins_base_version()</code></a>
+if you need to check at runtime what version of the gst-plugins-base
+libraries are being used / you are currently linked against.
+</p>
+<p>
+The version macros get defined by including <gst/pbutils/pbutils.h>.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstpluginsbaseversion.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MAJOR</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MAJOR (0)
+</pre>
+<p>
+The major version of GStreamer's gst-plugins-base libraries at compile time.
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-MINOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MINOR</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (10)
+</pre>
+<p>
+The minor version of GStreamer's gst-plugins-base libraries at compile time.
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (36)
+</pre>
+<p>
+The micro version of GStreamer's gst-plugins-base libraries at compile time.
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-PLUGINS-BASE-VERSION-NANO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_NANO</h3>
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_NANO (0)
+</pre>
+<p>
+The nano version of GStreamer's gst-plugins-base libraries at compile time.
+Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
+</p>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-CHECK-PLUGINS-BASE-VERSION:CAPS"></a><h3>GST_CHECK_PLUGINS_BASE_VERSION()</h3>
+<pre class="programlisting">#define GST_CHECK_PLUGINS_BASE_VERSION(major,minor,micro)</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-plugins-base-version"></a><h3>gst_plugins_base_version ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_plugins_base_version (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *major</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);</pre>
+<p>
+Gets the version number of the GStreamer Plugins Base libraries.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>major</code></em> :</span></p></td>
+<td>pointer to a guint to store the major version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>minor</code></em> :</span></p></td>
+<td>pointer to a guint to store the minor version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>micro</code></em> :</span></p></td>
+<td>pointer to a guint to store the micro version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nano</code></em> :</span></p></td>
+<td>pointer to a guint to store the nano version number, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.31</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-plugins-base-version-string"></a><h3>gst_plugins_base_version_string ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_plugins_base_version_string (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+This function returns a string that is useful for describing this version
+of GStreamer's gst-plugins-base libraries to the outside world: user agent
+strings, logging, about dialogs ...
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a newly allocated string describing this version of gst-plugins-base</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.31</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstpropertyprobe</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstnavigation.html" title="gstnavigation">
<link rel="next" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>the list of properties for which probing is supported
-by this element.</td>
+<td>the list of <a href="http://library.gnome.org/devel/gobject/unstable/gobject-GParamSpec.html#GParamSpec"><span class="type">GParamSpec</span></a> * pointers representing
+properties for which probing is supported by this element.</td>
</tr>
</tbody>
</table></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstriff</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-riff.html" title="Riff Media Library">
<link rel="prev" href="gstreamer-riff.html" title="Riff Media Library">
<link rel="next" href="gstreamer-rtp.html" title="RTP Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<pre class="synopsis">
#include <gst/riff/riff-media.h>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS" title="GST_RIFF_00">GST_RIFF_00</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS" title="GST_RIFF_0021">GST_RIFF_0021</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS" title="GST_RIFF_0031">GST_RIFF_0031</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS" title="GST_RIFF_0032">GST_RIFF_0032</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS" title="GST_RIFF_00AM">GST_RIFF_00AM</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS" title="GST_RIFF_00__">GST_RIFF_00__</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db" title="GST_RIFF_00db">GST_RIFF_00db</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc" title="GST_RIFF_00dc">GST_RIFF_00dc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx" title="GST_RIFF_00dx">GST_RIFF_00dx</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id" title="GST_RIFF_00id">GST_RIFF_00id</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv" title="GST_RIFF_00iv">GST_RIFF_00iv</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc" title="GST_RIFF_00pc">GST_RIFF_00pc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt" title="GST_RIFF_00rt">GST_RIFF_00rt</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc" title="GST_RIFF_00vc">GST_RIFF_00vc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm" title="GST_RIFF_00xm">GST_RIFF_00xm</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx" title="GST_RIFF_00xx">GST_RIFF_00xx</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS" title="GST_RIFF_01">GST_RIFF_01</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc" title="GST_RIFF_01dc">GST_RIFF_01dc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc" title="GST_RIFF_01pc">GST_RIFF_01pc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb" title="GST_RIFF_01wb">GST_RIFF_01wb</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS" title="GST_RIFF_02">GST_RIFF_02</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS" title="GST_RIFF_03">GST_RIFF_03</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS" title="GST_RIFF_04">GST_RIFF_04</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS" title="GST_RIFF_05">GST_RIFF_05</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS" title="GST_RIFF_06">GST_RIFF_06</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS" title="GST_RIFF_07">GST_RIFF_07</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS" title="GST_RIFF_AURA">GST_RIFF_AURA</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS" title="GST_RIFF_BW10">GST_RIFF_BW10</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS" title="GST_RIFF_CCC">GST_RIFF_CCC</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS" title="GST_RIFF_CRAM">GST_RIFF_CRAM</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS" title="GST_RIFF_CVID">GST_RIFF_CVID</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS" title="GST_RIFF_CYUV">GST_RIFF_CYUV</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS" title="GST_RIFF_DIB">GST_RIFF_DIB</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS" title="GST_RIFF_DISP">GST_RIFF_DISP</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS" title="GST_RIFF_DIV3">GST_RIFF_DIV3</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS" title="GST_RIFF_DMB1">GST_RIFF_DMB1</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS" title="GST_RIFF_FCCH_MSVC">GST_RIFF_FCCH_MSVC</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS" title="GST_RIFF_FCCH_RLE">GST_RIFF_FCCH_RLE</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc" title="GST_RIFF_FCCH_msvc">GST_RIFF_FCCH_msvc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds" title="GST_RIFF_FCC_auds">GST_RIFF_FCC_auds</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs" title="GST_RIFF_FCC_iavs">GST_RIFF_FCC_iavs</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads" title="GST_RIFF_FCC_pads">GST_RIFF_FCC_pads</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts" title="GST_RIFF_FCC_txts">GST_RIFF_FCC_txts</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc" title="GST_RIFF_FCC_vidc">GST_RIFF_FCC_vidc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids" title="GST_RIFF_FCC_vids">GST_RIFF_FCC_vids</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS" title="GST_RIFF_FF00">GST_RIFF_FF00</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS" title="GST_RIFF_H263">GST_RIFF_H263</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS" title="GST_RIFF_I420">GST_RIFF_I420</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS" title="GST_RIFF_IDIT">GST_RIFF_IDIT</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS" title="GST_RIFF_IJPG">GST_RIFF_IJPG</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS" title="GST_RIFF_INFO_IARL">GST_RIFF_INFO_IARL</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS" title="GST_RIFF_INFO_IART">GST_RIFF_INFO_IART</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS" title="GST_RIFF_INFO_ICMS">GST_RIFF_INFO_ICMS</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS" title="GST_RIFF_INFO_ICMT">GST_RIFF_INFO_ICMT</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS" title="GST_RIFF_INFO_ICOP">GST_RIFF_INFO_ICOP</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS" title="GST_RIFF_INFO_ICRD">GST_RIFF_INFO_ICRD</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS" title="GST_RIFF_INFO_ICRP">GST_RIFF_INFO_ICRP</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS" title="GST_RIFF_INFO_IDIM">GST_RIFF_INFO_IDIM</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS" title="GST_RIFF_INFO_IDPI">GST_RIFF_INFO_IDPI</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS" title="GST_RIFF_INFO_IENG">GST_RIFF_INFO_IENG</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS" title="GST_RIFF_INFO_IGNR">GST_RIFF_INFO_IGNR</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS" title="GST_RIFF_INFO_IKEY">GST_RIFF_INFO_IKEY</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS" title="GST_RIFF_INFO_ILGT">GST_RIFF_INFO_ILGT</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS" title="GST_RIFF_INFO_IMED">GST_RIFF_INFO_IMED</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS" title="GST_RIFF_INFO_INAM">GST_RIFF_INFO_INAM</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS" title="GST_RIFF_INFO_IPLT">GST_RIFF_INFO_IPLT</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS" title="GST_RIFF_INFO_IPRD">GST_RIFF_INFO_IPRD</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS" title="GST_RIFF_INFO_ISBJ">GST_RIFF_INFO_ISBJ</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS" title="GST_RIFF_INFO_ISFT">GST_RIFF_INFO_ISFT</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS" title="GST_RIFF_INFO_ISHP">GST_RIFF_INFO_ISHP</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS" title="GST_RIFF_INFO_ISRC">GST_RIFF_INFO_ISRC</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS" title="GST_RIFF_INFO_ISRF">GST_RIFF_INFO_ISRF</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS" title="GST_RIFF_INFO_ITCH">GST_RIFF_INFO_ITCH</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS" title="GST_RIFF_ISBJ">GST_RIFF_ISBJ</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS" title="GST_RIFF_ISFT">GST_RIFF_ISFT</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS" title="GST_RIFF_IV31">GST_RIFF_IV31</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS" title="GST_RIFF_IV32">GST_RIFF_IV32</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS" title="GST_RIFF_IV41">GST_RIFF_IV41</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS" title="GST_RIFF_IV50">GST_RIFF_IV50</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS" title="GST_RIFF_IYUV">GST_RIFF_IYUV</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS" title="GST_RIFF_JPEG">GST_RIFF_JPEG</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS" title="GST_RIFF_L263">GST_RIFF_L263</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS" title="GST_RIFF_LIST_AVIX">GST_RIFF_LIST_AVIX</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS" title="GST_RIFF_LIST_INFO">GST_RIFF_LIST_INFO</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl" title="GST_RIFF_LIST_adtl">GST_RIFF_LIST_adtl</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl" title="GST_RIFF_LIST_hdrl">GST_RIFF_LIST_hdrl</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi" title="GST_RIFF_LIST_movi">GST_RIFF_LIST_movi</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml" title="GST_RIFF_LIST_odml">GST_RIFF_LIST_odml</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl" title="GST_RIFF_LIST_strl">GST_RIFF_LIST_strl</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS" title="GST_RIFF_M263">GST_RIFF_M263</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS" title="GST_RIFF_MJPG">GST_RIFF_MJPG</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS" title="GST_RIFF_MPIX">GST_RIFF_MPIX</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS" title="GST_RIFF_MVI1">GST_RIFF_MVI1</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS" title="GST_RIFF_NONE">GST_RIFF_NONE</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS" title="GST_RIFF_PACK">GST_RIFF_PACK</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS" title="GST_RIFF_Q1_0">GST_RIFF_Q1_0</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS" title="GST_RIFF_RAW">GST_RIFF_RAW</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS" title="GST_RIFF_RGB">GST_RIFF_RGB</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS" title="GST_RIFF_RIFF_AVI">GST_RIFF_RIFF_AVI</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS" title="GST_RIFF_RIFF_CDXA">GST_RIFF_RIFF_CDXA</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS" title="GST_RIFF_RIFF_WAVE">GST_RIFF_RIFF_WAVE</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS" title="GST_RIFF_RLE4">GST_RIFF_RLE4</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS" title="GST_RIFF_RLE8">GST_RIFF_RLE8</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS" title="GST_RIFF_RT21">GST_RIFF_RT21</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS" title="GST_RIFF_SFMC">GST_RIFF_SFMC</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid" title="GST_RIFF_TAG_acid">GST_RIFF_TAG_acid</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS" title="GST_RIFF_TAG_AVF0">GST_RIFF_TAG_AVF0</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS" title="GST_RIFF_TAG_BEXT">GST_RIFF_TAG_BEXT</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS" title="GST_RIFF_TAG_JUNK">GST_RIFF_TAG_JUNK</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS" title="GST_RIFF_TAG_JUNQ">GST_RIFF_TAG_JUNQ</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS" title="GST_RIFF_TAG_LIST">GST_RIFF_TAG_LIST</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS" title="GST_RIFF_TAG_RIFF">GST_RIFF_TAG_RIFF</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS" title="GST_RIFF_TAG_RIFX">GST_RIFF_TAG_RIFX</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih" title="GST_RIFF_TAG_avih">GST_RIFF_TAG_avih</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext" title="GST_RIFF_TAG_bext">GST_RIFF_TAG_bext</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue" title="GST_RIFF_TAG_cue">GST_RIFF_TAG_cue</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data" title="GST_RIFF_TAG_data">GST_RIFF_TAG_data</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh" title="GST_RIFF_TAG_dmlh">GST_RIFF_TAG_dmlh</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact" title="GST_RIFF_TAG_fact">GST_RIFF_TAG_fact</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt" title="GST_RIFF_TAG_fmt">GST_RIFF_TAG_fmt</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1" title="GST_RIFF_TAG_idx1">GST_RIFF_TAG_idx1</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst" title="GST_RIFF_TAG_plst">GST_RIFF_TAG_plst</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd" title="GST_RIFF_TAG_strd">GST_RIFF_TAG_strd</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf" title="GST_RIFF_TAG_strf">GST_RIFF_TAG_strf</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh" title="GST_RIFF_TAG_strh">GST_RIFF_TAG_strh</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn" title="GST_RIFF_TAG_strn">GST_RIFF_TAG_strn</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt" title="GST_RIFF_TAG_vedt">GST_RIFF_TAG_vedt</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS" title="GST_RIFF_TRAN">GST_RIFF_TRAN</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS" title="GST_RIFF_ULTI">GST_RIFF_ULTI</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS" title="GST_RIFF_V422">GST_RIFF_V422</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS" title="GST_RIFF_VDOW">GST_RIFF_VDOW</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS" title="GST_RIFF_VIXL">GST_RIFF_VIXL</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS" title="GST_RIFF_VSSH">GST_RIFF_VSSH</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS" title="GST_RIFF_VYUY">GST_RIFF_VYUY</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS" title="GST_RIFF_WHAM">GST_RIFF_WHAM</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS" title="GST_RIFF_WINX">GST_RIFF_WINX</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS" title="GST_RIFF_WPY2">GST_RIFF_WPY2</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS" title="GST_RIFF_XMPG">GST_RIFF_XMPG</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS" title="GST_RIFF_Y41P">GST_RIFF_Y41P</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS" title="GST_RIFF_YUV8">GST_RIFF_YUV8</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS" title="GST_RIFF_YUV9">GST_RIFF_YUV9</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS" title="GST_RIFF_YUY2">GST_RIFF_YUY2</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS" title="GST_RIFF_YV12">GST_RIFF_YV12</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS" title="GST_RIFF_YVU9">GST_RIFF_YVU9</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr" title="GST_RIFF_azpr">GST_RIFF_azpr</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10" title="GST_RIFF_bw10">GST_RIFF_bw10</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc" title="GST_RIFF_ccc">GST_RIFF_ccc</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram" title="GST_RIFF_cram">GST_RIFF_cram</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid" title="GST_RIFF_cvid">GST_RIFF_cvid</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv" title="GST_RIFF_cyuv">GST_RIFF_cyuv</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1" title="GST_RIFF_dmb1">GST_RIFF_dmb1</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263" title="GST_RIFF_h263">GST_RIFF_h263</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263" title="GST_RIFF_i263">GST_RIFF_i263</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420" title="GST_RIFF_i420">GST_RIFF_i420</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31" title="GST_RIFF_iv31">GST_RIFF_iv31</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32" title="GST_RIFF_iv32">GST_RIFF_iv32</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41" title="GST_RIFF_iv41">GST_RIFF_iv41</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50" title="GST_RIFF_iv50">GST_RIFF_iv50</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv" title="GST_RIFF_iyuv">GST_RIFF_iyuv</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg" title="GST_RIFF_jpeg">GST_RIFF_jpeg</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263" title="GST_RIFF_m263">GST_RIFF_m263</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG" title="GST_RIFF_mJPG">GST_RIFF_mJPG</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1" title="GST_RIFF_mvi1">GST_RIFF_mvi1</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-none" title="GST_RIFF_none">GST_RIFF_none</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack" title="GST_RIFF_pack">GST_RIFF_pack</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec" title="GST_RIFF_rec">GST_RIFF_rec</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb" title="GST_RIFF_rgb">GST_RIFF_rgb</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4" title="GST_RIFF_rle4">GST_RIFF_rle4</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8" title="GST_RIFF_rle8">GST_RIFF_rle8</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza" title="GST_RIFF_rpza">GST_RIFF_rpza</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21" title="GST_RIFF_rt21">GST_RIFF_rt21</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran" title="GST_RIFF_tran">GST_RIFF_tran</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti" title="GST_RIFF_ulti">GST_RIFF_ulti</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422" title="GST_RIFF_v422">GST_RIFF_v422</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl" title="GST_RIFF_vixl">GST_RIFF_vixl</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy" title="GST_RIFF_vyuy">GST_RIFF_vyuy</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham" title="GST_RIFF_wham">GST_RIFF_wham</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263" title="GST_RIFF_x263">GST_RIFF_x263</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg" title="GST_RIFF_xmpg">GST_RIFF_xmpg</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p" title="GST_RIFF_y41p">GST_RIFF_y41p</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2" title="GST_RIFF_yuy2">GST_RIFF_yuy2</a>
-#define <a class="link" href="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12" title="GST_RIFF_yv12">GST_RIFF_yv12</a>
- <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-acid" title="gst_riff_acid">gst_riff_acid</a>;
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> codec_id</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps" title="gst_riff_create_audio_caps ()">gst_riff_create_audio_caps</a> (<em class="parameter"><code><span class="type">guint16</span> codec_id</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
<em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps" title="gst_riff_create_audio_template_caps ()">gst_riff_create_audio_template_caps</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps" title="gst_riff_create_iavs_caps ()">gst_riff_create_iavs_caps</a> (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
<em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps" title="gst_riff_create_iavs_template_caps ()">gst_riff_create_iavs_template_caps</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps" title="gst_riff_create_video_caps ()">gst_riff_create_video_caps</a> (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
<em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps" title="gst_riff_create_video_template_caps ()">gst_riff_create_video_template_caps</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
- <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh" title="gst_riff_dmlh">gst_riff_dmlh</a>;
- <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry" title="gst_riff_index_entry">gst_riff_index_entry</a>;
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-init" title="gst_riff_init ()">gst_riff_init</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk" title="gst_riff_parse_chunk ()">gst_riff_parse_chunk</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *offset</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *fourcc</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *fourcc</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header" title="gst_riff_parse_file_header ()">gst_riff_parse_file_header</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *doctype</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> *doctype</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info" title="gst_riff_parse_info ()">gst_riff_parse_info</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds" title="gst_riff_parse_strf_auds ()">gst_riff_parse_strf_auds</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs" title="gst_riff_parse_strf_iavs ()">gst_riff_parse_strf_iavs</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids" title="gst_riff_parse_strf_vids ()">gst_riff_parse_strf_vids</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh" title="gst_riff_parse_strh ()">gst_riff_parse_strh</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk" title="gst_riff_read_chunk ()">gst_riff_read_chunk</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *offset</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *tag</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *offset</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *tag</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);
- <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds">gst_riff_strf_auds</a>;
- <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs">gst_riff_strf_iavs</a>;
- <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids">gst_riff_strf_vids</a>;
- <a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh">gst_riff_strh</a>;
</pre>
</div>
<div class="refsect1">
<div class="refsect1">
<a name="gst-plugins-base-libs-gstriff.details"></a><h2>Details</h2>
<div class="refsect2">
-<a name="GST-RIFF-00:CAPS"></a><h3>GST_RIFF_00</h3>
-<pre class="programlisting">#define GST_RIFF_00 GST_MAKE_FOURCC ('0', '0',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-0021:CAPS"></a><h3>GST_RIFF_0021</h3>
-<pre class="programlisting">#define GST_RIFF_0021 GST_MAKE_FOURCC ('0', '0', '2', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-0031:CAPS"></a><h3>GST_RIFF_0031</h3>
-<pre class="programlisting">#define GST_RIFF_0031 GST_MAKE_FOURCC ('0', '0', '3', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-0032:CAPS"></a><h3>GST_RIFF_0032</h3>
-<pre class="programlisting">#define GST_RIFF_0032 GST_MAKE_FOURCC ('0', '0', '3', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00AM:CAPS"></a><h3>GST_RIFF_00AM</h3>
-<pre class="programlisting">#define GST_RIFF_00AM GST_MAKE_FOURCC ('0', '0', 'A', 'M')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00--:CAPS"></a><h3>GST_RIFF_00__</h3>
-<pre class="programlisting">#define GST_RIFF_00__ GST_MAKE_FOURCC ('0', '0', '_', '_')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00db"></a><h3>GST_RIFF_00db</h3>
-<pre class="programlisting">#define GST_RIFF_00db GST_MAKE_FOURCC ('0', '0', 'd', 'b')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00dc"></a><h3>GST_RIFF_00dc</h3>
-<pre class="programlisting">#define GST_RIFF_00dc GST_MAKE_FOURCC ('0', '0', 'd', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00dx"></a><h3>GST_RIFF_00dx</h3>
-<pre class="programlisting">#define GST_RIFF_00dx GST_MAKE_FOURCC ('0', '0', 'd', 'x')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00id"></a><h3>GST_RIFF_00id</h3>
-<pre class="programlisting">#define GST_RIFF_00id GST_MAKE_FOURCC ('0', '0', 'i', 'd')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00iv"></a><h3>GST_RIFF_00iv</h3>
-<pre class="programlisting">#define GST_RIFF_00iv GST_MAKE_FOURCC ('0', '0', 'i', 'v')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00pc"></a><h3>GST_RIFF_00pc</h3>
-<pre class="programlisting">#define GST_RIFF_00pc GST_MAKE_FOURCC ('0', '0', 'p', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00rt"></a><h3>GST_RIFF_00rt</h3>
-<pre class="programlisting">#define GST_RIFF_00rt GST_MAKE_FOURCC ('0', '0', 'r', 't')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00vc"></a><h3>GST_RIFF_00vc</h3>
-<pre class="programlisting">#define GST_RIFF_00vc GST_MAKE_FOURCC ('0', '0', 'v', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00xm"></a><h3>GST_RIFF_00xm</h3>
-<pre class="programlisting">#define GST_RIFF_00xm GST_MAKE_FOURCC ('0', '0', 'x', 'm')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-00xx"></a><h3>GST_RIFF_00xx</h3>
-<pre class="programlisting">#define GST_RIFF_00xx GST_MAKE_FOURCC ('0', '0', 'x', 'x')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01:CAPS"></a><h3>GST_RIFF_01</h3>
-<pre class="programlisting">#define GST_RIFF_01 GST_MAKE_FOURCC ('0', '1',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01dc"></a><h3>GST_RIFF_01dc</h3>
-<pre class="programlisting">#define GST_RIFF_01dc GST_MAKE_FOURCC ('0', '1', 'd', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01pc"></a><h3>GST_RIFF_01pc</h3>
-<pre class="programlisting">#define GST_RIFF_01pc GST_MAKE_FOURCC ('0', '1', 'p', 'c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-01wb"></a><h3>GST_RIFF_01wb</h3>
-<pre class="programlisting">#define GST_RIFF_01wb GST_MAKE_FOURCC ('0', '1', 'w', 'b')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-02:CAPS"></a><h3>GST_RIFF_02</h3>
-<pre class="programlisting">#define GST_RIFF_02 GST_MAKE_FOURCC ('0', '2',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-03:CAPS"></a><h3>GST_RIFF_03</h3>
-<pre class="programlisting">#define GST_RIFF_03 GST_MAKE_FOURCC ('0', '3',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-04:CAPS"></a><h3>GST_RIFF_04</h3>
-<pre class="programlisting">#define GST_RIFF_04 GST_MAKE_FOURCC ('0', '4',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-05:CAPS"></a><h3>GST_RIFF_05</h3>
-<pre class="programlisting">#define GST_RIFF_05 GST_MAKE_FOURCC ('0', '5',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-06:CAPS"></a><h3>GST_RIFF_06</h3>
-<pre class="programlisting">#define GST_RIFF_06 GST_MAKE_FOURCC ('0', '6',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-07:CAPS"></a><h3>GST_RIFF_07</h3>
-<pre class="programlisting">#define GST_RIFF_07 GST_MAKE_FOURCC ('0', '7',0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-AURA:CAPS"></a><h3>GST_RIFF_AURA</h3>
-<pre class="programlisting">#define GST_RIFF_AURA GST_MAKE_FOURCC ('A', 'U', 'R', 'A')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-BW10:CAPS"></a><h3>GST_RIFF_BW10</h3>
-<pre class="programlisting">#define GST_RIFF_BW10 GST_MAKE_FOURCC ('B', 'W', '1', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CCC:CAPS"></a><h3>GST_RIFF_CCC</h3>
-<pre class="programlisting">#define GST_RIFF_CCC GST_MAKE_FOURCC ('C', 'C', 'C', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CRAM:CAPS"></a><h3>GST_RIFF_CRAM</h3>
-<pre class="programlisting">#define GST_RIFF_CRAM GST_MAKE_FOURCC ('C', 'R', 'A', 'M')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CVID:CAPS"></a><h3>GST_RIFF_CVID</h3>
-<pre class="programlisting">#define GST_RIFF_CVID GST_MAKE_FOURCC ('C', 'V', 'I', 'D')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-CYUV:CAPS"></a><h3>GST_RIFF_CYUV</h3>
-<pre class="programlisting">#define GST_RIFF_CYUV GST_MAKE_FOURCC ('C', 'Y', 'U', 'V')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DIB:CAPS"></a><h3>GST_RIFF_DIB</h3>
-<pre class="programlisting">#define GST_RIFF_DIB GST_MAKE_FOURCC ('D', 'I', 'B', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DISP:CAPS"></a><h3>GST_RIFF_DISP</h3>
-<pre class="programlisting">#define GST_RIFF_DISP GST_MAKE_FOURCC ('D', 'I', 'S', 'P')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DIV3:CAPS"></a><h3>GST_RIFF_DIV3</h3>
-<pre class="programlisting">#define GST_RIFF_DIV3 GST_MAKE_FOURCC ('D', 'I', 'V', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-DMB1:CAPS"></a><h3>GST_RIFF_DMB1</h3>
-<pre class="programlisting">#define GST_RIFF_DMB1 GST_MAKE_FOURCC ('D', 'M', 'B', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCCH-MSVC:CAPS"></a><h3>GST_RIFF_FCCH_MSVC</h3>
-<pre class="programlisting">#define GST_RIFF_FCCH_MSVC GST_MAKE_FOURCC ('M','S','V','C')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCCH-RLE:CAPS"></a><h3>GST_RIFF_FCCH_RLE</h3>
-<pre class="programlisting">#define GST_RIFF_FCCH_RLE GST_MAKE_FOURCC ('R','L','E',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCCH-msvc"></a><h3>GST_RIFF_FCCH_msvc</h3>
-<pre class="programlisting">#define GST_RIFF_FCCH_msvc GST_MAKE_FOURCC ('m','s','v','c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-auds"></a><h3>GST_RIFF_FCC_auds</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_auds GST_MAKE_FOURCC ('a','u','d','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-iavs"></a><h3>GST_RIFF_FCC_iavs</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_iavs GST_MAKE_FOURCC ('i','a','v','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-pads"></a><h3>GST_RIFF_FCC_pads</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_pads GST_MAKE_FOURCC ('p','a','d','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-txts"></a><h3>GST_RIFF_FCC_txts</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_txts GST_MAKE_FOURCC ('t','x','t','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-vidc"></a><h3>GST_RIFF_FCC_vidc</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_vidc GST_MAKE_FOURCC ('v','i','d','c')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FCC-vids"></a><h3>GST_RIFF_FCC_vids</h3>
-<pre class="programlisting">#define GST_RIFF_FCC_vids GST_MAKE_FOURCC ('v','i','d','s')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-FF00:CAPS"></a><h3>GST_RIFF_FF00</h3>
-<pre class="programlisting">#define GST_RIFF_FF00 GST_MAKE_FOURCC (0xFF,0xFF,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-H263:CAPS"></a><h3>GST_RIFF_H263</h3>
-<pre class="programlisting">#define GST_RIFF_H263 GST_MAKE_FOURCC ('H', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-I420:CAPS"></a><h3>GST_RIFF_I420</h3>
-<pre class="programlisting">#define GST_RIFF_I420 GST_MAKE_FOURCC ('I', '4', '2', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IDIT:CAPS"></a><h3>GST_RIFF_IDIT</h3>
-<pre class="programlisting">#define GST_RIFF_IDIT GST_MAKE_FOURCC ('I', 'D', 'I', 'T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IJPG:CAPS"></a><h3>GST_RIFF_IJPG</h3>
-<pre class="programlisting">#define GST_RIFF_IJPG GST_MAKE_FOURCC ('I', 'J', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IARL:CAPS"></a><h3>GST_RIFF_INFO_IARL</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IARL GST_MAKE_FOURCC ('I','A','R','L') /* location */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IART:CAPS"></a><h3>GST_RIFF_INFO_IART</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IART GST_MAKE_FOURCC ('I','A','R','T') /* artist */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICMS:CAPS"></a><h3>GST_RIFF_INFO_ICMS</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICMS GST_MAKE_FOURCC ('I','C','M','S') /* commissioned */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICMT:CAPS"></a><h3>GST_RIFF_INFO_ICMT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICMT GST_MAKE_FOURCC ('I','C','M','T') /* comment */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICOP:CAPS"></a><h3>GST_RIFF_INFO_ICOP</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICOP GST_MAKE_FOURCC ('I','C','O','P') /* copyright */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICRD:CAPS"></a><h3>GST_RIFF_INFO_ICRD</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICRD GST_MAKE_FOURCC ('I','C','R','D') /* creation date */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ICRP:CAPS"></a><h3>GST_RIFF_INFO_ICRP</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ICRP GST_MAKE_FOURCC ('I','C','R','P') /* cropped */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IDIM:CAPS"></a><h3>GST_RIFF_INFO_IDIM</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IDIM GST_MAKE_FOURCC ('I','D','I','M') /* dimensions */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IDPI:CAPS"></a><h3>GST_RIFF_INFO_IDPI</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IDPI GST_MAKE_FOURCC ('I','D','P','I') /* dots-per-inch */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IENG:CAPS"></a><h3>GST_RIFF_INFO_IENG</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IENG GST_MAKE_FOURCC ('I','E','N','G') /* engineer(s) */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IGNR:CAPS"></a><h3>GST_RIFF_INFO_IGNR</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IGNR GST_MAKE_FOURCC ('I','G','N','R') /* genre */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IKEY:CAPS"></a><h3>GST_RIFF_INFO_IKEY</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IKEY GST_MAKE_FOURCC ('I','K','E','Y') /* keywords */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ILGT:CAPS"></a><h3>GST_RIFF_INFO_ILGT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ILGT GST_MAKE_FOURCC ('I','L','G','T') /* lightness */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IMED:CAPS"></a><h3>GST_RIFF_INFO_IMED</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IMED GST_MAKE_FOURCC ('I','M','E','D') /* medium */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-INAM:CAPS"></a><h3>GST_RIFF_INFO_INAM</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_INAM GST_MAKE_FOURCC ('I','N','A','M') /* name */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IPLT:CAPS"></a><h3>GST_RIFF_INFO_IPLT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IPLT GST_MAKE_FOURCC ('I','P','L','T') /* palette setting */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-IPRD:CAPS"></a><h3>GST_RIFF_INFO_IPRD</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_IPRD GST_MAKE_FOURCC ('I','P','R','D') /* product */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISBJ:CAPS"></a><h3>GST_RIFF_INFO_ISBJ</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISBJ GST_MAKE_FOURCC ('I','S','B','J') /* subject */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISFT:CAPS"></a><h3>GST_RIFF_INFO_ISFT</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISFT GST_MAKE_FOURCC ('I','S','F','T') /* software */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISHP:CAPS"></a><h3>GST_RIFF_INFO_ISHP</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISHP GST_MAKE_FOURCC ('I','S','H','P') /* sharpness */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISRC:CAPS"></a><h3>GST_RIFF_INFO_ISRC</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISRC GST_MAKE_FOURCC ('I','S','R','C') /* source */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ISRF:CAPS"></a><h3>GST_RIFF_INFO_ISRF</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ISRF GST_MAKE_FOURCC ('I','S','R','F') /* source form */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-INFO-ITCH:CAPS"></a><h3>GST_RIFF_INFO_ITCH</h3>
-<pre class="programlisting">#define GST_RIFF_INFO_ITCH GST_MAKE_FOURCC ('I','T','C','H') /* technician(s) */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ISBJ:CAPS"></a><h3>GST_RIFF_ISBJ</h3>
-<pre class="programlisting">#define GST_RIFF_ISBJ GST_MAKE_FOURCC ('I', 'S', 'B', 'J')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ISFT:CAPS"></a><h3>GST_RIFF_ISFT</h3>
-<pre class="programlisting">#define GST_RIFF_ISFT GST_MAKE_FOURCC ('I', 'S', 'F', 'T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV31:CAPS"></a><h3>GST_RIFF_IV31</h3>
-<pre class="programlisting">#define GST_RIFF_IV31 GST_MAKE_FOURCC ('I', 'V', '3', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV32:CAPS"></a><h3>GST_RIFF_IV32</h3>
-<pre class="programlisting">#define GST_RIFF_IV32 GST_MAKE_FOURCC ('I', 'V', '3', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV41:CAPS"></a><h3>GST_RIFF_IV41</h3>
-<pre class="programlisting">#define GST_RIFF_IV41 GST_MAKE_FOURCC ('I', 'V', '4', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IV50:CAPS"></a><h3>GST_RIFF_IV50</h3>
-<pre class="programlisting">#define GST_RIFF_IV50 GST_MAKE_FOURCC ('I', 'V', '5', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-IYUV:CAPS"></a><h3>GST_RIFF_IYUV</h3>
-<pre class="programlisting">#define GST_RIFF_IYUV GST_MAKE_FOURCC ('I', 'Y', 'U', 'V')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-JPEG:CAPS"></a><h3>GST_RIFF_JPEG</h3>
-<pre class="programlisting">#define GST_RIFF_JPEG GST_MAKE_FOURCC ('J', 'P', 'E', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-L263:CAPS"></a><h3>GST_RIFF_L263</h3>
-<pre class="programlisting">#define GST_RIFF_L263 GST_MAKE_FOURCC ('L', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-AVIX:CAPS"></a><h3>GST_RIFF_LIST_AVIX</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_AVIX GST_MAKE_FOURCC ('A','V','I','X')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-INFO:CAPS"></a><h3>GST_RIFF_LIST_INFO</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_INFO GST_MAKE_FOURCC ('I','N','F','O')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-adtl"></a><h3>GST_RIFF_LIST_adtl</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_adtl GST_MAKE_FOURCC ('a','d','t','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-hdrl"></a><h3>GST_RIFF_LIST_hdrl</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_hdrl GST_MAKE_FOURCC ('h','d','r','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-movi"></a><h3>GST_RIFF_LIST_movi</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_movi GST_MAKE_FOURCC ('m','o','v','i')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-odml"></a><h3>GST_RIFF_LIST_odml</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_odml GST_MAKE_FOURCC ('o','d','m','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-LIST-strl"></a><h3>GST_RIFF_LIST_strl</h3>
-<pre class="programlisting">#define GST_RIFF_LIST_strl GST_MAKE_FOURCC ('s','t','r','l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-M263:CAPS"></a><h3>GST_RIFF_M263</h3>
-<pre class="programlisting">#define GST_RIFF_M263 GST_MAKE_FOURCC ('M', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-MJPG:CAPS"></a><h3>GST_RIFF_MJPG</h3>
-<pre class="programlisting">#define GST_RIFF_MJPG GST_MAKE_FOURCC ('M', 'J', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-MPIX:CAPS"></a><h3>GST_RIFF_MPIX</h3>
-<pre class="programlisting">#define GST_RIFF_MPIX GST_MAKE_FOURCC (0x04,0x00, 'i', '1') /* MotionPixels munged their id */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-MVI1:CAPS"></a><h3>GST_RIFF_MVI1</h3>
-<pre class="programlisting">#define GST_RIFF_MVI1 GST_MAKE_FOURCC ('M', 'V', 'I', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-NONE:CAPS"></a><h3>GST_RIFF_NONE</h3>
-<pre class="programlisting">#define GST_RIFF_NONE GST_MAKE_FOURCC ('N', 'O', 'N', 'E')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-PACK:CAPS"></a><h3>GST_RIFF_PACK</h3>
-<pre class="programlisting">#define GST_RIFF_PACK GST_MAKE_FOURCC ('P', 'A', 'C', 'K')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-Q1-0:CAPS"></a><h3>GST_RIFF_Q1_0</h3>
-<pre class="programlisting">#define GST_RIFF_Q1_0 GST_MAKE_FOURCC ('Q', '1',0x2e, '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RAW:CAPS"></a><h3>GST_RIFF_RAW</h3>
-<pre class="programlisting">#define GST_RIFF_RAW GST_MAKE_FOURCC ('R', 'A', 'W', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RGB:CAPS"></a><h3>GST_RIFF_RGB</h3>
-<pre class="programlisting">#define GST_RIFF_RGB GST_MAKE_FOURCC ('R', 'G', 'B', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RIFF-AVI:CAPS"></a><h3>GST_RIFF_RIFF_AVI</h3>
-<pre class="programlisting">#define GST_RIFF_RIFF_AVI GST_MAKE_FOURCC ('A','V','I',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RIFF-CDXA:CAPS"></a><h3>GST_RIFF_RIFF_CDXA</h3>
-<pre class="programlisting">#define GST_RIFF_RIFF_CDXA GST_MAKE_FOURCC ('C','D','X','A')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RIFF-WAVE:CAPS"></a><h3>GST_RIFF_RIFF_WAVE</h3>
-<pre class="programlisting">#define GST_RIFF_RIFF_WAVE GST_MAKE_FOURCC ('W','A','V','E')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RLE4:CAPS"></a><h3>GST_RIFF_RLE4</h3>
-<pre class="programlisting">#define GST_RIFF_RLE4 GST_MAKE_FOURCC ('R', 'L', 'E', '4')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RLE8:CAPS"></a><h3>GST_RIFF_RLE8</h3>
-<pre class="programlisting">#define GST_RIFF_RLE8 GST_MAKE_FOURCC ('R', 'L', 'E', '8')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-RT21:CAPS"></a><h3>GST_RIFF_RT21</h3>
-<pre class="programlisting">#define GST_RIFF_RT21 GST_MAKE_FOURCC ('R', 'T', '2', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-SFMC:CAPS"></a><h3>GST_RIFF_SFMC</h3>
-<pre class="programlisting">#define GST_RIFF_SFMC GST_MAKE_FOURCC ('S', 'F', 'M', 'C')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-acid"></a><h3>GST_RIFF_TAG_acid</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_acid GST_MAKE_FOURCC ('a','c','i','d')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-AVF0:CAPS"></a><h3>GST_RIFF_TAG_AVF0</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_AVF0 GST_MAKE_FOURCC ('A','V','F','0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-BEXT:CAPS"></a><h3>GST_RIFF_TAG_BEXT</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_BEXT GST_MAKE_FOURCC ('B','E','X','T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-JUNK:CAPS"></a><h3>GST_RIFF_TAG_JUNK</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_JUNK GST_MAKE_FOURCC ('J','U','N','K')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-JUNQ:CAPS"></a><h3>GST_RIFF_TAG_JUNQ</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_JUNQ GST_MAKE_FOURCC ('J','U','N','Q')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-LIST:CAPS"></a><h3>GST_RIFF_TAG_LIST</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_LIST GST_MAKE_FOURCC ('L','I','S','T')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-RIFF:CAPS"></a><h3>GST_RIFF_TAG_RIFF</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_RIFF GST_MAKE_FOURCC ('R','I','F','F')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-RIFX:CAPS"></a><h3>GST_RIFF_TAG_RIFX</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_RIFX GST_MAKE_FOURCC ('R','I','F','X')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-avih"></a><h3>GST_RIFF_TAG_avih</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_avih GST_MAKE_FOURCC ('a','v','i','h')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-bext"></a><h3>GST_RIFF_TAG_bext</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_bext GST_MAKE_FOURCC ('b','e','x','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-cue"></a><h3>GST_RIFF_TAG_cue</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_cue GST_MAKE_FOURCC ('c','u','e',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-data"></a><h3>GST_RIFF_TAG_data</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_data GST_MAKE_FOURCC ('d','a','t','a')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-dmlh"></a><h3>GST_RIFF_TAG_dmlh</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_dmlh GST_MAKE_FOURCC ('d','m','l','h')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-fact"></a><h3>GST_RIFF_TAG_fact</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_fact GST_MAKE_FOURCC ('f','a','c','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-fmt"></a><h3>GST_RIFF_TAG_fmt</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_fmt GST_MAKE_FOURCC ('f','m','t',' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-idx1"></a><h3>GST_RIFF_TAG_idx1</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_idx1 GST_MAKE_FOURCC ('i','d','x','1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-plst"></a><h3>GST_RIFF_TAG_plst</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_plst GST_MAKE_FOURCC ('p','l','s','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strd"></a><h3>GST_RIFF_TAG_strd</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strd GST_MAKE_FOURCC ('s','t','r','d')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strf"></a><h3>GST_RIFF_TAG_strf</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strf GST_MAKE_FOURCC ('s','t','r','f')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strh"></a><h3>GST_RIFF_TAG_strh</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strh GST_MAKE_FOURCC ('s','t','r','h')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-strn"></a><h3>GST_RIFF_TAG_strn</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_strn GST_MAKE_FOURCC ('s','t','r','n')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TAG-vedt"></a><h3>GST_RIFF_TAG_vedt</h3>
-<pre class="programlisting">#define GST_RIFF_TAG_vedt GST_MAKE_FOURCC ('v','e','d','t')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-TRAN:CAPS"></a><h3>GST_RIFF_TRAN</h3>
-<pre class="programlisting">#define GST_RIFF_TRAN GST_MAKE_FOURCC ('T', 'R', 'A', 'N')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ULTI:CAPS"></a><h3>GST_RIFF_ULTI</h3>
-<pre class="programlisting">#define GST_RIFF_ULTI GST_MAKE_FOURCC ('U', 'L', 'T', 'I')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-V422:CAPS"></a><h3>GST_RIFF_V422</h3>
-<pre class="programlisting">#define GST_RIFF_V422 GST_MAKE_FOURCC ('V', '4', '2', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VDOW:CAPS"></a><h3>GST_RIFF_VDOW</h3>
-<pre class="programlisting">#define GST_RIFF_VDOW GST_MAKE_FOURCC ('V', 'D', 'O', 'W')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VIXL:CAPS"></a><h3>GST_RIFF_VIXL</h3>
-<pre class="programlisting">#define GST_RIFF_VIXL GST_MAKE_FOURCC ('V', 'I', 'X', 'L')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VSSH:CAPS"></a><h3>GST_RIFF_VSSH</h3>
-<pre class="programlisting">#define GST_RIFF_VSSH GST_MAKE_FOURCC ( 'V', 'S', 'S', 'H') /* H2.64 */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-VYUY:CAPS"></a><h3>GST_RIFF_VYUY</h3>
-<pre class="programlisting">#define GST_RIFF_VYUY GST_MAKE_FOURCC ('V', 'Y', 'U', 'Y')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-WHAM:CAPS"></a><h3>GST_RIFF_WHAM</h3>
-<pre class="programlisting">#define GST_RIFF_WHAM GST_MAKE_FOURCC ('W', 'H', 'A', 'M')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-WINX:CAPS"></a><h3>GST_RIFF_WINX</h3>
-<pre class="programlisting">#define GST_RIFF_WINX GST_MAKE_FOURCC ('W', 'I', 'N', 'X')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-WPY2:CAPS"></a><h3>GST_RIFF_WPY2</h3>
-<pre class="programlisting">#define GST_RIFF_WPY2 GST_MAKE_FOURCC ('W', 'P', 'Y', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-XMPG:CAPS"></a><h3>GST_RIFF_XMPG</h3>
-<pre class="programlisting">#define GST_RIFF_XMPG GST_MAKE_FOURCC ('X', 'M', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-Y41P:CAPS"></a><h3>GST_RIFF_Y41P</h3>
-<pre class="programlisting">#define GST_RIFF_Y41P GST_MAKE_FOURCC ('Y', '4', '1', 'P')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YUV8:CAPS"></a><h3>GST_RIFF_YUV8</h3>
-<pre class="programlisting">#define GST_RIFF_YUV8 GST_MAKE_FOURCC ('Y', 'U', 'V', '8')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YUV9:CAPS"></a><h3>GST_RIFF_YUV9</h3>
-<pre class="programlisting">#define GST_RIFF_YUV9 GST_MAKE_FOURCC ('Y', 'V', 'U', '9')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YUY2:CAPS"></a><h3>GST_RIFF_YUY2</h3>
-<pre class="programlisting">#define GST_RIFF_YUY2 GST_MAKE_FOURCC ('Y', 'U', 'Y', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YV12:CAPS"></a><h3>GST_RIFF_YV12</h3>
-<pre class="programlisting">#define GST_RIFF_YV12 GST_MAKE_FOURCC ('Y', 'V', '1', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-YVU9:CAPS"></a><h3>GST_RIFF_YVU9</h3>
-<pre class="programlisting">#define GST_RIFF_YVU9 GST_MAKE_FOURCC ('Y', 'U', 'V', '9')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-azpr"></a><h3>GST_RIFF_azpr</h3>
-<pre class="programlisting">#define GST_RIFF_azpr GST_MAKE_FOURCC ('a', 'z', 'p', 'r') /* recognize Apple's rpza mangled? */
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-bw10"></a><h3>GST_RIFF_bw10</h3>
-<pre class="programlisting">#define GST_RIFF_bw10 GST_MAKE_FOURCC ('b', 'w', '1', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ccc"></a><h3>GST_RIFF_ccc</h3>
-<pre class="programlisting">#define GST_RIFF_ccc GST_MAKE_FOURCC (0x03,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-cram"></a><h3>GST_RIFF_cram</h3>
-<pre class="programlisting">#define GST_RIFF_cram GST_MAKE_FOURCC ('c', 'r', 'a', 'm')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-cvid"></a><h3>GST_RIFF_cvid</h3>
-<pre class="programlisting">#define GST_RIFF_cvid GST_MAKE_FOURCC ('c', 'v', 'i', 'd')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-cyuv"></a><h3>GST_RIFF_cyuv</h3>
-<pre class="programlisting">#define GST_RIFF_cyuv GST_MAKE_FOURCC ('c', 'y', 'u', 'v')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-dmb1"></a><h3>GST_RIFF_dmb1</h3>
-<pre class="programlisting">#define GST_RIFF_dmb1 GST_MAKE_FOURCC ('d', 'm', 'b', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-h263"></a><h3>GST_RIFF_h263</h3>
-<pre class="programlisting">#define GST_RIFF_h263 GST_MAKE_FOURCC ('h', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-i263"></a><h3>GST_RIFF_i263</h3>
-<pre class="programlisting">#define GST_RIFF_i263 GST_MAKE_FOURCC ('i', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-i420"></a><h3>GST_RIFF_i420</h3>
-<pre class="programlisting">#define GST_RIFF_i420 GST_MAKE_FOURCC ('i', '4', '2', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv31"></a><h3>GST_RIFF_iv31</h3>
-<pre class="programlisting">#define GST_RIFF_iv31 GST_MAKE_FOURCC ('i', 'v', '3', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv32"></a><h3>GST_RIFF_iv32</h3>
-<pre class="programlisting">#define GST_RIFF_iv32 GST_MAKE_FOURCC ('i', 'v', '3', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv41"></a><h3>GST_RIFF_iv41</h3>
-<pre class="programlisting">#define GST_RIFF_iv41 GST_MAKE_FOURCC ('i', 'v', '4', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iv50"></a><h3>GST_RIFF_iv50</h3>
-<pre class="programlisting">#define GST_RIFF_iv50 GST_MAKE_FOURCC ('i', 'v', '5', '0')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-iyuv"></a><h3>GST_RIFF_iyuv</h3>
-<pre class="programlisting">#define GST_RIFF_iyuv GST_MAKE_FOURCC ('i', 'y', 'u', 'v')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-jpeg"></a><h3>GST_RIFF_jpeg</h3>
-<pre class="programlisting">#define GST_RIFF_jpeg GST_MAKE_FOURCC (0x04,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-m263"></a><h3>GST_RIFF_m263</h3>
-<pre class="programlisting">#define GST_RIFF_m263 GST_MAKE_FOURCC ('m', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-mJPG"></a><h3>GST_RIFF_mJPG</h3>
-<pre class="programlisting">#define GST_RIFF_mJPG GST_MAKE_FOURCC ('m', 'J', 'P', 'G')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-mvi1"></a><h3>GST_RIFF_mvi1</h3>
-<pre class="programlisting">#define GST_RIFF_mvi1 GST_MAKE_FOURCC ('m', 'v', 'i', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-none"></a><h3>GST_RIFF_none</h3>
-<pre class="programlisting">#define GST_RIFF_none GST_MAKE_FOURCC (0x00,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-pack"></a><h3>GST_RIFF_pack</h3>
-<pre class="programlisting">#define GST_RIFF_pack GST_MAKE_FOURCC (0x01,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rec"></a><h3>GST_RIFF_rec</h3>
-<pre class="programlisting">#define GST_RIFF_rec GST_MAKE_FOURCC ('r', 'e', 'c', ' ')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rgb"></a><h3>GST_RIFF_rgb</h3>
-<pre class="programlisting">#define GST_RIFF_rgb GST_MAKE_FOURCC (0x00,0x00,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rle4"></a><h3>GST_RIFF_rle4</h3>
-<pre class="programlisting">#define GST_RIFF_rle4 GST_MAKE_FOURCC (0x02,0x00,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rle8"></a><h3>GST_RIFF_rle8</h3>
-<pre class="programlisting">#define GST_RIFF_rle8 GST_MAKE_FOURCC (0x01,0x00,0x00,0x00)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rpza"></a><h3>GST_RIFF_rpza</h3>
-<pre class="programlisting">#define GST_RIFF_rpza GST_MAKE_FOURCC ('r', 'p', 'z', 'a')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-rt21"></a><h3>GST_RIFF_rt21</h3>
-<pre class="programlisting">#define GST_RIFF_rt21 GST_MAKE_FOURCC ('r', 't', '2', '1')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-tran"></a><h3>GST_RIFF_tran</h3>
-<pre class="programlisting">#define GST_RIFF_tran GST_MAKE_FOURCC (0x02,0x00,0xFF,0xFF)
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-ulti"></a><h3>GST_RIFF_ulti</h3>
-<pre class="programlisting">#define GST_RIFF_ulti GST_MAKE_FOURCC ('u', 'l', 't', 'i')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-v422"></a><h3>GST_RIFF_v422</h3>
-<pre class="programlisting">#define GST_RIFF_v422 GST_MAKE_FOURCC ('v', '4', '2', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-vixl"></a><h3>GST_RIFF_vixl</h3>
-<pre class="programlisting">#define GST_RIFF_vixl GST_MAKE_FOURCC ('v', 'i', 'x', 'l')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-vyuy"></a><h3>GST_RIFF_vyuy</h3>
-<pre class="programlisting">#define GST_RIFF_vyuy GST_MAKE_FOURCC ('v', 'y', 'u', 'y')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-wham"></a><h3>GST_RIFF_wham</h3>
-<pre class="programlisting">#define GST_RIFF_wham GST_MAKE_FOURCC ('w', 'h', 'a', 'm')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-x263"></a><h3>GST_RIFF_x263</h3>
-<pre class="programlisting">#define GST_RIFF_x263 GST_MAKE_FOURCC ('x', '2', '6', '3')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-xmpg"></a><h3>GST_RIFF_xmpg</h3>
-<pre class="programlisting">#define GST_RIFF_xmpg GST_MAKE_FOURCC ('x', 'm', 'p', 'g')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-y41p"></a><h3>GST_RIFF_y41p</h3>
-<pre class="programlisting">#define GST_RIFF_y41p GST_MAKE_FOURCC ('y', '4', '1', 'p')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-yuy2"></a><h3>GST_RIFF_yuy2</h3>
-<pre class="programlisting">#define GST_RIFF_yuy2 GST_MAKE_FOURCC ('y', 'u', 'y', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GST-RIFF-yv12"></a><h3>GST_RIFF_yv12</h3>
-<pre class="programlisting">#define GST_RIFF_yv12 GST_MAKE_FOURCC ('y', 'v', '1', '2')
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-acid"></a><h3>gst_riff_acid</h3>
-<pre class="programlisting">typedef struct {
- /* 4 bytes (int) type of file:
- * this appears to be a bit mask,however some combinations
- * are probably impossible and/or qualified as "errors"
- *
- * 0x01 On: One Shot Off: Loop
- * 0x02 On: Root note is Set Off: No root
- * 0x04 On: Stretch is On, Off: Strech is OFF
- * 0x08 On: Disk Based Off: Ram based
- * 0x10 On: ?????????? Off: ????????? (Acidizer puts that ON)
- */
- guint32 loop_type;
- /* 2 bytes (short) root note
- * if type 0x10 is OFF : [C,C#,(...),B] -> [0x30 to 0x3B]
- * if type 0x10 is ON : [C,C#,(...),B] -> [0x3C to 0x47]
- * (both types fit on same MIDI pitch albeit different octaves, so who cares)
- */
- guint16 root_note;
- /* 2 bytes (short) ??? always set to 0x8000
- * 4 bytes (float) ??? seems to be always 0
- */
- guint16 unknown1;
- gfloat unknown2;
- /* 4 bytes (int) number of beats
- * 2 bytes (short) meter denominator //always 4 in SF/ACID
- * 2 bytes (short) meter numerator //always 4 in SF/ACID
- * //are we sure about the order?? usually its num/denom
- * 4 bytes (float) tempo
- */
- guint32 number_of_beats;
- guint16 meter_d, meter_n;
- gfloat tempo;
-} gst_riff_acid;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
<a name="gst-riff-create-audio-caps"></a><h3>gst_riff_create_audio_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_riff_create_audio_caps (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> codec_id</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_riff_create_audio_caps (<em class="parameter"><code><span class="type">guint16</span> codec_id</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> *strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
<em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
<hr>
<div class="refsect2">
<a name="gst-riff-create-iavs-caps"></a><h3>gst_riff_create_iavs_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_riff_create_iavs_caps (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_riff_create_iavs_caps (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> *strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
<em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
<hr>
<div class="refsect2">
<a name="gst-riff-create-video-caps"></a><h3>gst_riff_create_video_caps ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_riff_create_video_caps (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> codec_fcc</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_riff_create_video_caps (<em class="parameter"><code><span class="type">guint32</span> codec_fcc</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> *strh</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> *strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
<em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
-<a name="gst-riff-dmlh"></a><h3>gst_riff_dmlh</h3>
-<pre class="programlisting">typedef struct {
- guint32 totalframes;
-} gst_riff_dmlh;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-index-entry"></a><h3>gst_riff_index_entry</h3>
-<pre class="programlisting">typedef struct {
- guint32 id;
- guint32 flags;
-#define GST_RIFF_IF_LIST (0x00000001L)
-#define GST_RIFF_IF_KEYFRAME (0x00000010L)
-#define GST_RIFF_IF_NO_TIME (0x00000100L)
-#define GST_RIFF_IF_COMPUSE (0x0FFF0000L)
- guint32 offset;
- guint32 size;
-} gst_riff_index_entry;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
<a name="gst-riff-init"></a><h3>gst_riff_init ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_riff_init (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_riff_parse_chunk (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *offset</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *fourcc</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *fourcc</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
<p>
Reads a single chunk.
<a name="gst-riff-parse-file-header"></a><h3>gst_riff_parse_file_header ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_riff_parse_file_header (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *doctype</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> *doctype</code></em>);</pre>
<p>
Reads the first few bytes from the provided buffer, checks
if this stream is a RIFF stream, and determines document type.
<a name="gst-riff-parse-strf-auds"></a><h3>gst_riff_parse_strf_auds ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_riff_parse_strf_auds (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds" title="gst_riff_strf_auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"><span class="type">gst_riff_strf_auds</span></a> **strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
<p>
Parses an audio stream´s strf structure plus optionally some
<a name="gst-riff-parse-strf-iavs"></a><h3>gst_riff_parse_strf_iavs ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_riff_parse_strf_iavs (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs" title="gst_riff_strf_iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"><span class="type">gst_riff_strf_iavs</span></a> **strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
<p>
Parses a interleaved (also known as "complex") stream´s strf
-structure plus optionally some extradata from input data. This
+structure plus optionally some extradata from input data. This
function takes ownership of <em class="parameter"><code>buf</code></em>.
</p>
<div class="variablelist"><table border="0">
<a name="gst-riff-parse-strf-vids"></a><h3>gst_riff_parse_strf_vids ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_riff_parse_strf_vids (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids" title="gst_riff_strf_vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"><span class="type">gst_riff_strf_vids</span></a> **strf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
<p>
Parses a video stream´s strf structure plus optionally some
<a name="gst-riff-parse-strh"></a><h3>gst_riff_parse_strh ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_riff_parse_strh (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstriff.html#gst-riff-strh" title="gst_riff_strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);</pre>
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstriff.html#gst-riff-strh"><span class="type">gst_riff_strh</span></a> **strh</code></em>);</pre>
<p>
Parses a strh structure from input data. Takes ownership of <em class="parameter"><code>buf</code></em>.
</p>
<a name="gst-riff-read-chunk"></a><h3>gst_riff_read_chunk ()</h3>
<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> gst_riff_read_chunk (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> *element</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *offset</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *tag</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *offset</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *tag</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
<p>
Reads a single chunk of data. Since 0.10.8 'JUNK' chunks
</tbody>
</table></div>
</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strf-auds"></a><h3>gst_riff_strf_auds</h3>
-<pre class="programlisting">typedef struct {
- /* == WaveHeader (?) */
- guint16 format;
-/**** from public Microsoft RIFF docs ******/
-#define GST_RIFF_WAVE_FORMAT_UNKNOWN (0x0000)
-#define GST_RIFF_WAVE_FORMAT_PCM (0x0001)
-#define GST_RIFF_WAVE_FORMAT_ADPCM (0x0002)
-#define GST_RIFF_WAVE_FORMAT_IEEE_FLOAT (0x0003)
-#define GST_RIFF_WAVE_FORMAT_VSELP (0x0004)
-#define GST_RIFF_WAVE_FORMAT_IBM_CVSD (0x0005)
-#define GST_RIFF_WAVE_FORMAT_ALAW (0x0006)
-#define GST_RIFF_WAVE_FORMAT_MULAW (0x0007)
-#define GST_RIFF_WAVE_FORMAT_WMS (0x000a) /* WMS Windows Media Audio Speech */
-#define GST_RIFF_WAVE_FORMAT_OKI_ADPCM (0x0010)
-#define GST_RIFF_WAVE_FORMAT_DVI_ADPCM (0x0011)
-#define GST_RIFF_WAVE_FORMAT_MEDIASPACE_ADPCM (0x0012)
-#define GST_RIFF_WAVE_FORMAT_SIERRA_ADPCM (0x0013)
-#define GST_RIFF_WAVE_FORMAT_G723_ADPCM (0x0014)
-#define GST_RIFF_WAVE_FORMAT_DIGISTD (0x0015)
-#define GST_RIFF_WAVE_FORMAT_DIGIFIX (0x0016)
-#define GST_RIFF_WAVE_FORMAT_DIALOGIC_OKI_ADPCM (0x0017)
-#define GST_RIFF_WAVE_FORMAT_MEDIAVISION_ADPCM (0x0018)
-#define GST_RIFF_WAVE_FORMAT_CU_CODEC (0x0019)
-#define GST_RIFF_WAVE_FORMAT_YAMAHA_ADPCM (0x0020)
-#define GST_RIFF_WAVE_FORMAT_SONARC (0x0021)
-#define GST_RIFF_WAVE_FORMAT_DSP_TRUESPEECH (0x0022)
-#define GST_RIFF_WAVE_FORMAT_ECHOSC1 (0x0023)
-#define GST_RIFF_WAVE_FORMAT_AUDIOFILE_AF36 (0x0024)
-#define GST_RIFF_WAVE_FORMAT_APTX (0x0025)
-#define GST_RIFF_WAVE_FORMAT_AUDIOFILE_AF10 (0x0026)
-#define GST_RIFF_WAVE_FORMAT_PROSODY_1612 (0x0027)
-#define GST_RIFF_WAVE_FORMAT_LRC (0x0028)
-#define GST_RIFF_WAVE_FORMAT_DOLBY_AC2 (0x0030)
-#define GST_RIFF_WAVE_FORMAT_GSM610 (0x0031)
-#define GST_RIFF_WAVE_FORMAT_MSN (0x0032)
-#define GST_RIFF_WAVE_FORMAT_ANTEX_ADPCME (0x0033
-#define GST_RIFF_WAVE_FORMAT_CONTROL_RES_VQLPC (0x0034)
-#define GST_RIFF_WAVE_FORMAT_DIGIREAL (0x0035)
-#define GST_RIFF_WAVE_FORMAT_DIGIADPCM (0x0036)
-#define GST_RIFF_WAVE_FORMAT_CONTROL_RES_CR10 (0x0037)
-#define GST_RIFF_WAVE_FORMAT_NMS_VBXADPCM (0x0038)
-#define GST_RIFF_WAVE_FORMAT_CS_IMAADPCM (0x0039)
-#define GST_RIFF_WAVE_FORMAT_ECHOSC3 (0x003A)
-#define GST_RIFF_WAVE_FORMAT_ROCKWELL_ADPCM (0x003B)
-#define GST_RIFF_WAVE_FORMAT_ROCKWELL_DIGITALK (0x003C)
-#define GST_RIFF_WAVE_FORMAT_XEBEC (0x003D)
-#define GST_RIFF_WAVE_FORMAT_ITU_G721_ADPCM (0x0040)
-#define GST_RIFF_WAVE_FORMAT_G728_CELP (0x0041)
-#define GST_RIFF_WAVE_FORMAT_MSG723 (0x0042)
-#define GST_RIFF_WAVE_FORMAT_MPEGL12 (0x0050)
-#define GST_RIFF_WAVE_FORMAT_RT24 (0x0052)
-#define GST_RIFF_WAVE_FORMAT_PAC (0x0053)
-#define GST_RIFF_WAVE_FORMAT_MPEGL3 (0x0055)
-#define GST_RIFF_WAVE_FORMAT_AMR_NB (0x0057)
-#define GST_RIFF_WAVE_FORMAT_AMR_WB (0x0058)
-#define GST_RIFF_WAVE_FORMAT_LUCENT_G723 (0x0059)
-#define GST_RIFF_WAVE_FORMAT_CIRRUS (0x0060)
-#define GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK4 (0x0061) /* not official */
-#define GST_RIFF_WAVE_FORMAT_ADPCM_IMA_DK3 (0x0062) /* not official */
-/* FIXME: where are these from? are they used at all? */
-#if 0
-#define GST_RIFF_WAVE_FORMAT_ESPCM (0x0061)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE (0x0062)
-#endif
-#define GST_RIFF_WAVE_FORMAT_CANOPUS_ATRAC (0x0063)
-#define GST_RIFF_WAVE_FORMAT_G726_ADPCM (0x0064)
-#define GST_RIFF_WAVE_FORMAT_G722_ADPCM (0x0065)
-#define GST_RIFF_WAVE_FORMAT_DSAT_DISPLAY (0x0067)
-#define GST_RIFF_WAVE_FORMAT_ADPCM_IMA_WAV (0x0069)
-/* FIXME: where are these from? are they used at all? */
-#if 0
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_BYTE_ALIGNED (0x0069)
-#endif
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC8 (0x0070)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC10 (0x0071)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC16 (0x0072)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_AC20 (0x0073)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_METAVOICE (0x0074)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_METASOUND (0x0075)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_RT29HW (0x0076)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_VR12 (0x0077)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_VR18 (0x0078)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ40 (0x0079)
-#define GST_RIFF_WAVE_FORMAT_SOFTSOUND (0x0080)
-#define GST_RIFF_WAVE_FORMAT_VOXWARE_TQ60 (0x0081)
-#define GST_RIFF_WAVE_FORMAT_MSRT24 (0x0082)
-#define GST_RIFF_WAVE_FORMAT_G729A (0x0083)
-#define GST_RIFF_WAVE_FORMAT_MVI_MVI2 (0x0084)
-#define GST_RIFF_WAVE_FORMAT_DF_G726 (0x0085)
-#define GST_RIFF_WAVE_FORMAT_DF_GSM610 (0x0086)
-#define GST_RIFF_WAVE_FORMAT_ISIAUDIO (0x0088)
-#define GST_RIFF_WAVE_FORMAT_ONLIVE (0x0089)
-#define GST_RIFF_WAVE_FORMAT_SBC24 (0x0091)
-#define GST_RIFF_WAVE_FORMAT_DOLBY_AC3_SPDIF (0x0092)
-#define GST_RIFF_WAVE_FORMAT_MEDIASONIC_G723 (0x0093)
-#define GST_RIFF_WAVE_FORMAT_PROSODY_8KBPS (0x0094)
-#define GST_RIFF_WAVE_FORMAT_ZYXEL_ADPCM (0x0097)
-#define GST_RIFF_WAVE_FORMAT_PHILIPS_LPCBB (0x0098)
-#define GST_RIFF_WAVE_FORMAT_PACKED (0x0099)
-#define GST_RIFF_WAVE_FORMAT_MALDEN_PHONYTALK (0x00A0)
-#define GST_RIFF_WAVE_FORMAT_AAC (0x00ff)
-#define GST_RIFF_WAVE_FORMAT_RHETOREX_ADPCM (0x0100)
-#define GST_RIFF_IBM_FORMAT_MULAW (0x0101)
-#define GST_RIFF_IBM_FORMAT_ALAW (0x0102)
-#define GST_RIFF_IBM_FORMAT_ADPCM (0x0103)
-#define GST_RIFF_WAVE_FORMAT_VIVO_G723 (0x0111)
-#define GST_RIFF_WAVE_FORMAT_VIVO_SIREN (0x0112)
-#define GST_RIFF_WAVE_FORMAT_DIGITAL_G723 (0x0123)
-#define GST_RIFF_WAVE_FORMAT_SANYO_LD_ADPCM (0x0125)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACEPLNET (0x0130)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACELP4800 (0x0131)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_ACELP8V3 (0x0132)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_G729 (0x0133)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_G729A (0x0134)
-#define GST_RIFF_WAVE_FORMAT_SIPROLAB_KELVIN (0x0135)
-#define GST_RIFF_WAVE_FORMAT_G726ADPCM (0x0140)
-#define GST_RIFF_WAVE_FORMAT_QUALCOMM_PUREVOICE (0x0150)
-#define GST_RIFF_WAVE_FORMAT_QUALCOMM_HALFRATE (0x0151)
-#define GST_RIFF_WAVE_FORMAT_TUBGSM (0x0155)
-#define GST_RIFF_WAVE_FORMAT_WMAV1 (0x0160)
-#define GST_RIFF_WAVE_FORMAT_WMAV2 (0x0161)
-#define GST_RIFF_WAVE_FORMAT_WMAV3 (0x0162)
-#define GST_RIFF_WAVE_FORMAT_WMAV3_L (0x0163)
-#define GST_RIFF_WAVE_FORMAT_CREATIVE_ADPCM (0x0200)
-#define GST_RIFF_WAVE_FORMAT_CREATIVE_FASTSPEECH8 (0x0202)
-#define GST_RIFF_WAVE_FORMAT_CREATIVE_FASTSPEECH10 (0x0203)
-#define GST_RIFF_WAVE_FORMAT_UHER_ADPCM (0x0210)
-#define GST_RIFF_WAVE_FORMAT_QUARTERDECK (0x0220)
-#define GST_RIFF_WAVE_FORMAT_ILINK_VC (0x0230)
-#define GST_RIFF_WAVE_FORMAT_RAW_SPORT (0x0240)
-#define GST_RIFF_WAVE_FORMAT_IPI_HSX (0x0250)
-#define GST_RIFF_WAVE_FORMAT_IPI_RPELP (0x0251)
-#define GST_RIFF_WAVE_FORMAT_CS2 (0x0260)
-#define GST_RIFF_WAVE_FORMAT_SONY_ATRAC3 (0x0270)
-#define GST_RIFF_WAVE_FORMAT_SIREN (0x028E)
-#define GST_RIFF_WAVE_FORMAT_FM_TOWNS_SND (0x0300)
-#define GST_RIFF_WAVE_FORMAT_BTV_DIGITAL (0x0400)
-#define GST_RIFF_WAVE_FORMAT_IMC (0x0401)
-#define GST_RIFF_WAVE_FORMAT_QDESIGN_MUSIC (0x0450)
-#define GST_RIFF_WAVE_FORMAT_VME_VMPCM (0x0680)
-#define GST_RIFF_WAVE_FORMAT_TPC (0x0681)
-#define GST_RIFF_WAVE_FORMAT_OLIGSM (0x1000)
-#define GST_RIFF_WAVE_FORMAT_OLIADPCM (0x1001)
-#define GST_RIFF_WAVE_FORMAT_OLICELP (0x1002)
-#define GST_RIFF_WAVE_FORMAT_OLISBC (0x1003)
-#define GST_RIFF_WAVE_FORMAT_OLIOPR (0x1004)
-#define GST_RIFF_WAVE_FORMAT_LH_CODEC (0x1100)
-#define GST_RIFF_WAVE_FORMAT_NORRIS (0x1400)
-#define GST_RIFF_WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS (0x1500)
-#define GST_RIFF_WAVE_FORMAT_A52 (0x2000)
-#define GST_RIFF_WAVE_FORMAT_DTS (0x2001)
-#define GST_RIFF_WAVE_FORMAT_SONIC (0x2048)
-#define GST_RIFF_WAVE_FORMAT_SONIC_LS (0x2048)
-#define GST_RIFF_WAVE_FORMAT_AAC_AC (0x4143)
-#define GST_RIFF_WAVE_FORMAT_VORBIS1 (0x674f)
-#define GST_RIFF_WAVE_FORMAT_VORBIS2 (0x6750)
-#define GST_RIFF_WAVE_FORMAT_VORBIS3 (0x6751)
-#define GST_RIFF_WAVE_FORMAT_VORBIS1PLUS (0x676f)
-#define GST_RIFF_WAVE_FORMAT_VORBIS2PLUS (0x6770)
-#define GST_RIFF_WAVE_FORMAT_VORBIS3PLUS (0x6771)
-#define GST_RIFF_WAVE_FORMAT_AAC_pm (0x706d)
-#define GST_RIFF_WAVE_FORMAT_GSM_AMR_CBR (0x7A21)
-#define GST_RIFF_WAVE_FORMAT_GSM_AMR_VBR (0x7A22)
-#define GST_RIFF_WAVE_FORMAT_FLAC (0xF1AC)
-#define GST_RIFF_WAVE_FORMAT_EXTENSIBLE (0xFFFE)
- guint16 channels;
- guint32 rate;
- guint32 av_bps;
- guint16 blockalign;
-#if 0
- /* missing field: */
- guint16 bits_per_sample;
-#endif
- guint16 size;
-} gst_riff_strf_auds;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strf-iavs"></a><h3>gst_riff_strf_iavs</h3>
-<pre class="programlisting">typedef struct {
- guint32 DVAAuxSrc;
- guint32 DVAAuxCtl;
- guint32 DVAAuxSrc1;
- guint32 DVAAuxCtl1;
- guint32 DVVAuxSrc;
- guint32 DVVAuxCtl;
- guint32 DVReserved1;
- guint32 DVReserved2;
-} gst_riff_strf_iavs;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strf-vids"></a><h3>gst_riff_strf_vids</h3>
-<pre class="programlisting">typedef struct {
- /* == BitMapInfoHeader */
- guint32 size;
- guint32 width;
- guint32 height;
- guint16 planes;
- guint16 bit_cnt;
- guint32 compression;
- guint32 image_size;
- guint32 xpels_meter;
- guint32 ypels_meter;
- guint32 num_colors; /* used colors */
- guint32 imp_colors; /* important colors */
- /* may be more for some codecs */
-} gst_riff_strf_vids;
-</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-riff-strh"></a><h3>gst_riff_strh</h3>
-<pre class="programlisting">typedef struct {
- guint32 type; /* stream type */
- guint32 fcc_handler; /* fcc_handler */
- guint32 flags;
-/* flags values */
-#define GST_RIFF_STRH_DISABLED 0x000000001
-#define GST_RIFF_STRH_VIDEOPALCHANGES 0x000010000
- guint32 priority;
- guint32 init_frames; /* initial frames (???) */
- guint32 scale;
- guint32 rate;
- guint32 start;
- guint32 length;
- guint32 bufsize; /* suggested buffer size */
- guint32 quality;
- guint32 samplesize;
- /* rcFrame, RECT structure(struct of 4 shorts)
- gint32 left;
- gint32 top;
- gint32 right;
- gint32 bottom;
- */
-} gst_riff_strh;
-</pre>
-</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstringbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstmultichannel.html" title="gstmultichannel">
-<link rel="next" href="gstreamer-cdda.html" title="CDDA Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-cdda.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioiec61937.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gstringbuffer.synopsis" class="shortcut">Top</a>
struct <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferClass" title="struct GstRingBufferClass">GstRingBufferClass</a>;
struct <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec" title="struct GstRingBufferSpec">GstRingBufferSpec</a>;
<span class="returnvalue">void</span> (<a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferCallback" title="GstRingBufferCallback ()">*GstRingBufferCallback</a>) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *rbuf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
enum <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSegState" title="enum GstRingBufferSegState">GstRingBufferSegState</a>;
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-pause" title="gst_ring_buffer_pause ()">gst_ring_buffer_pause</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-stop" title="gst_ring_buffer_stop ()">gst_ring_buffer_stop</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-delay" title="gst_ring_buffer_delay ()">gst_ring_buffer_delay</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-samples-done" title="gst_ring_buffer_samples_done ()">gst_ring_buffer_samples_done</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
+<span class="returnvalue">guint64</span> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-samples-done" title="gst_ring_buffer_samples_done ()">gst_ring_buffer_samples_done</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-sample" title="gst_ring_buffer_set_sample ()">gst_ring_buffer_set_sample</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>);
+ <em class="parameter"><code><span class="type">guint64</span> sample</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit" title="gst_ring_buffer_commit ()">gst_ring_buffer_commit</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit-full" title="gst_ring_buffer_commit_full ()">gst_ring_buffer_commit_full</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *sample</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> in_samples</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> out_samples</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *accum</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-convert" title="gst_ring_buffer_convert ()">gst_ring_buffer_convert</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);
+ <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-prepare-read" title="gst_ring_buffer_prepare_read ()">gst_ring_buffer_prepare_read</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *segment</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **readptr</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **readptr</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-read" title="gst_ring_buffer_read ()">gst_ring_buffer_read</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-clear" title="gst_ring_buffer_clear ()">gst_ring_buffer_clear</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
<p>
</p>
<div class="refsect2">
-<a name="idp11277488"></a><p>
+<a name="idp12967152"></a><p>
This object is the base class for audio ringbuffers used by the base
audio source and sink classes.
</p>
<td>number of samples in one segment</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstRingBuffer-struct.empty-seg"></a>empty_seg</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint8</span> *<em class="structfield"><code><a name="GstRingBuffer-struct.empty-seg"></a>empty_seg</code></em>;</span></p></td>
<td>pointer to memory holding one segment of silence samples</td>
</tr>
<tr>
<td>the number of channels</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstRingBufferSpec.latency-time"></a>latency_time</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstRingBufferSpec.latency-time"></a>latency_time</code></em>;</span></p></td>
<td>the latency in microseconds</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstRingBufferSpec.buffer-time"></a>buffer_time</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint64</span> <em class="structfield"><code><a name="GstRingBufferSpec.buffer-time"></a>buffer_time</code></em>;</span></p></td>
<td>the total buffer size in microseconds</td>
</tr>
<tr>
<td>number of bytes in one sample</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstRingBufferSpec.silence-sample"></a>silence_sample</code></em>[32];</span></p></td>
+<td><p><span class="term"><span class="type">guint8</span> <em class="structfield"><code><a name="GstRingBufferSpec.silence-sample"></a>silence_sample</code></em>[32];</span></p></td>
<td>bytes representing one sample of silence</td>
</tr>
<tr>
<div class="refsect2">
<a name="GstRingBufferCallback"></a><h3>GstRingBufferCallback ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> (*GstRingBufferCallback) (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *rbuf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>
<hr>
<div class="refsect2">
<a name="GstBufferFormat"></a><h3>enum GstBufferFormat</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_UNKNOWN,
GST_S8,
GST_IEC958,
GST_AC3,
GST_EAC3,
- GST_DTS
+ GST_DTS,
+ GST_MPEG2_AAC,
+ GST_MPEG4_AAC,
} GstBufferFormat;
</pre>
+<p>
+The detailed format of the samples in the ringbuffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-UNKNOWN:CAPS"></a><span class="term"><code class="literal">GST_UNKNOWN</code></span></p></td>
+<td>unspecified
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S8:CAPS"></a><span class="term"><code class="literal">GST_S8</code></span></p></td>
+<td>integer signed 8 bit
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U8:CAPS"></a><span class="term"><code class="literal">GST_U8</code></span></p></td>
+<td>integer unsigned 8 bit
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S16-LE:CAPS"></a><span class="term"><code class="literal">GST_S16_LE</code></span></p></td>
+<td>integer signed 16 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S16-BE:CAPS"></a><span class="term"><code class="literal">GST_S16_BE</code></span></p></td>
+<td>integer signed 16 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U16-LE:CAPS"></a><span class="term"><code class="literal">GST_U16_LE</code></span></p></td>
+<td>integer unsigned 16 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U16-BE:CAPS"></a><span class="term"><code class="literal">GST_U16_BE</code></span></p></td>
+<td>integer unsigned 16 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-LE:CAPS"></a><span class="term"><code class="literal">GST_S24_LE</code></span></p></td>
+<td>integer signed 24 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-BE:CAPS"></a><span class="term"><code class="literal">GST_S24_BE</code></span></p></td>
+<td>integer signed 24 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-LE:CAPS"></a><span class="term"><code class="literal">GST_U24_LE</code></span></p></td>
+<td>integer unsigned 24 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-BE:CAPS"></a><span class="term"><code class="literal">GST_U24_BE</code></span></p></td>
+<td>integer unsigned 24 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S32-LE:CAPS"></a><span class="term"><code class="literal">GST_S32_LE</code></span></p></td>
+<td>integer signed 32 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S32-BE:CAPS"></a><span class="term"><code class="literal">GST_S32_BE</code></span></p></td>
+<td>integer signed 32 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U32-LE:CAPS"></a><span class="term"><code class="literal">GST_U32_LE</code></span></p></td>
+<td>integer unsigned 32 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U32-BE:CAPS"></a><span class="term"><code class="literal">GST_U32_BE</code></span></p></td>
+<td>integer unsigned 32 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-3LE:CAPS"></a><span class="term"><code class="literal">GST_S24_3LE</code></span></p></td>
+<td>integer signed 24 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S24-3BE:CAPS"></a><span class="term"><code class="literal">GST_S24_3BE</code></span></p></td>
+<td>integer signed 24 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-3LE:CAPS"></a><span class="term"><code class="literal">GST_U24_3LE</code></span></p></td>
+<td>integer unsigned 24 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U24-3BE:CAPS"></a><span class="term"><code class="literal">GST_U24_3BE</code></span></p></td>
+<td>integer unsigned 24 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S20-3LE:CAPS"></a><span class="term"><code class="literal">GST_S20_3LE</code></span></p></td>
+<td>integer signed 20 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S20-3BE:CAPS"></a><span class="term"><code class="literal">GST_S20_3BE</code></span></p></td>
+<td>integer signed 20 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U20-3LE:CAPS"></a><span class="term"><code class="literal">GST_U20_3LE</code></span></p></td>
+<td>integer unsigned 20 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U20-3BE:CAPS"></a><span class="term"><code class="literal">GST_U20_3BE</code></span></p></td>
+<td>integer unsigned 20 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S18-3LE:CAPS"></a><span class="term"><code class="literal">GST_S18_3LE</code></span></p></td>
+<td>integer signed 18 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-S18-3BE:CAPS"></a><span class="term"><code class="literal">GST_S18_3BE</code></span></p></td>
+<td>integer signed 18 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U18-3LE:CAPS"></a><span class="term"><code class="literal">GST_U18_3LE</code></span></p></td>
+<td>integer unsigned 18 bit little endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-U18-3BE:CAPS"></a><span class="term"><code class="literal">GST_U18_3BE</code></span></p></td>
+<td>integer unsigned 18 bit big endian packed in 3 bytes
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT32-LE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT32_LE</code></span></p></td>
+<td>floating 32 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT32-BE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT32_BE</code></span></p></td>
+<td>floating 32 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT64-LE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT64_LE</code></span></p></td>
+<td>floating 64 bit little endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-FLOAT64-BE:CAPS"></a><span class="term"><code class="literal">GST_FLOAT64_BE</code></span></p></td>
+<td>floating 64 bit big endian
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MU-LAW:CAPS"></a><span class="term"><code class="literal">GST_MU_LAW</code></span></p></td>
+<td>mu-law
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-A-LAW:CAPS"></a><span class="term"><code class="literal">GST_A_LAW</code></span></p></td>
+<td>a-law
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-IMA-ADPCM:CAPS"></a><span class="term"><code class="literal">GST_IMA_ADPCM</code></span></p></td>
+<td>ima adpcm
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MPEG:CAPS"></a><span class="term"><code class="literal">GST_MPEG</code></span></p></td>
+<td>mpeg audio (but not aac)
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-GSM:CAPS"></a><span class="term"><code class="literal">GST_GSM</code></span></p></td>
+<td>gsm
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-IEC958:CAPS"></a><span class="term"><code class="literal">GST_IEC958</code></span></p></td>
+<td>IEC958 frames
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AC3:CAPS"></a><span class="term"><code class="literal">GST_AC3</code></span></p></td>
+<td>ac3
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-EAC3:CAPS"></a><span class="term"><code class="literal">GST_EAC3</code></span></p></td>
+<td>eac3
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-DTS:CAPS"></a><span class="term"><code class="literal">GST_DTS</code></span></p></td>
+<td>dts
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MPEG2-AAC:CAPS"></a><span class="term"><code class="literal">GST_MPEG2_AAC</code></span></p></td>
+<td>mpeg-2 aac
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-MPEG4-AAC:CAPS"></a><span class="term"><code class="literal">GST_MPEG4_AAC</code></span></p></td>
+<td>mpeg-4 aac
+</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstBufferFormatType"></a><h3>enum GstBufferFormatType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_BUFTYPE_LINEAR,
GST_BUFTYPE_FLOAT,
GST_BUFTYPE_MU_LAW,
GST_BUFTYPE_IEC958,
GST_BUFTYPE_AC3,
GST_BUFTYPE_EAC3,
- GST_BUFTYPE_DTS
+ GST_BUFTYPE_DTS,
+ GST_BUFTYPE_MPEG2_AAC,
+ GST_BUFTYPE_MPEG4_AAC,
} GstBufferFormatType;
</pre>
<p>
</tr>
<tr>
<td><p><a name="GST-BUFTYPE-MPEG:CAPS"></a><span class="term"><code class="literal">GST_BUFTYPE_MPEG</code></span></p></td>
-<td>samples in mpeg audio format
+<td>samples in mpeg audio (but not AAC) format
</td>
</tr>
<tr>
<td>samples in DTS format
</td>
</tr>
+<tr>
+<td><p><a name="GST-BUFTYPE-MPEG2-AAC:CAPS"></a><span class="term"><code class="literal">GST_BUFTYPE_MPEG2_AAC</code></span></p></td>
+<td>samples in MPEG-2 AAC format
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-BUFTYPE-MPEG4-AAC:CAPS"></a><span class="term"><code class="literal">GST_BUFTYPE_MPEG4_AAC</code></span></p></td>
+<td>samples in MPEG-4 AAC format
+</td>
+</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-ring-buffer-samples-done"></a><h3>gst_ring_buffer_samples_done ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> gst_ring_buffer_samples_done (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span> gst_ring_buffer_samples_done (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>);</pre>
<p>
Get the number of samples that were processed by the ringbuffer
since it was last started. This does not include the number of samples not
<div class="refsect2">
<a name="gst-ring-buffer-set-sample"></a><h3>gst_ring_buffer_set_sample ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_ring_buffer_set_sample (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint64</span> sample</code></em>);</pre>
<p>
Make sure that the next sample written to the device is
accounted for as being the <em class="parameter"><code>sample</code></em> sample written to the
<div class="refsect2">
<a name="gst-ring-buffer-commit"></a><h3>gst_ring_buffer_commit ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_ring_buffer_commit (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
<div class="refsect2">
<a name="gst-ring-buffer-commit-full"></a><h3>gst_ring_buffer_commit_full ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_ring_buffer_commit_full (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *sample</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> in_samples</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> out_samples</code></em>,
Commit <em class="parameter"><code>in_samples</code></em> samples pointed to by <em class="parameter"><code>data</code></em> to the ringbuffer <em class="parameter"><code>buf</code></em>.
</p>
<p>
-<em class="parameter"><code>in_samples</code></em> and <em class="parameter"><code>out_samples</code></em> define the rate conversion to perform on the the
+<em class="parameter"><code>in_samples</code></em> and <em class="parameter"><code>out_samples</code></em> define the rate conversion to perform on the
samples in <em class="parameter"><code>data</code></em>. For negative rates, <em class="parameter"><code>out_samples</code></em> must be negative and
<em class="parameter"><code>in_samples</code></em> positive.
</p>
<a name="gst-ring-buffer-convert"></a><h3>gst_ring_buffer_convert ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_ring_buffer_convert (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_fmt</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_val</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
+ <em class="parameter"><code><span class="type">gint64</span> *dest_val</code></em>);</pre>
<p>
Convert <em class="parameter"><code>src_val</code></em> in <em class="parameter"><code>src_fmt</code></em> to the equivalent value in <em class="parameter"><code>dest_fmt</code></em>. The result
will be put in <em class="parameter"><code>dest_val</code></em>.
<a name="gst-ring-buffer-prepare-read"></a><h3>gst_ring_buffer_prepare_read ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_ring_buffer_prepare_read (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *segment</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **readptr</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **readptr</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *len</code></em>);</pre>
<p>
Returns a pointer to memory where the data from segment <em class="parameter"><code>segment</code></em>
<div class="refsect2">
<a name="gst-ring-buffer-read"></a><h3>gst_ring_buffer_read ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_ring_buffer_read (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer"><span class="type">GstRingBuffer</span></a> *buf</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> sample</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtcpbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtpbuffer.html" title="gstrtpbuffer">
<link rel="next" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data" title="gst_rtcp_buffer_new_copy_data ()">gst_rtcp_buffer_new_copy_data</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()">gst_rtcp_buffer_validate_data</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()">gst_rtcp_buffer_validate_data</a> (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate" title="gst_rtcp_buffer_validate ()">gst_rtcp_buffer_validate</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new" title="gst_rtcp_buffer_new ()">gst_rtcp_buffer_new</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> mtu</code></em>);
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-remove" title="gst_rtcp_packet_remove ()">gst_rtcp_packet_remove</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-padding" title="gst_rtcp_packet_get_padding ()">gst_rtcp_packet_get_padding</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-count" title="gst_rtcp_packet_get_count ()">gst_rtcp_packet_get_count</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint8</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-count" title="gst_rtcp_packet_get_count ()">gst_rtcp_packet_get_count</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType" title="enum GstRTCPType"><span class="returnvalue">GstRTCPType</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-type" title="gst_rtcp_packet_get_type ()">gst_rtcp_packet_get_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-length" title="gst_rtcp_packet_get_length ()">gst_rtcp_packet_get_length</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint16</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-length" title="gst_rtcp_packet_get_length ()">gst_rtcp_packet_get_length</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-get-sender-info" title="gst_rtcp_packet_sr_get_sender_info ()">gst_rtcp_packet_sr_get_sender_info</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *ntptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *rtptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *packet_count</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *octet_count</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *rtptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *packet_count</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *octet_count</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-set-sender-info" title="gst_rtcp_packet_sr_set_sender_info ()">gst_rtcp_packet_sr_set_sender_info</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> rtptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> packet_count</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> octet_count</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-get-ssrc" title="gst_rtcp_packet_rr_get_ssrc ()">gst_rtcp_packet_rr_get_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> rtptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> packet_count</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> octet_count</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-get-ssrc" title="gst_rtcp_packet_rr_get_ssrc ()">gst_rtcp_packet_rr_get_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-set-ssrc" title="gst_rtcp_packet_rr_set_ssrc ()">gst_rtcp_packet_rr_set_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb-count" title="gst_rtcp_packet_get_rb_count ()">gst_rtcp_packet_get_rb_count</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb" title="gst_rtcp_packet_get_rb ()">gst_rtcp_packet_get_rb</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *fractionlost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *packetslost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *exthighestseq</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *jitter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *lsr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *dlsr</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *fractionlost</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> *packetslost</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *exthighestseq</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *jitter</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *lsr</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *dlsr</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-add-rb" title="gst_rtcp_packet_add_rb ()">gst_rtcp_packet_add_rb</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-set-rb" title="gst_rtcp_packet_set_rb ()">gst_rtcp_packet_set_rb</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-item-count" title="gst_rtcp_packet_sdes_get_item_count ()">gst_rtcp_packet_sdes_get_item_count</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-item" title="gst_rtcp_packet_sdes_first_item ()">gst_rtcp_packet_sdes_first_item</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-item" title="gst_rtcp_packet_sdes_next_item ()">gst_rtcp_packet_sdes_next_item</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-ssrc" title="gst_rtcp_packet_sdes_get_ssrc ()">gst_rtcp_packet_sdes_get_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-ssrc" title="gst_rtcp_packet_sdes_get_ssrc ()">gst_rtcp_packet_sdes_get_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-entry" title="gst_rtcp_packet_sdes_first_entry ()">gst_rtcp_packet_sdes_first_entry</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-entry" title="gst_rtcp_packet_sdes_next_entry ()">gst_rtcp_packet_sdes_next_entry</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()">gst_rtcp_packet_sdes_get_entry</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()">gst_rtcp_packet_sdes_copy_entry</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-item" title="gst_rtcp_packet_sdes_add_item ()">gst_rtcp_packet_sdes_add_item</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-entry" title="gst_rtcp_packet_sdes_add_entry ()">gst_rtcp_packet_sdes_add_entry</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-ssrc-count" title="gst_rtcp_packet_bye_get_ssrc_count ()">gst_rtcp_packet_bye_get_ssrc_count</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-nth-ssrc" title="gst_rtcp_packet_bye_get_nth_ssrc ()">gst_rtcp_packet_bye_get_nth_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-nth-ssrc" title="gst_rtcp_packet_bye_get_nth_ssrc ()">gst_rtcp_packet_bye_get_nth_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrc" title="gst_rtcp_packet_bye_add_ssrc ()">gst_rtcp_packet_bye_add_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrcs" title="gst_rtcp_packet_bye_add_ssrcs ()">gst_rtcp_packet_bye_add_ssrcs</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason-len" title="gst_rtcp_packet_bye_get_reason_len ()">gst_rtcp_packet_bye_get_reason_len</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint8</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason-len" title="gst_rtcp_packet_bye_get_reason_len ()">gst_rtcp_packet_bye_get_reason_len</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason" title="gst_rtcp_packet_bye_get_reason ()">gst_rtcp_packet_bye_get_reason</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-set-reason" title="gst_rtcp_packet_bye_set_reason ()">gst_rtcp_packet_bye_set_reason</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType" title="enum GstRTCPFBType"><span class="returnvalue">GstRTCPFBType</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-type" title="gst_rtcp_packet_fb_get_type ()">gst_rtcp_packet_fb_get_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-type" title="gst_rtcp_packet_fb_set_type ()">gst_rtcp_packet_fb_set_type</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType" title="enum GstRTCPFBType"><span class="type">GstRTCPFBType</span></a> type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-sender-ssrc" title="gst_rtcp_packet_fb_get_sender_ssrc ()">gst_rtcp_packet_fb_get_sender_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-sender-ssrc" title="gst_rtcp_packet_fb_get_sender_ssrc ()">gst_rtcp_packet_fb_get_sender_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-sender-ssrc" title="gst_rtcp_packet_fb_set_sender_ssrc ()">gst_rtcp_packet_fb_set_sender_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-media-ssrc" title="gst_rtcp_packet_fb_get_media_ssrc ()">gst_rtcp_packet_fb_get_media_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-media-ssrc" title="gst_rtcp_packet_fb_get_media_ssrc ()">gst_rtcp_packet_fb_get_media_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-media-ssrc" title="gst_rtcp_packet_fb_set_media_ssrc ()">gst_rtcp_packet_fb_set_media_ssrc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci-length" title="gst_rtcp_packet_fb_get_fci_length ()">gst_rtcp_packet_fb_get_fci_length</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint16</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci-length" title="gst_rtcp_packet_fb_get_fci_length ()">gst_rtcp_packet_fb_get_fci_length</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-fci-length" title="gst_rtcp_packet_fb_set_fci_length ()">gst_rtcp_packet_fb_set_fci_length</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> wordlen</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci" title="gst_rtcp_packet_fb_get_fci ()">gst_rtcp_packet_fb_get_fci</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-ntp-to-unix" title="gst_rtcp_ntp_to_unix ()">gst_rtcp_ntp_to_unix</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp" title="gst_rtcp_unix_to_ntp ()">gst_rtcp_unix_to_ntp</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> unixtime</code></em>);
+ <em class="parameter"><code><span class="type">guint16</span> wordlen</code></em>);
+<span class="returnvalue">guint8</span> * <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci" title="gst_rtcp_packet_fb_get_fci ()">gst_rtcp_packet_fb_get_fci</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);
+<span class="returnvalue">guint64</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-ntp-to-unix" title="gst_rtcp_ntp_to_unix ()">gst_rtcp_ntp_to_unix</a> (<em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);
+<span class="returnvalue">guint64</span> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp" title="gst_rtcp_unix_to_ntp ()">gst_rtcp_unix_to_ntp</a> (<em class="parameter"><code><span class="type">guint64</span> unixtime</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="returnvalue">GstRTCPSDESType</span></a> <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type" title="gst_rtcp_sdes_name_to_type ()">gst_rtcp_sdes_name_to_type</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name" title="gst_rtcp_sdes_type_to_name ()">gst_rtcp_sdes_type_to_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>);
</pre>
<p>
</p>
<div class="refsect2">
-<a name="idp18698800"></a><p>
+<a name="idp19709744"></a><p>
The GstRTPCBuffer helper functions makes it easy to parse and create regular
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain compound RTCP packets. These buffers are typically
of 'application/x-rtcp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
<hr>
<div class="refsect2">
<a name="GstRTCPType"></a><h3>enum GstRTCPType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_RTCP_TYPE_INVALID = 0,
GST_RTCP_TYPE_SR = 200,
GST_RTCP_TYPE_RR = 201,
<hr>
<div class="refsect2">
<a name="GstRTCPSDESType"></a><h3>enum GstRTCPSDESType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_RTCP_SDES_INVALID = -1,
GST_RTCP_SDES_END = 0,
GST_RTCP_SDES_CNAME = 1,
<hr>
<div class="refsect2">
<a name="GstRTCPFBType"></a><h3>enum GstRTCPFBType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
/* generic */
GST_RTCP_FB_TYPE_INVALID = 0,
/* RTPFB types */
GST_RTCP_RTPFB_TYPE_NACK = 1,
+ /* RTPFB types assigned in RFC 5104 */
+ GST_RTCP_RTPFB_TYPE_TMMBR = 3,
+ GST_RTCP_RTPFB_TYPE_TMMBN = 4,
/* PSFB types */
GST_RTCP_PSFB_TYPE_PLI = 1,
GST_RTCP_PSFB_TYPE_SLI = 2,
GST_RTCP_PSFB_TYPE_RPSI = 3,
- GST_RTCP_PSFB_TYPE_AFB = 15
+ GST_RTCP_PSFB_TYPE_AFB = 15,
+ /* PSFB types assigned in RFC 5104 */
+ GST_RTCP_PSFB_TYPE_FIR = 4,
+ GST_RTCP_PSFB_TYPE_TSTR = 5,
+ GST_RTCP_PSFB_TYPE_TSTN = 6,
+ GST_RTCP_PSFB_TYPE_VBCN = 7,
} GstRTCPFBType;
</pre>
<p>
</td>
</tr>
<tr>
+<td><p><a name="GST-RTCP-RTPFB-TYPE-TMMBR:CAPS"></a><span class="term"><code class="literal">GST_RTCP_RTPFB_TYPE_TMMBR</code></span></p></td>
+<td>Temporary Maximum Media Stream Bit Rate Request
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-RTPFB-TYPE-TMMBN:CAPS"></a><span class="term"><code class="literal">GST_RTCP_RTPFB_TYPE_TMMBN</code></span></p></td>
+<td>Temporary Maximum Media Stream Bit Rate
+ Notification
+</td>
+</tr>
+<tr>
<td><p><a name="GST-RTCP-PSFB-TYPE-PLI:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_PLI</code></span></p></td>
<td>Picture Loss Indication
</td>
<td>Application layer Feedback
</td>
</tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-FIR:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_FIR</code></span></p></td>
+<td>Full Intra Request Command
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-TSTR:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_TSTR</code></span></p></td>
+<td>Temporal-Spatial Trade-off Request
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-TSTN:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_TSTN</code></span></p></td>
+<td>Temporal-Spatial Trade-off Notification
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-RTCP-PSFB-TYPE-VBCN:CAPS"></a><span class="term"><code class="literal">GST_RTCP_PSFB_TYPE_VBCN</code></span></p></td>
+<td>Video Back Channel Message
+</td>
+</tr>
</tbody>
</table></div>
<p class="since">Since 0.10.23</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-buffer-validate-data"></a><h3>gst_rtcp_buffer_validate_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_buffer_validate_data (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_buffer_validate_data (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Check if the <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em> point to the data of a valid RTCP (compound)
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-get-count"></a><h3>gst_rtcp_packet_get_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> gst_rtcp_packet_get_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> gst_rtcp_packet_get_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the count field in <em class="parameter"><code>packet</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-get-length"></a><h3>gst_rtcp_packet_get_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> gst_rtcp_packet_get_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span> gst_rtcp_packet_get_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the length field of <em class="parameter"><code>packet</code></em>. This is the length of the packet in
32-bit words minus one.
<div class="refsect2">
<a name="gst-rtcp-packet-sr-get-sender-info"></a><h3>gst_rtcp_packet_sr_get_sender_info ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtcp_packet_sr_get_sender_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *ntptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *rtptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *packet_count</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *octet_count</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> *ntptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *rtptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *packet_count</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *octet_count</code></em>);</pre>
<p>
Parse the SR sender info and store the values.
</p>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>octet_count</code></em> :</span></p></td>
-<td>result octect count</td>
+<td>result octet count</td>
</tr>
</tbody>
</table></div>
<div class="refsect2">
<a name="gst-rtcp-packet-sr-set-sender-info"></a><h3>gst_rtcp_packet_sr_set_sender_info ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtcp_packet_sr_set_sender_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> rtptime</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> packet_count</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> octet_count</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> rtptime</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> packet_count</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> octet_count</code></em>);</pre>
<p>
Set the given values in the SR packet <em class="parameter"><code>packet</code></em>.
</p>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>octet_count</code></em> :</span></p></td>
-<td>the octect count</td>
+<td>the octet count</td>
</tr>
</tbody>
</table></div>
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-rr-get-ssrc"></a><h3>gst_rtcp_packet_rr_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtcp_packet_rr_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtcp_packet_rr_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the ssrc field of the RR <em class="parameter"><code>packet</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtcp-packet-rr-set-ssrc"></a><h3>gst_rtcp_packet_rr_set_ssrc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtcp_packet_rr_set_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
<p>
Set the ssrc field of the RR <em class="parameter"><code>packet</code></em>.
</p>
<a name="gst-rtcp-packet-get-rb"></a><h3>gst_rtcp_packet_get_rb ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtcp_packet_get_rb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *fractionlost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *packetslost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *exthighestseq</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *jitter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *lsr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *dlsr</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *fractionlost</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> *packetslost</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *exthighestseq</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *jitter</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *lsr</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *dlsr</code></em>);</pre>
<p>
Parse the values of the <em class="parameter"><code>nth</code></em> report block in <em class="parameter"><code>packet</code></em> and store the result in
the values.
<div class="refsect2">
<a name="gst-rtcp-packet-add-rb"></a><h3>gst_rtcp_packet_add_rb ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_add_rb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);</pre>
<p>
Add a new report block to <em class="parameter"><code>packet</code></em> with the given values.
</p>
<a name="gst-rtcp-packet-set-rb"></a><h3>gst_rtcp_packet_set_rb ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtcp_packet_set_rb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> fractionlost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint32"><span class="type">gint32</span></a> packetslost</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> exthighestseq</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> fractionlost</code></em>,
+ <em class="parameter"><code><span class="type">gint32</span> packetslost</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> exthighestseq</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> jitter</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> lsr</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> dlsr</code></em>);</pre>
<p>
Set the <em class="parameter"><code>nth</code></em> new report block in <em class="parameter"><code>packet</code></em> with the given values.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-sdes-get-ssrc"></a><h3>gst_rtcp_packet_sdes_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtcp_packet_sdes_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtcp_packet_sdes_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the SSRC of the current SDES item.
</p>
<a name="gst-rtcp-packet-sdes-get-entry"></a><h3>gst_rtcp_packet_sdes_get_entry ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_sdes_get_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);</pre>
<p>
Get the data of the current SDES item entry. <em class="parameter"><code>type</code></em> (when not NULL) will
contain the type of the entry. <em class="parameter"><code>data</code></em> (when not NULL) will point to <em class="parameter"><code>len</code></em>
<p>
When <em class="parameter"><code>type</code></em> refers to a text item, <em class="parameter"><code>data</code></em> will point to a UTF8 string. Note
that this UTF8 string is NOT null-terminated. Use
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-termined copy of the entry.
+<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-terminated copy of the entry.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<a name="gst-rtcp-packet-sdes-copy-entry"></a><h3>gst_rtcp_packet_sdes_copy_entry ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_sdes_copy_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> *len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>);</pre>
<p>
This function is like <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()"><code class="function">gst_rtcp_packet_sdes_get_entry()</code></a> but it returns a
null-terminated copy of the data instead. use <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.
<div class="refsect2">
<a name="gst-rtcp-packet-sdes-add-item"></a><h3>gst_rtcp_packet_sdes_add_item ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_sdes_add_item (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
<p>
Add a new SDES item for <em class="parameter"><code>ssrc</code></em> to <em class="parameter"><code>packet</code></em>.
</p>
<a name="gst-rtcp-packet-sdes-add-entry"></a><h3>gst_rtcp_packet_sdes_add_entry ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_sdes_add_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> len</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
<p>
Add a new SDES entry to the current item in <em class="parameter"><code>packet</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-bye-get-nth-ssrc"></a><h3>gst_rtcp_packet_bye_get_nth_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtcp_packet_bye_get_nth_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtcp_packet_bye_get_nth_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
<p>
Get the <em class="parameter"><code>nth</code></em> SSRC of the BYE <em class="parameter"><code>packet</code></em>.
<div class="refsect2">
<a name="gst-rtcp-packet-bye-add-ssrc"></a><h3>gst_rtcp_packet_bye_add_ssrc ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_bye_add_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
<p>
Add <em class="parameter"><code>ssrc</code></em> to the BYE <em class="parameter"><code>packet</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtcp-packet-bye-add-ssrcs"></a><h3>gst_rtcp_packet_bye_add_ssrcs ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_bye_add_ssrcs (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> *ssrc</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Adds <em class="parameter"><code>len</code></em> SSRCs in <em class="parameter"><code>ssrc</code></em> to BYE <em class="parameter"><code>packet</code></em>.
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-bye-get-reason-len"></a><h3>gst_rtcp_packet_bye_get_reason_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> gst_rtcp_packet_bye_get_reason_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> gst_rtcp_packet_bye_get_reason_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the length of the reason string.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-fb-get-sender-ssrc"></a><h3>gst_rtcp_packet_fb_get_sender_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtcp_packet_fb_get_sender_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtcp_packet_fb_get_sender_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtcp-packet-fb-set-sender-ssrc"></a><h3>gst_rtcp_packet_fb_set_sender_ssrc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtcp_packet_fb_set_sender_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
<p>
Set the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-fb-get-media-ssrc"></a><h3>gst_rtcp_packet_fb_get_media_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtcp_packet_fb_get_media_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtcp_packet_fb_get_media_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtcp-packet-fb-set-media-ssrc"></a><h3>gst_rtcp_packet_fb_set_media_ssrc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtcp_packet_fb_set_media_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
<p>
Set the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-fb-get-fci-length"></a><h3>gst_rtcp_packet_fb_get_fci_length ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> gst_rtcp_packet_fb_get_fci_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span> gst_rtcp_packet_fb_get_fci_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the length of the Feedback Control Information attached to a
RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
<div class="refsect2">
<a name="gst-rtcp-packet-fb-set-fci-length"></a><h3>gst_rtcp_packet_fb_set_fci_length ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtcp_packet_fb_set_fci_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> wordlen</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint16</span> wordlen</code></em>);</pre>
<p>
Set the length of the Feedback Control Information attached to a
RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
<hr>
<div class="refsect2">
<a name="gst-rtcp-packet-fb-get-fci"></a><h3>gst_rtcp_packet_fb_get_fci ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> * gst_rtcp_packet_fb_get_fci (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> * gst_rtcp_packet_fb_get_fci (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
<p>
Get the Feedback Control Information attached to a RTPFB or PSFB <em class="parameter"><code>packet</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtcp-ntp-to-unix"></a><h3>gst_rtcp_ntp_to_unix ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> gst_rtcp_ntp_to_unix (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span> gst_rtcp_ntp_to_unix (<em class="parameter"><code><span class="type">guint64</span> ntptime</code></em>);</pre>
<p>
Converts an NTP time to UNIX nanoseconds. <em class="parameter"><code>ntptime</code></em> can typically be
the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
<hr>
<div class="refsect2">
<a name="gst-rtcp-unix-to-ntp"></a><h3>gst_rtcp_unix_to_ntp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> gst_rtcp_unix_to_ntp (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> unixtime</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span> gst_rtcp_unix_to_ntp (<em class="parameter"><code><span class="type">guint64</span> unixtime</code></em>);</pre>
<p>
Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
pass a value with nanoseconds since 1970. The NTP time will, in the upper
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtpbuffer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gst-plugins-base-libs-gstbasertppayload.html" title="gstbasertppayload">
<link rel="next" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
#define <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS" title="GST_RTP_VERSION">GST_RTP_VERSION</a>
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data" title="gst_rtp_buffer_allocate_data ()">gst_rtp_buffer_allocate_data</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data" title="gst_rtp_buffer_new_take_data ()">gst_rtp_buffer_new_take_data</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-copy-data" title="gst_rtp_buffer_new_copy_data ()">gst_rtp_buffer_new_copy_data</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate" title="gst_rtp_buffer_new_allocate ()">gst_rtp_buffer_new_allocate</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate-len" title="gst_rtp_buffer_new_allocate_len ()">gst_rtp_buffer_new_allocate_len</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-from-buffer" title="gst_rtp_buffer_list_from_buffer ()">gst_rtp_buffer_list_from_buffer</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-header-len" title="gst_rtp_buffer_calc_header_len ()">gst_rtp_buffer_calc_header_len</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-header-len" title="gst_rtp_buffer_calc_header_len ()">gst_rtp_buffer_calc_header_len</a> (<em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-packet-len" title="gst_rtp_buffer_calc_packet_len ()">gst_rtp_buffer_calc_packet_len</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len" title="gst_rtp_buffer_calc_payload_len ()">gst_rtp_buffer_calc_payload_len</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate" title="gst_rtp_buffer_validate ()">gst_rtp_buffer_validate</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()">gst_rtp_buffer_validate_data</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()">gst_rtp_buffer_validate_data</a> (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-packet-len" title="gst_rtp_buffer_set_packet_len ()">gst_rtp_buffer_set_packet_len</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-packet-len" title="gst_rtp_buffer_get_packet_len ()">gst_rtp_buffer_get_packet_len</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-header-len" title="gst_rtp_buffer_get_header_len ()">gst_rtp_buffer_get_header_len</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-version" title="gst_rtp_buffer_get_version ()">gst_rtp_buffer_get_version</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint8</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-version" title="gst_rtp_buffer_get_version ()">gst_rtp_buffer_get_version</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-version" title="gst_rtp_buffer_set_version ()">gst_rtp_buffer_set_version</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> version</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> version</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-padding" title="gst_rtp_buffer_get_padding ()">gst_rtp_buffer_get_padding</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-padding" title="gst_rtp_buffer_set_padding ()">gst_rtp_buffer_set_padding</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> padding</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension" title="gst_rtp_buffer_set_extension ()">gst_rtp_buffer_set_extension</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extension</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-data" title="gst_rtp_buffer_get_extension_data ()">gst_rtp_buffer_get_extension_data</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *bits</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *bits</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *wordlen</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-ssrc" title="gst_rtp_buffer_get_ssrc ()">gst_rtp_buffer_get_ssrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-ssrc" title="gst_rtp_buffer_get_ssrc ()">gst_rtp_buffer_get_ssrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-ssrc" title="gst_rtp_buffer_set_ssrc ()">gst_rtp_buffer_set_ssrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc-count" title="gst_rtp_buffer_get_csrc_count ()">gst_rtp_buffer_get_csrc_count</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc" title="gst_rtp_buffer_get_csrc ()">gst_rtp_buffer_get_csrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint8</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc-count" title="gst_rtp_buffer_get_csrc_count ()">gst_rtp_buffer_get_csrc_count</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc" title="gst_rtp_buffer_get_csrc ()">gst_rtp_buffer_get_csrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> idx</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-csrc" title="gst_rtp_buffer_set_csrc ()">gst_rtp_buffer_set_csrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> csrc</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> csrc</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-marker" title="gst_rtp_buffer_get_marker ()">gst_rtp_buffer_get_marker</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-marker" title="gst_rtp_buffer_set_marker ()">gst_rtp_buffer_set_marker</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> marker</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-type" title="gst_rtp_buffer_get_payload_type ()">gst_rtp_buffer_get_payload_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<span class="returnvalue">guint8</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-type" title="gst_rtp_buffer_get_payload_type ()">gst_rtp_buffer_get_payload_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-payload-type" title="gst_rtp_buffer_set_payload_type ()">gst_rtp_buffer_set_payload_type</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-seq" title="gst_rtp_buffer_get_seq ()">gst_rtp_buffer_get_seq</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
+<span class="returnvalue">guint16</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-seq" title="gst_rtp_buffer_get_seq ()">gst_rtp_buffer_get_seq</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-seq" title="gst_rtp_buffer_set_seq ()">gst_rtp_buffer_set_seq</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-timestamp" title="gst_rtp_buffer_get_timestamp ()">gst_rtp_buffer_get_timestamp</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+ <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-timestamp" title="gst_rtp_buffer_get_timestamp ()">gst_rtp_buffer_get_timestamp</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-timestamp" title="gst_rtp_buffer_set_timestamp ()">gst_rtp_buffer_set_timestamp</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer" title="gst_rtp_buffer_get_payload_buffer ()">gst_rtp_buffer_get_payload_buffer</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer" title="gst_rtp_buffer_get_payload_subbuffer ()">gst_rtp_buffer_get_payload_subbuffer</a>
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer" title="gst_rtp_buffer_get_payload_buffer ()">gst_rtp_buffer_get_payload_buffer</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer" title="gst_rtp_buffer_get_payload_subbuffer ()">gst_rtp_buffer_get_payload_subbuffer</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-len" title="gst_rtp_buffer_get_payload_len ()">gst_rtp_buffer_get_payload_len</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload" title="gst_rtp_buffer_get_payload ()">gst_rtp_buffer_get_payload</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-default-clock-rate" title="gst_rtp_buffer_default_clock_rate ()">gst_rtp_buffer_default_clock_rate</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum" title="gst_rtp_buffer_compare_seqnum ()">gst_rtp_buffer_compare_seqnum</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum1</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum2</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-ext-timestamp" title="gst_rtp_buffer_ext_timestamp ()">gst_rtp_buffer_ext_timestamp</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *exttimestamp</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-default-clock-rate" title="gst_rtp_buffer_default_clock_rate ()">gst_rtp_buffer_default_clock_rate</a> (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum" title="gst_rtp_buffer_compare_seqnum ()">gst_rtp_buffer_compare_seqnum</a> (<em class="parameter"><code><span class="type">guint16</span> seqnum1</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> seqnum2</code></em>);
+<span class="returnvalue">guint64</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-ext-timestamp" title="gst_rtp_buffer_ext_timestamp ()">gst_rtp_buffer_ext_timestamp</a> (<em class="parameter"><code><span class="type">guint64</span> *exttimestamp</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension-data" title="gst_rtp_buffer_set_extension_data ()">gst_rtp_buffer_set_extension_data</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> bits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> length</code></em>);
+ <em class="parameter"><code><span class="type">guint16</span> bits</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> length</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-validate" title="gst_rtp_buffer_list_validate ()">gst_rtp_buffer_list_validate</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-len" title="gst_rtp_buffer_list_get_payload_len ()">gst_rtp_buffer_list_get_payload_len</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-type" title="gst_rtp_buffer_list_get_payload_type ()">gst_rtp_buffer_list_get_payload_type</a>
+<span class="returnvalue">guint8</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-type" title="gst_rtp_buffer_list_get_payload_type ()">gst_rtp_buffer_list_get_payload_type</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-payload-type" title="gst_rtp_buffer_list_set_payload_type ()">gst_rtp_buffer_list_set_payload_type</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-seq" title="gst_rtp_buffer_list_get_seq ()">gst_rtp_buffer_list_get_seq</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-seq" title="gst_rtp_buffer_list_set_seq ()">gst_rtp_buffer_list_set_seq</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-ssrc" title="gst_rtp_buffer_list_get_ssrc ()">gst_rtp_buffer_list_get_ssrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
+<span class="returnvalue">guint16</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-seq" title="gst_rtp_buffer_list_get_seq ()">gst_rtp_buffer_list_get_seq</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
+<span class="returnvalue">guint16</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-seq" title="gst_rtp_buffer_list_set_seq ()">gst_rtp_buffer_list_set_seq</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-ssrc" title="gst_rtp_buffer_list_get_ssrc ()">gst_rtp_buffer_list_get_ssrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-ssrc" title="gst_rtp_buffer_list_set_ssrc ()">gst_rtp_buffer_list_set_ssrc</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-timestamp" title="gst_rtp_buffer_list_get_timestamp ()">gst_rtp_buffer_list_get_timestamp</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-timestamp" title="gst_rtp_buffer_list_get_timestamp ()">gst_rtp_buffer_list_get_timestamp</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-timestamp" title="gst_rtp_buffer_list_set_timestamp ()">gst_rtp_buffer_list_set_timestamp</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-onebyte-header" title="gst_rtp_buffer_get_extension_onebyte_header ()">gst_rtp_buffer_get_extension_onebyte_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-twobytes-header" title="gst_rtp_buffer_get_extension_twobytes_header ()">gst_rtp_buffer_get_extension_twobytes_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header" title="gst_rtp_buffer_add_extension_onebyte_header ()">gst_rtp_buffer_add_extension_onebyte_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header" title="gst_rtp_buffer_add_extension_twobytes_header ()">gst_rtp_buffer_add_extension_twobytes_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-onebyte-header" title="gst_rtp_buffer_list_get_extension_onebyte_header ()">gst_rtp_buffer_list_get_extension_onebyte_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-twobytes-header" title="gst_rtp_buffer_list_get_extension_twobytes_header ()">gst_rtp_buffer_list_get_extension_twobytes_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-onebyte-header" title="gst_rtp_buffer_list_add_extension_onebyte_header ()">gst_rtp_buffer_list_add_extension_onebyte_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-twobytes-header" title="gst_rtp_buffer_list_add_extension_twobytes_header ()">gst_rtp_buffer_list_add_extension_twobytes_header</a>
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
</pre>
<p>
</p>
<div class="refsect2">
-<a name="idp19435168"></a><p>
+<a name="idp20554720"></a><p>
The GstRTPBuffer helper functions makes it easy to parse and create regular
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> objects that contain RTP payloads. These buffers are typically of
'application/x-rtp' <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>.
<a name="gst-rtp-buffer-allocate-data"></a><h3>gst_rtp_buffer_allocate_data ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_allocate_data (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
<p>
Allocate enough data in <em class="parameter"><code>buffer</code></em> to hold an RTP packet with <em class="parameter"><code>csrc_count</code></em> CSRCs,
a payload length of <em class="parameter"><code>payload_len</code></em> and padding of <em class="parameter"><code>pad_len</code></em>.
<div class="refsect2">
<a name="gst-rtp-buffer-new-allocate"></a><h3>gst_rtp_buffer_new_allocate ()</h3>
<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_rtp_buffer_new_allocate (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
<p>
Allocate a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> with enough data to hold an RTP packet with
<em class="parameter"><code>csrc_count</code></em> CSRCs, a payload length of <em class="parameter"><code>payload_len</code></em> and padding of <em class="parameter"><code>pad_len</code></em>.
<div class="refsect2">
<a name="gst-rtp-buffer-new-allocate-len"></a><h3>gst_rtp_buffer_new_allocate_len ()</h3>
<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_rtp_buffer_new_allocate_len (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
<p>
Create a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> that can hold an RTP packet that is exactly
<em class="parameter"><code>packet_len</code></em> long. The length of the payload depends on <em class="parameter"><code>pad_len</code></em> and
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-calc-header-len"></a><h3>gst_rtp_buffer_calc_header_len ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_rtp_buffer_calc_header_len (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_rtp_buffer_calc_header_len (<em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
<p>
Calculate the header length of an RTP packet with <em class="parameter"><code>csrc_count</code></em> CSRC entries.
An RTP packet can have at most 15 CSRC entries.
<div class="refsect2">
<a name="gst-rtp-buffer-calc-packet-len"></a><h3>gst_rtp_buffer_calc_packet_len ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_rtp_buffer_calc_packet_len (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
<p>
Calculate the total length of an RTP packet with a payload size of <em class="parameter"><code>payload_len</code></em>,
a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="parameter"><code>csrc_count</code></em> CSRC entries.
<div class="refsect2">
<a name="gst-rtp-buffer-calc-payload-len"></a><h3>gst_rtp_buffer_calc_payload_len ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_rtp_buffer_calc_payload_len (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> pad_len</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> csrc_count</code></em>);</pre>
<p>
Calculate the length of the payload of an RTP packet with size <em class="parameter"><code>packet_len</code></em>,
a padding of <em class="parameter"><code>pad_len</code></em> and a <em class="parameter"><code>csrc_count</code></em> CSRC entries.
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_validate (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Check if the data pointed to by <em class="parameter"><code>buffer</code></em> is a valid RTP packet using
-<code class="function">validate_data()</code>.
+<a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()"><code class="function">gst_rtp_buffer_validate_data()</code></a>.
Use this function to validate a packet before using the other functions in
this module.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-validate-data"></a><h3>gst_rtp_buffer_validate_data ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_validate_data (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_validate_data (<em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<p>
Check if the <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em> point to the data of a valid RTP packet.
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-version"></a><h3>gst_rtp_buffer_get_version ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> gst_rtp_buffer_get_version (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> gst_rtp_buffer_get_version (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Get the version number of the RTP packet in <em class="parameter"><code>buffer</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtp-buffer-set-version"></a><h3>gst_rtp_buffer_set_version ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_set_version (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> version</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> version</code></em>);</pre>
<p>
Set the version of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>version</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtp-buffer-get-extension-data"></a><h3>gst_rtp_buffer_get_extension_data ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_get_extension_data (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *bits</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> *bits</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *wordlen</code></em>);</pre>
<p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-ssrc"></a><h3>gst_rtp_buffer_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtp_buffer_get_ssrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtp_buffer_get_ssrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Get the SSRC of the RTP packet in <em class="parameter"><code>buffer</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtp-buffer-set-ssrc"></a><h3>gst_rtp_buffer_set_ssrc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_set_ssrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
<p>
Set the SSRC on the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>ssrc</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-csrc-count"></a><h3>gst_rtp_buffer_get_csrc_count ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> gst_rtp_buffer_get_csrc_count (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> gst_rtp_buffer_get_csrc_count (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Get the CSRC count of the RTP packet in <em class="parameter"><code>buffer</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-csrc"></a><h3>gst_rtp_buffer_get_csrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtp_buffer_get_csrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtp_buffer_get_csrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> idx</code></em>);</pre>
<p>
Get the CSRC at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtp-buffer-set-csrc"></a><h3>gst_rtp_buffer_set_csrc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_set_csrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> csrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> idx</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> csrc</code></em>);</pre>
<p>
Modify the CSRC at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>csrc</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-payload-type"></a><h3>gst_rtp_buffer_get_payload_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> gst_rtp_buffer_get_payload_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint8</span> gst_rtp_buffer_get_payload_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Get the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtp-buffer-set-payload-type"></a><h3>gst_rtp_buffer_set_payload_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_set_payload_type (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
<p>
Set the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>payload_type</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-seq"></a><h3>gst_rtp_buffer_get_seq ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> gst_rtp_buffer_get_seq (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span> gst_rtp_buffer_get_seq (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Get the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtp-buffer-set-seq"></a><h3>gst_rtp_buffer_set_seq ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_set_seq (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);</pre>
<p>
Set the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>seq</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-timestamp"></a><h3>gst_rtp_buffer_get_timestamp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtp_buffer_get_timestamp (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtp_buffer_get_timestamp (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Get the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtp-buffer-set-timestamp"></a><h3>gst_rtp_buffer_set_timestamp ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_set_timestamp (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);</pre>
<p>
Set the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em> to <em class="parameter"><code>timestamp</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-payload-buffer"></a><h3>gst_rtp_buffer_get_payload_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_rtp_buffer_get_payload_buffer (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_rtp_buffer_get_payload_buffer (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Create a buffer of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>. This function
will internally create a subbuffer of <em class="parameter"><code>buffer</code></em> so that a memcpy can be
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-get-payload-subbuffer"></a><h3>gst_rtp_buffer_get_payload_subbuffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_rtp_buffer_get_payload_subbuffer
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_rtp_buffer_get_payload_subbuffer
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-default-clock-rate"></a><h3>gst_rtp_buffer_default_clock_rate ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtp_buffer_default_clock_rate (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtp_buffer_default_clock_rate (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
<p>
Get the default clock-rate for the static payload type <em class="parameter"><code>payload_type</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-compare-seqnum"></a><h3>gst_rtp_buffer_compare_seqnum ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_rtp_buffer_compare_seqnum (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum1</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum2</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> gst_rtp_buffer_compare_seqnum (<em class="parameter"><code><span class="type">guint16</span> seqnum1</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> seqnum2</code></em>);</pre>
<p>
Compare two sequence numbers, taking care of wraparounds. This function
returns the difference between <em class="parameter"><code>seqnum1</code></em> and <em class="parameter"><code>seqnum2</code></em>.
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-ext-timestamp"></a><h3>gst_rtp_buffer_ext_timestamp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a> gst_rtp_buffer_ext_timestamp (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *exttimestamp</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint64</span> gst_rtp_buffer_ext_timestamp (<em class="parameter"><code><span class="type">guint64</span> *exttimestamp</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);</pre>
<p>
Update the <em class="parameter"><code>exttimestamp</code></em> field with <em class="parameter"><code>timestamp</code></em>. For the first call of the
method, <em class="parameter"><code>exttimestamp</code></em> should point to a location with a value of -1.
<div class="refsect2">
<a name="gst-rtp-buffer-set-extension-data"></a><h3>gst_rtp_buffer_set_extension_data ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_set_extension_data (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> bits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> length</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint16</span> bits</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> length</code></em>);</pre>
<p>
Set the extension bit of the rtp buffer and fill in the <em class="parameter"><code>bits</code></em> and <em class="parameter"><code>length</code></em> of the
extension header. It will refuse to set the extension data if the buffer is not
<a name="gst-rtp-buffer-list-validate"></a><h3>gst_rtp_buffer_list_validate ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_list_validate (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
<p>
-Check if all RTP packets in the <em class="parameter"><code>list</code></em> are valid using <code class="function">validate_data()</code>.
+Check if all RTP packets in the <em class="parameter"><code>list</code></em> are valid using <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data" title="gst_rtp_buffer_validate_data ()"><code class="function">gst_rtp_buffer_validate_data()</code></a>.
Use this function to validate an list before using the other functions in
this module.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-list-get-payload-type"></a><h3>gst_rtp_buffer_list_get_payload_type ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> gst_rtp_buffer_list_get_payload_type
+<pre class="programlisting"><span class="returnvalue">guint8</span> gst_rtp_buffer_list_get_payload_type
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
<p>
Get the payload type of the first RTP packet in <em class="parameter"><code>list</code></em>.
<a name="gst-rtp-buffer-list-set-payload-type"></a><h3>gst_rtp_buffer_list_set_payload_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_list_set_payload_type
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
<p>
Set the payload type of each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>payload_type</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-list-get-seq"></a><h3>gst_rtp_buffer_list_get_seq ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> gst_rtp_buffer_list_get_seq (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span> gst_rtp_buffer_list_get_seq (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
<p>
Get the sequence number of the first RTP packet in <em class="parameter"><code>list</code></em>.
All packets within <em class="parameter"><code>list</code></em> have the same sequence number.
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-list-set-seq"></a><h3>gst_rtp_buffer_list_set_seq ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a> gst_rtp_buffer_list_set_seq (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint16</span> gst_rtp_buffer_list_set_seq (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> seq</code></em>);</pre>
<p>
Set the sequence number of each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>seq</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-list-get-ssrc"></a><h3>gst_rtp_buffer_list_get_ssrc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtp_buffer_list_get_ssrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtp_buffer_list_get_ssrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
<p>
Get the SSRC of the first RTP packet in <em class="parameter"><code>list</code></em>.
All RTP packets within <em class="parameter"><code>list</code></em> have the same SSRC.
<div class="refsect2">
<a name="gst-rtp-buffer-list-set-ssrc"></a><h3>gst_rtp_buffer_list_set_ssrc ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_list_set_ssrc (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> ssrc</code></em>);</pre>
<p>
Set the SSRC on each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>ssrc</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtp-buffer-list-get-timestamp"></a><h3>gst_rtp_buffer_list_get_timestamp ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_rtp_buffer_list_get_timestamp (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_rtp_buffer_list_get_timestamp (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
<p>
Get the timestamp of the first RTP packet in <em class="parameter"><code>list</code></em>.
All packets within <em class="parameter"><code>list</code></em> have the same timestamp.
<div class="refsect2">
<a name="gst-rtp-buffer-list-set-timestamp"></a><h3>gst_rtp_buffer_list_set_timestamp ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtp_buffer_list_set_timestamp (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint32</span> timestamp</code></em>);</pre>
<p>
Set the timestamp of each RTP packet in <em class="parameter"><code>list</code></em> to <em class="parameter"><code>timestamp</code></em>.
</p>
<a name="gst-rtp-buffer-get-extension-onebyte-header"></a><h3>gst_rtp_buffer_get_extension_onebyte_header ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_get_extension_onebyte_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
<a name="gst-rtp-buffer-get-extension-twobytes-header"></a><h3>gst_rtp_buffer_get_extension_twobytes_header ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_get_extension_twobytes_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
<a name="gst-rtp-buffer-add-extension-onebyte-header"></a><h3>gst_rtp_buffer_add_extension_onebyte_header ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_add_extension_onebyte_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<p>
<a name="gst-rtp-buffer-add-extension-twobytes-header"></a><h3>gst_rtp_buffer_add_extension_twobytes_header ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_add_extension_twobytes_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<p>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_list_get_extension_onebyte_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_list_get_extension_twobytes_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> *bufferlist</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> group_idx</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
<a name="gst-rtp-buffer-list-add-extension-onebyte-header"></a><h3>gst_rtp_buffer_list_add_extension_onebyte_header ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_list_add_extension_onebyte_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<p>
<a name="gst-rtp-buffer-list-add-extension-twobytes-header"></a><h3>gst_rtp_buffer_list_add_extension_twobytes_header ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_rtp_buffer_list_add_extension_twobytes_header
(<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferListIterator"><span class="type">GstBufferListIterator</span></a> *it</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> appbits</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> appbits</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> id</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtppayloads</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtp.html" title="RTP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtcpbuffer.html" title="gstrtcpbuffer">
<link rel="next" href="gstreamer-rtsp.html" title="RTSP Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
enum <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload" title="enum GstRTPPayload">GstRTPPayload</a>;
#define <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS" title="GST_RTP_PAYLOAD_IS_DYNAMIC()">GST_RTP_PAYLOAD_IS_DYNAMIC</a> (pt)
struct <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo">GstRTPPayloadInfo</a>;
-const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name" title="gst_rtp_payload_info_for_name ()">gst_rtp_payload_info_for_name</a>
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name" title="gst_rtp_payload_info_for_name ()">gst_rtp_payload_info_for_name</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt" title="gst_rtp_payload_info_for_pt ()">gst_rtp_payload_info_for_pt</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt" title="gst_rtp_payload_info_for_pt ()">gst_rtp_payload_info_for_pt</a> (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp17281392"></a><p>
+<a name="idp8311104"></a><p>
The GstRTPPayloads helper functions makes it easy to deal with static and dynamic
payloads. Its main purpose is to retrieve properties such as the default clock-rate
and get session bandwidth information.
<a name="gst-plugins-base-libs-gstrtppayloads.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstRTPPayload"></a><h3>enum GstRTPPayload</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
/* Audio: */
GST_RTP_PAYLOAD_PCMU = 0,
GST_RTP_PAYLOAD_1016 = 1, /* RFC 3551 says reserved */
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstRTPPayloadInfo.payload-type"></a>payload_type</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint8</span> <em class="structfield"><code><a name="GstRTPPayloadInfo.payload-type"></a>payload_type</code></em>;</span></p></td>
<td>payload type, -1 means dynamic</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-rtp-payload-info-for-name"></a><h3>gst_rtp_payload_info_for_name ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * gst_rtp_payload_info_for_name
- (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * gst_rtp_payload_info_for_name (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>);</pre>
<p>
Get the <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> for <em class="parameter"><code>media</code></em> and <em class="parameter"><code>encoding_name</code></em>. This function is
<hr>
<div class="refsect2">
<a name="gst-rtp-payload-info-for-pt"></a><h3>gst_rtp_payload_info_for_pt ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * gst_rtp_payload_info_for_pt (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> * gst_rtp_payload_info_for_pt (<em class="parameter"><code><span class="type">guint8</span> payload_type</code></em>);</pre>
<p>
Get the <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> for <em class="parameter"><code>payload_type</code></em>. This function is
mostly used to get the default clock-rate and bandwidth for static payload
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtspbase64</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="next" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
#include <gst/rtsp/gstrtspbase64.h>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-encode" title="gst_rtsp_base64_encode ()">gst_rtsp_base64_encode</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>);
+ <em class="parameter"><code><span class="type">gsize</span> len</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-decode-ip" title="gst_rtsp_base64_decode_ip ()">gst_rtsp_base64_decode_ip</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *len</code></em>);
+ <em class="parameter"><code><span class="type">gsize</span> *len</code></em>);
</pre>
</div>
<div class="refsect1">
<div class="refsect2">
<a name="gst-rtsp-base64-encode"></a><h3>gst_rtsp_base64_encode ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_base64_encode (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>);</pre>
+ <em class="parameter"><code><span class="type">gsize</span> len</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gst_rtsp_base64_encode</code> is deprecated and should not be used in newly-written code. Use <a href="http://library.gnome.org/devel/glib/unstable/glib-Base64-Encoding.html#g-base64-encode"><code class="function">g_base64_encode()</code></a></p>
<div class="refsect2">
<a name="gst-rtsp-base64-decode-ip"></a><h3>gst_rtsp_base64_decode_ip ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtsp_base64_decode_ip (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *len</code></em>);</pre>
+ <em class="parameter"><code><span class="type">gsize</span> *len</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<p><code class="literal">gst_rtsp_base64_decode_ip</code> is deprecated and should not be used in newly-written code. use <a href="http://library.gnome.org/devel/glib/unstable/glib-Base64-Encoding.html#g-base64-decode-inplace"><code class="function">g_base64_decode_inplace()</code></a> instead.</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtspconnection</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtspbase64.html" title="gstrtspbase64">
<link rel="next" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create-from-fd" title="gst_rtsp_connection_create_from_fd ()">gst_rtsp_connection_create_from_fd</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *initial_buffer</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-accept" title="gst_rtsp_connection_accept ()">gst_rtsp_connection_accept</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sock</code></em>,
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-close" title="gst_rtsp_connection_close ()">gst_rtsp_connection_close</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free" title="gst_rtsp_connection_free ()">gst_rtsp_connection_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-read" title="gst_rtsp_connection_read ()">gst_rtsp_connection_read</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-write" title="gst_rtsp_connection_write ()">gst_rtsp_connection_write</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-poll" title="gst_rtsp_connection_poll ()">gst_rtsp_connection_poll</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-message" title="gst_rtsp_watch_queue_message ()">gst_rtsp_watch_queue_message</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-data" title="gst_rtsp_watch_queue_data ()">gst_rtsp_watch_queue_data</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message" title="gst_rtsp_watch_send_message ()">gst_rtsp_watch_send_message</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" title="gst_rtsp_watch_write_data ()">gst_rtsp_watch_write_data</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);
</pre>
<a name="gst-rtsp-connection-create-from-fd"></a><h3>gst_rtsp_connection_create_from_fd ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_connection_create_from_fd (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>,
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *initial_buffer</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);</pre>
<p>
<div class="refsect2">
<a name="gst-rtsp-connection-read"></a><h3>gst_rtsp_connection_read ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_connection_read (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
<p>
<div class="refsect2">
<a name="gst-rtsp-connection-write"></a><h3>gst_rtsp_connection_write ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_connection_write (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
<p>
<div class="refsect2">
<a name="gst-rtsp-watch-queue-data"></a><h3>gst_rtsp_watch_queue_data ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_rtsp_watch_queue_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Warning</h3>
<div class="refsect2">
<a name="gst-rtsp-watch-write-data"></a><h3>gst_rtsp_watch_write_data ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_watch_write_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);</pre>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtspdefs</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtspconnection.html" title="gstrtspconnection">
<link rel="next" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
#define <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS" title="GST_RTSP_CHECK()">GST_RTSP_CHECK</a> (stmt,
label)
+#define <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS" title="GST_RTSP_AUTH_MAX">GST_RTSP_AUTH_MAX</a>
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent" title="enum GstRTSPEvent">GstRTSPEvent</a>;
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult">GstRTSPResult</a>;
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPFamily" title="enum GstRTSPFamily">GstRTSPFamily</a>;
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion">GstRTSPVersion</a>;
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod">GstRTSPMethod</a>;
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod" title="enum GstRTSPAuthMethod">GstRTSPAuthMethod</a>;
-#define <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS" title="GST_RTSP_AUTH_MAX">GST_RTSP_AUTH_MAX</a>
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField">GstRTSPHeaderField</a>;
enum <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode">GstRTSPStatusCode</a>;
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult" title="gst_rtsp_strresult ()">gst_rtsp_strresult</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text" title="gst_rtsp_method_as_text ()">gst_rtsp_method_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text" title="gst_rtsp_version_as_text ()">gst_rtsp_version_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-as-text" title="gst_rtsp_header_as_text ()">gst_rtsp_header_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult" title="gst_rtsp_strresult ()">gst_rtsp_strresult</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text" title="gst_rtsp_method_as_text ()">gst_rtsp_method_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text" title="gst_rtsp_version_as_text ()">gst_rtsp_version_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-as-text" title="gst_rtsp_header_as_text ()">gst_rtsp_header_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple" title="gst_rtsp_header_allow_multiple ()">gst_rtsp_header_allow_multiple</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text" title="gst_rtsp_status_as_text ()">gst_rtsp_status_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()">gst_rtsp_options_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text" title="gst_rtsp_status_as_text ()">gst_rtsp_status_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()">gst_rtsp_options_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="returnvalue">GstRTSPHeaderField</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field" title="gst_rtsp_find_header_field ()">gst_rtsp_find_header_field</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method" title="gst_rtsp_find_method ()">gst_rtsp_find_method</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method</code></em>);
</pre>
</div>
<hr>
<div class="refsect2">
+<a name="GST-RTSP-AUTH-MAX:CAPS"></a><h3>GST_RTSP_AUTH_MAX</h3>
+<pre class="programlisting">#define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST
+</pre>
+<p>
+Strongest available authentication method
+</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="GstRTSPEvent"></a><h3>enum GstRTSPEvent</h3>
<pre class="programlisting">typedef enum {
GST_RTSP_EV_READ = (1 << 0),
</div>
<hr>
<div class="refsect2">
-<a name="GST-RTSP-AUTH-MAX:CAPS"></a><h3>GST_RTSP_AUTH_MAX</h3>
-<pre class="programlisting">#define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST
-</pre>
-<p>
-Strongest available authentication method
-</p>
-</div>
-<hr>
-<div class="refsect2">
<a name="GstRTSPHeaderField"></a><h3>enum GstRTSPHeaderField</h3>
<pre class="programlisting">typedef enum {
- GST_RTSP_HDR_INVALID,
-
- /*
- * R = Request
- * r = response
- * g = general
- * e = entity
- */
- GST_RTSP_HDR_ACCEPT, /* Accept R opt. entity */
- GST_RTSP_HDR_ACCEPT_ENCODING, /* Accept-Encoding R opt. entity */
- GST_RTSP_HDR_ACCEPT_LANGUAGE, /* Accept-Language R opt. all */
- GST_RTSP_HDR_ALLOW, /* Allow r opt. all */
- GST_RTSP_HDR_AUTHORIZATION, /* Authorization R opt. all */
- GST_RTSP_HDR_BANDWIDTH, /* Bandwidth R opt. all */
- GST_RTSP_HDR_BLOCKSIZE, /* Blocksize R opt. all but OPTIONS, TEARDOWN */
- GST_RTSP_HDR_CACHE_CONTROL, /* Cache-Control g opt. SETUP */
- GST_RTSP_HDR_CONFERENCE, /* Conference R opt. SETUP */
- GST_RTSP_HDR_CONNECTION, /* Connection g req. all */
- GST_RTSP_HDR_CONTENT_BASE, /* Content-Base e opt. entity */
- GST_RTSP_HDR_CONTENT_ENCODING, /* Content-Encoding e req. SET_PARAMETER, DESCRIBE, ANNOUNCE */
- GST_RTSP_HDR_CONTENT_LANGUAGE, /* Content-Language e req. DESCRIBE, ANNOUNCE */
- GST_RTSP_HDR_CONTENT_LENGTH, /* Content-Length e req. SET_PARAMETER, ANNOUNCE, entity */
- GST_RTSP_HDR_CONTENT_LOCATION, /* Content-Location e opt. entity */
- GST_RTSP_HDR_CONTENT_TYPE, /* Content-Type e req. SET_PARAMETER, ANNOUNCE, entity */
- GST_RTSP_HDR_CSEQ, /* CSeq g req. all */
- GST_RTSP_HDR_DATE, /* Date g opt. all */
- GST_RTSP_HDR_EXPIRES, /* Expires e opt. DESCRIBE, ANNOUNCE */
- GST_RTSP_HDR_FROM, /* From R opt. all */
- GST_RTSP_HDR_IF_MODIFIED_SINCE, /* If-Modified-Since R opt. DESCRIBE, SETUP */
- GST_RTSP_HDR_LAST_MODIFIED, /* Last-Modified e opt. entity */
- GST_RTSP_HDR_PROXY_AUTHENTICATE, /* Proxy-Authenticate */
- GST_RTSP_HDR_PROXY_REQUIRE, /* Proxy-Require R req. all */
- GST_RTSP_HDR_PUBLIC, /* Public r opt. all */
- GST_RTSP_HDR_RANGE, /* Range Rr opt. PLAY, PAUSE, RECORD */
- GST_RTSP_HDR_REFERER, /* Referer R opt. all */
- GST_RTSP_HDR_REQUIRE, /* Require R req. all */
- GST_RTSP_HDR_RETRY_AFTER, /* Retry-After r opt. all */
- GST_RTSP_HDR_RTP_INFO, /* RTP-Info r req. PLAY */
- GST_RTSP_HDR_SCALE, /* Scale Rr opt. PLAY, RECORD */
- GST_RTSP_HDR_SESSION, /* Session Rr req. all but SETUP, OPTIONS */
- GST_RTSP_HDR_SERVER, /* Server r opt. all */
- GST_RTSP_HDR_SPEED, /* Speed Rr opt. PLAY */
- GST_RTSP_HDR_TRANSPORT, /* Transport Rr req. SETUP */
- GST_RTSP_HDR_UNSUPPORTED, /* Unsupported r req. all */
- GST_RTSP_HDR_USER_AGENT, /* User-Agent R opt. all */
- GST_RTSP_HDR_VIA, /* Via g opt. all */
- GST_RTSP_HDR_WWW_AUTHENTICATE, /* WWW-Authenticate r opt. all */
-
- /* Real extensions */
- GST_RTSP_HDR_CLIENT_CHALLENGE, /* ClientChallenge */
- GST_RTSP_HDR_REAL_CHALLENGE1, /* RealChallenge1 */
- GST_RTSP_HDR_REAL_CHALLENGE2, /* RealChallenge2 */
- GST_RTSP_HDR_REAL_CHALLENGE3, /* RealChallenge3 */
- GST_RTSP_HDR_SUBSCRIBE, /* Subscribe */
- GST_RTSP_HDR_ALERT, /* Alert */
- GST_RTSP_HDR_CLIENT_ID, /* ClientID */
- GST_RTSP_HDR_COMPANY_ID, /* CompanyID */
- GST_RTSP_HDR_GUID, /* GUID */
- GST_RTSP_HDR_REGION_DATA, /* RegionData */
- GST_RTSP_HDR_MAX_ASM_WIDTH, /* SupportsMaximumASMBandwidth */
- GST_RTSP_HDR_LANGUAGE, /* Language */
- GST_RTSP_HDR_PLAYER_START_TIME, /* PlayerStarttime */
-
- /* Since 0.10.16 */
- GST_RTSP_HDR_LOCATION, /* Location */
-
- /* Since 0.10.23 */
- GST_RTSP_HDR_ETAG, /* ETag */
- GST_RTSP_HDR_IF_MATCH, /* If-Match */
-
- /* WM extensions [MS-RTSP] Since 0.10.23 */
- GST_RTSP_HDR_ACCEPT_CHARSET, /* Accept-Charset */
- GST_RTSP_HDR_SUPPORTED, /* Supported */
- GST_RTSP_HDR_VARY, /* Vary */
- GST_RTSP_HDR_X_ACCELERATE_STREAMING, /* X-Accelerate-Streaming */
- GST_RTSP_HDR_X_ACCEPT_AUTHENT, /* X-Accept-Authentication */
- GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT, /* X-Accept-Proxy-Authentication */
- GST_RTSP_HDR_X_BROADCAST_ID, /* X-Broadcast-Id */
- GST_RTSP_HDR_X_BURST_STREAMING, /* X-Burst-Streaming */
- GST_RTSP_HDR_X_NOTICE, /* X-Notice */
- GST_RTSP_HDR_X_PLAYER_LAG_TIME, /* X-Player-Lag-Time */
- GST_RTSP_HDR_X_PLAYLIST, /* X-Playlist */
- GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE, /* X-Playlist-Change-Notice */
- GST_RTSP_HDR_X_PLAYLIST_GEN_ID, /* X-Playlist-Gen-Id */
- GST_RTSP_HDR_X_PLAYLIST_SEEK_ID, /* X-Playlist-Seek-Id */
- GST_RTSP_HDR_X_PROXY_CLIENT_AGENT, /* X-Proxy-Client-Agent */
- GST_RTSP_HDR_X_PROXY_CLIENT_VERB, /* X-Proxy-Client-Verb */
- GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE, /* X-Receding-PlaylistChange */
- GST_RTSP_HDR_X_RTP_INFO, /* X-RTP-Info */
- GST_RTSP_HDR_X_STARTUPPROFILE, /* X-StartupProfile */
-
- /* Since 0.10.24 */
- GST_RTSP_HDR_TIMESTAMP, /* Timestamp */
-
- /* Since 0.10.25 */
- GST_RTSP_HDR_AUTHENTICATION_INFO, /* Authentication-Info */
- GST_RTSP_HDR_HOST, /* Host */
- GST_RTSP_HDR_PRAGMA, /* Pragma */
- GST_RTSP_HDR_X_SERVER_IP_ADDRESS, /* X-Server-IP-Address */
- GST_RTSP_HDR_X_SESSIONCOOKIE, /* X-Sessioncookie */
-
- GST_RTSP_HDR_LAST
} GstRTSPHeaderField;
</pre>
+<p>
+Enumeration of rtsp header fields.
+</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRTSPStatusCode"></a><h3>enum GstRTSPStatusCode</h3>
<pre class="programlisting">typedef enum {
- GST_RTSP_STS_INVALID = 0,
- GST_RTSP_STS_CONTINUE = 100,
- GST_RTSP_STS_OK = 200,
- GST_RTSP_STS_CREATED = 201,
- GST_RTSP_STS_LOW_ON_STORAGE = 250,
- GST_RTSP_STS_MULTIPLE_CHOICES = 300,
- GST_RTSP_STS_MOVED_PERMANENTLY = 301,
- GST_RTSP_STS_MOVE_TEMPORARILY = 302,
- GST_RTSP_STS_SEE_OTHER = 303,
- GST_RTSP_STS_NOT_MODIFIED = 304,
- GST_RTSP_STS_USE_PROXY = 305,
- GST_RTSP_STS_BAD_REQUEST = 400,
- GST_RTSP_STS_UNAUTHORIZED = 401,
- GST_RTSP_STS_PAYMENT_REQUIRED = 402,
- GST_RTSP_STS_FORBIDDEN = 403,
- GST_RTSP_STS_NOT_FOUND = 404,
- GST_RTSP_STS_METHOD_NOT_ALLOWED = 405,
- GST_RTSP_STS_NOT_ACCEPTABLE = 406,
- GST_RTSP_STS_PROXY_AUTH_REQUIRED = 407,
- GST_RTSP_STS_REQUEST_TIMEOUT = 408,
- GST_RTSP_STS_GONE = 410,
- GST_RTSP_STS_LENGTH_REQUIRED = 411,
- GST_RTSP_STS_PRECONDITION_FAILED = 412,
- GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE = 413,
- GST_RTSP_STS_REQUEST_URI_TOO_LARGE = 414,
- GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE = 415,
- GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD = 451,
- GST_RTSP_STS_CONFERENCE_NOT_FOUND = 452,
- GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH = 453,
- GST_RTSP_STS_SESSION_NOT_FOUND = 454,
- GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE = 455,
- GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE = 456,
- GST_RTSP_STS_INVALID_RANGE = 457,
- GST_RTSP_STS_PARAMETER_IS_READONLY = 458,
- GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED = 459,
- GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED = 460,
- GST_RTSP_STS_UNSUPPORTED_TRANSPORT = 461,
- GST_RTSP_STS_DESTINATION_UNREACHABLE = 462,
- GST_RTSP_STS_INTERNAL_SERVER_ERROR = 500,
- GST_RTSP_STS_NOT_IMPLEMENTED = 501,
- GST_RTSP_STS_BAD_GATEWAY = 502,
- GST_RTSP_STS_SERVICE_UNAVAILABLE = 503,
- GST_RTSP_STS_GATEWAY_TIMEOUT = 504,
- GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED = 505,
- GST_RTSP_STS_OPTION_NOT_SUPPORTED = 551
} GstRTSPStatusCode;
</pre>
+<p>
+Enumeration of rtsp status codes.
+</p>
</div>
<hr>
<div class="refsect2">
<a name="gst-rtsp-strresult"></a><h3>gst_rtsp_strresult ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_strresult (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_strresult (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);</pre>
<p>
Convert <em class="parameter"><code>result</code></em> in a human readable string.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtsp-method-as-text"></a><h3>gst_rtsp_method_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_method_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_method_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);</pre>
<p>
Convert <em class="parameter"><code>method</code></em> to a string.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtsp-version-as-text"></a><h3>gst_rtsp_version_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_version_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_version_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);</pre>
<p>
Convert <em class="parameter"><code>version</code></em> to a string.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtsp-header-as-text"></a><h3>gst_rtsp_header_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_header_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_header_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
<p>
Convert <em class="parameter"><code>field</code></em> to a string.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtsp-status-as-text"></a><h3>gst_rtsp_status_as_text ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_status_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_status_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);</pre>
<p>
Convert <em class="parameter"><code>code</code></em> to a string.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtsp-options-as-text"></a><h3>gst_rtsp_options_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_options_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_options_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);</pre>
<p>
Convert <em class="parameter"><code>options</code></em> to a string.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtspextension</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtspdefs.html" title="gstrtspdefs">
<link rel="next" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp11962528"></a><p>
+<a name="idp11883136"></a><p>
This interface is implemented e.g. by the Windows Media Streaming RTSP
exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtspmessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtspextension.html" title="gstrtspextension">
<link rel="next" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **reason</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> *version</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-data" title="gst_rtsp_message_new_data ()">gst_rtsp_message_new_data</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-data" title="gst_rtsp_message_init_data ()">gst_rtsp_message_init_data</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-data" title="gst_rtsp_message_parse_data ()">gst_rtsp_message_parse_data</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel</code></em>);
+ <em class="parameter"><code><span class="type">guint8</span> *channel</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header" title="gst_rtsp_message_add_header ()">gst_rtsp_message_add_header</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers" title="gst_rtsp_message_append_headers ()">gst_rtsp_message_append_headers</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Strings.html#GString"><span class="type">GString</span></a> *str</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body" title="gst_rtsp_message_set_body ()">gst_rtsp_message_set_body</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-body" title="gst_rtsp_message_take_body ()">gst_rtsp_message_take_body</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-body" title="gst_rtsp_message_get_body ()">gst_rtsp_message_get_body</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-steal-body" title="gst_rtsp_message_steal_body ()">gst_rtsp_message_steal_body</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-dump" title="gst_rtsp_message_dump ()">gst_rtsp_message_dump</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>);
</pre>
<a name="gst-plugins-base-libs-gstrtspmessage.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstRTSPMsgType"></a><h3>enum GstRTSPMsgType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_RTSP_MESSAGE_INVALID,
GST_RTSP_MESSAGE_REQUEST,
GST_RTSP_MESSAGE_RESPONSE,
struct {
guint8 channel;
} data;
+ } type_data;
};
</pre>
<p>
<div class="refsect2">
<a name="gst-rtsp-message-new-data"></a><h3>gst_rtsp_message_new_data ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_message_new_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);</pre>
<p>
Create a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>channel</code></em> and store the
result message in <em class="parameter"><code>msg</code></em>. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.
<div class="refsect2">
<a name="gst-rtsp-message-init-data"></a><h3>gst_rtsp_message_init_data ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_message_init_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> channel</code></em>);</pre>
<p>
Initialize a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> for <em class="parameter"><code>channel</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtsp-message-parse-data"></a><h3>gst_rtsp_message_parse_data ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_message_parse_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint8</span> *channel</code></em>);</pre>
<p>
Parse the data message <em class="parameter"><code>msg</code></em> and store the channel in <em class="parameter"><code>channel</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtsp-message-set-body"></a><h3>gst_rtsp_message_set_body ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_message_set_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<p>
Set the body of <em class="parameter"><code>msg</code></em> to a copy of <em class="parameter"><code>data</code></em>.
<div class="refsect2">
<a name="gst-rtsp-message-take-body"></a><h3>gst_rtsp_message_take_body ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_message_take_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
<p>
Set the body of <em class="parameter"><code>msg</code></em> to <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>. This method takes ownership of
<div class="refsect2">
<a name="gst-rtsp-message-get-body"></a><h3>gst_rtsp_message_get_body ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_message_get_body (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
<p>
Get the body of <em class="parameter"><code>msg</code></em>. <em class="parameter"><code>data</code></em> remains valid for as long as <em class="parameter"><code>msg</code></em> is valid and
<div class="refsect2">
<a name="gst-rtsp-message-steal-body"></a><h3>gst_rtsp_message_steal_body ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_message_steal_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
+ <em class="parameter"><code><span class="type">guint8</span> **data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
<p>
Take the body of <em class="parameter"><code>msg</code></em> and store it in <em class="parameter"><code>data</code></em> and <em class="parameter"><code>size</code></em>. After this method,
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtsprange</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtspmessage.html" title="gstrtspmessage">
<link rel="next" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a name="gst-plugins-base-libs-gstrtsprange.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstRTSPRangeUnit"></a><h3>enum GstRTSPRangeUnit</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_RTSP_RANGE_SMPTE,
GST_RTSP_RANGE_SMPTE_30_DROP,
GST_RTSP_RANGE_SMPTE_25,
<a name="gst-rtsp-range-free"></a><h3>gst_rtsp_range_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_rtsp_range_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);</pre>
<p>
-Free the memory alocated by <em class="parameter"><code>range</code></em>.
+Free the memory allocated by <em class="parameter"><code>range</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtsptransport</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtsprange.html" title="gstrtsprange">
<link rel="next" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-init" title="gst_rtsp_transport_init ()">gst_rtsp_transport_init</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-parse" title="gst_rtsp_transport_parse ()">gst_rtsp_transport_parse</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text" title="gst_rtsp_transport_as_text ()">gst_rtsp_transport_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text" title="gst_rtsp_transport_as_text ()">gst_rtsp_transport_as_text</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime" title="gst_rtsp_transport_get_mime ()">gst_rtsp_transport_get_mime</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **mime</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-manager" title="gst_rtsp_transport_get_manager ()">gst_rtsp_transport_get_manager</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</code></em>,
<hr>
<div class="refsect2">
<a name="gst-rtsp-transport-as-text"></a><h3>gst_rtsp_transport_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_transport_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_transport_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
<p>
Convert <em class="parameter"><code>transport</code></em> into a string that can be used to signal the transport in
an RTSP SETUP response.
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **manager</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> option</code></em>);</pre>
<p>
-Get the <span class="type">GStreamer</span> element that can handle the buffers transported over
-<em class="parameter"><code>trans</code></em>.
+Get the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> that can handle the buffers transported over <em class="parameter"><code>trans</code></em>.
</p>
<p>
It is possible that there are several managers available, use <em class="parameter"><code>option</code></em> to
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstrtspurl</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-rtsp.html" title="RTSP Library">
<link rel="prev" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">
<link rel="next" href="gstreamer-sdp.html" title="SDP Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
struct <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl">GstRTSPUrl</a>;
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-parse" title="gst_rtsp_url_parse ()">gst_rtsp_url_parse</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *urlstr</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> **url</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-copy" title="gst_rtsp_url_copy ()">gst_rtsp_url_copy</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-copy" title="gst_rtsp_url_copy ()">gst_rtsp_url_copy</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free" title="gst_rtsp_url_free ()">gst_rtsp_url_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-request-uri" title="gst_rtsp_url_get_request_uri ()">gst_rtsp_url_get_request_uri</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-request-uri" title="gst_rtsp_url_get_request_uri ()">gst_rtsp_url_get_request_uri</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port" title="gst_rtsp_url_set_port ()">gst_rtsp_url_set_port</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);
<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port" title="gst_rtsp_url_get_port ()">gst_rtsp_url_get_port</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components" title="gst_rtsp_url_decode_path_components ()">gst_rtsp_url_decode_path_components</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);
</pre>
</div>
<td>the host</td>
</tr>
<tr>
-<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GstRTSPUrl.port"></a>port</code></em>;</span></p></td>
+<td><p><span class="term"><span class="type">guint16</span> <em class="structfield"><code><a name="GstRTSPUrl.port"></a>port</code></em>;</span></p></td>
<td>the port</td>
</tr>
<tr>
<hr>
<div class="refsect2">
<a name="gst-rtsp-url-copy"></a><h3>gst_rtsp_url_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> * gst_rtsp_url_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> * gst_rtsp_url_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
<p>
Make a copy of <em class="parameter"><code>url</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-rtsp-url-get-request-uri"></a><h3>gst_rtsp_url_get_request_uri ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_url_get_request_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_rtsp_url_get_request_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
<p>
Get a newly allocated string describing the request URI for <em class="parameter"><code>url</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtsp-url-set-port"></a><h3>gst_rtsp_url_set_port ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_url_set_port (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint16</span> port</code></em>);</pre>
<p>
Set the port number in <em class="parameter"><code>url</code></em> to <em class="parameter"><code>port</code></em>.
</p>
<div class="refsect2">
<a name="gst-rtsp-url-get-port"></a><h3>gst_rtsp_url_get_port ()</h3>
<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a> gst_rtsp_url_get_port (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guint16</span> *port</code></em>);</pre>
<p>
Get the port number of <em class="parameter"><code>url</code></em>.
</p>
</p>
<p>
The decoding performed by this routine is "URI decoding", as defined in RFC
-3986, commonly known as percent-decoding. For example, a string "foo<code class="literal">2fbar</code>"
-will decode to "foo/bar" -- the <code class="literal">2f</code> being replaced by the corresponding byte
+3986, commonly known as percent-decoding. For example, a string "foo%2fbar"
+will decode to "foo/bar" -- the %2f being replaced by the corresponding byte
with hex value 0x2f. Note that there is no guarantee that the resulting byte
-sequence is valid in any given encoding. As a special case, <code class="literal">00</code> is not
+sequence is valid in any given encoding. As a special case, %00 is not
unescaped to NUL, as that would prematurely terminate the string.
</p>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstsdpmessage</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-sdp.html" title="SDP Library">
<link rel="prev" href="gstreamer-sdp.html" title="SDP Library">
<link rel="next" href="gstreamer-tag.html" title="Tag Support Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init" title="gst_sdp_message_init ()">gst_sdp_message_init</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-uninit" title="gst_sdp_message_uninit ()">gst_sdp_message_uninit</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-free" title="gst_sdp_message_free ()">gst_sdp_message_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-buffer" title="gst_sdp_message_parse_buffer ()">gst_sdp_message_parse_buffer</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-buffer" title="gst_sdp_message_parse_buffer ()">gst_sdp_message_parse_buffer</a> (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-text" title="gst_sdp_message_as_text ()">gst_sdp_message_as_text</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-text" title="gst_sdp_message_as_text ()">gst_sdp_message_as_text</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-uri" title="gst_sdp_message_parse_uri ()">gst_sdp_message_parse_uri</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-uri" title="gst_sdp_message_as_uri ()">gst_sdp_message_as_uri</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-uri" title="gst_sdp_message_as_uri ()">gst_sdp_message_as_uri</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-address-is-multicast" title="gst_sdp_address_is_multicast ()">gst_sdp_address_is_multicast</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-version" title="gst_sdp_message_get_version ()">gst_sdp_message_get_version</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-version" title="gst_sdp_message_get_version ()">gst_sdp_message_get_version</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-version" title="gst_sdp_message_set_version ()">gst_sdp_message_set_version</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *version</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-origin" title="gst_sdp_message_get_origin ()">gst_sdp_message_get_origin</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-origin" title="gst_sdp_message_get_origin ()">gst_sdp_message_get_origin</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-origin" title="gst_sdp_message_set_origin ()">gst_sdp_message_set_origin</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *username</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *sess_id</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-session-name" title="gst_sdp_message_get_session_name ()">gst_sdp_message_get_session_name</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-session-name" title="gst_sdp_message_get_session_name ()">gst_sdp_message_get_session_name</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-session-name" title="gst_sdp_message_set_session_name ()">gst_sdp_message_set_session_name</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *session_name</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-information" title="gst_sdp_message_get_information ()">gst_sdp_message_get_information</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-information" title="gst_sdp_message_get_information ()">gst_sdp_message_get_information</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-information" title="gst_sdp_message_set_information ()">gst_sdp_message_set_information</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-uri" title="gst_sdp_message_get_uri ()">gst_sdp_message_get_uri</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-uri" title="gst_sdp_message_get_uri ()">gst_sdp_message_get_uri</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-uri" title="gst_sdp_message_set_uri ()">gst_sdp_message_set_uri</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len" title="gst_sdp_message_emails_len ()">gst_sdp_message_emails_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email" title="gst_sdp_message_get_email ()">gst_sdp_message_get_email</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email" title="gst_sdp_message_get_email ()">gst_sdp_message_get_email</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email" title="gst_sdp_message_add_email ()">gst_sdp_message_add_email</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len" title="gst_sdp_message_phones_len ()">gst_sdp_message_phones_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone" title="gst_sdp_message_get_phone ()">gst_sdp_message_get_phone</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone" title="gst_sdp_message_get_phone ()">gst_sdp_message_get_phone</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone" title="gst_sdp_message_add_phone ()">gst_sdp_message_add_phone</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection" title="gst_sdp_message_get_connection ()">gst_sdp_message_get_connection</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection" title="gst_sdp_message_get_connection ()">gst_sdp_message_get_connection</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection" title="gst_sdp_message_set_connection ()">gst_sdp_message_set_connection</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len" title="gst_sdp_message_bandwidths_len ()">gst_sdp_message_bandwidths_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth" title="gst_sdp_message_get_bandwidth ()">gst_sdp_message_get_bandwidth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth" title="gst_sdp_message_get_bandwidth ()">gst_sdp_message_get_bandwidth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth" title="gst_sdp_message_add_bandwidth ()">gst_sdp_message_add_bandwidth</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len" title="gst_sdp_message_times_len ()">gst_sdp_message_times_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time" title="gst_sdp_message_get_time ()">gst_sdp_message_get_time</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time" title="gst_sdp_message_get_time ()">gst_sdp_message_get_time</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time" title="gst_sdp_message_add_time ()">gst_sdp_message_add_time</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len" title="gst_sdp_message_zones_len ()">gst_sdp_message_zones_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone" title="gst_sdp_message_get_zone ()">gst_sdp_message_get_zone</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone" title="gst_sdp_message_get_zone ()">gst_sdp_message_get_zone</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone" title="gst_sdp_message_add_zone ()">gst_sdp_message_add_zone</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key" title="gst_sdp_message_get_key ()">gst_sdp_message_get_key</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key" title="gst_sdp_message_get_key ()">gst_sdp_message_get_key</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-key" title="gst_sdp_message_set_key ()">gst_sdp_message_set_key</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-len" title="gst_sdp_message_attributes_len ()">gst_sdp_message_attributes_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute" title="gst_sdp_message_get_attribute ()">gst_sdp_message_get_attribute</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute" title="gst_sdp_message_get_attribute ()">gst_sdp_message_get_attribute</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val" title="gst_sdp_message_get_attribute_val ()">gst_sdp_message_get_attribute_val</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val" title="gst_sdp_message_get_attribute_val ()">gst_sdp_message_get_attribute_val</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n" title="gst_sdp_message_get_attribute_val_n ()">gst_sdp_message_get_attribute_val_n</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n" title="gst_sdp_message_get_attribute_val_n ()">gst_sdp_message_get_attribute_val_n</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute" title="gst_sdp_message_add_attribute ()">gst_sdp_message_add_attribute</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len" title="gst_sdp_message_medias_len ()">gst_sdp_message_medias_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media" title="gst_sdp_message_get_media ()">gst_sdp_message_get_media</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media" title="gst_sdp_message_get_media ()">gst_sdp_message_get_media</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-media" title="gst_sdp_message_add_media ()">gst_sdp_message_add_media</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()">gst_sdp_media_init</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit" title="gst_sdp_media_uninit ()">gst_sdp_media_uninit</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free" title="gst_sdp_media_free ()">gst_sdp_media_free</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media" title="gst_sdp_media_get_media ()">gst_sdp_media_get_media</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media" title="gst_sdp_media_get_media ()">gst_sdp_media_get_media</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media" title="gst_sdp_media_set_media ()">gst_sdp_media_set_media</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *med</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-port" title="gst_sdp_media_get_port ()">gst_sdp_media_get_port</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-port-info" title="gst_sdp_media_set_port_info ()">gst_sdp_media_set_port_info</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> num_ports</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-proto" title="gst_sdp_media_get_proto ()">gst_sdp_media_get_proto</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-proto" title="gst_sdp_media_get_proto ()">gst_sdp_media_get_proto</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-proto" title="gst_sdp_media_set_proto ()">gst_sdp_media_set_proto</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *proto</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len" title="gst_sdp_media_formats_len ()">gst_sdp_media_formats_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format" title="gst_sdp_media_get_format ()">gst_sdp_media_get_format</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format" title="gst_sdp_media_get_format ()">gst_sdp_media_get_format</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format" title="gst_sdp_media_add_format ()">gst_sdp_media_add_format</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information" title="gst_sdp_media_get_information ()">gst_sdp_media_get_information</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information" title="gst_sdp_media_get_information ()">gst_sdp_media_get_information</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information" title="gst_sdp_media_set_information ()">gst_sdp_media_set_information</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len" title="gst_sdp_media_connections_len ()">gst_sdp_media_connections_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection" title="gst_sdp_media_get_connection ()">gst_sdp_media_get_connection</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection" title="gst_sdp_media_get_connection ()">gst_sdp_media_get_connection</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection" title="gst_sdp_media_add_connection ()">gst_sdp_media_add_connection</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len" title="gst_sdp_media_bandwidths_len ()">gst_sdp_media_bandwidths_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth" title="gst_sdp_media_get_bandwidth ()">gst_sdp_media_get_bandwidth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth" title="gst_sdp_media_get_bandwidth ()">gst_sdp_media_get_bandwidth</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth" title="gst_sdp_media_add_bandwidth ()">gst_sdp_media_add_bandwidth</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key" title="gst_sdp_media_get_key ()">gst_sdp_media_get_key</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key" title="gst_sdp_media_get_key ()">gst_sdp_media_get_key</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-key" title="gst_sdp_media_set_key ()">gst_sdp_media_set_key</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-len" title="gst_sdp_media_attributes_len ()">gst_sdp_media_attributes_len</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
-const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute" title="gst_sdp_media_get_attribute ()">gst_sdp_media_get_attribute</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute" title="gst_sdp_media_get_attribute ()">gst_sdp_media_get_attribute</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val" title="gst_sdp_media_get_attribute_val ()">gst_sdp_media_get_attribute_val</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val" title="gst_sdp_media_get_attribute_val ()">gst_sdp_media_get_attribute_val</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);
-const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n" title="gst_sdp_media_get_attribute_val_n ()">gst_sdp_media_get_attribute_val_n</a>
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n" title="gst_sdp_media_get_attribute_val_n ()">gst_sdp_media_get_attribute_val_n</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);
<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute" title="gst_sdp_media_add_attribute ()">gst_sdp_media_add_attribute</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text" title="gst_sdp_media_as_text ()">gst_sdp_media_as_text</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text" title="gst_sdp_media_as_text ()">gst_sdp_media_as_text</a> (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp25276480"></a><p>
+<a name="idp26359712"></a><p>
The GstSDPMessage helper functions makes it easy to parse and create SDP
messages.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-parse-buffer"></a><h3>gst_sdp_message_parse_buffer ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> gst_sdp_message_parse_buffer (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a> gst_sdp_message_parse_buffer (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-as-text"></a><h3>gst_sdp_message_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Convert the contents of <em class="parameter"><code>msg</code></em> to a text string.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-as-uri"></a><h3>gst_sdp_message_as_uri ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_as_uri (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_as_uri (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Creates a uri from <em class="parameter"><code>msg</code></em> with the given <em class="parameter"><code>scheme</code></em>. The uri has the format:
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-version"></a><h3>gst_sdp_message_get_version ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_version (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_version (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Get the version in <em class="parameter"><code>msg</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-origin"></a><h3>gst_sdp_message_get_origin ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> * gst_sdp_message_get_origin (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> * gst_sdp_message_get_origin (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Get the origin of <em class="parameter"><code>msg</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-session-name"></a><h3>gst_sdp_message_get_session_name ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_session_name
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_session_name (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Get the session name in <em class="parameter"><code>msg</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-information"></a><h3>gst_sdp_message_get_information ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_information
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Get the information in <em class="parameter"><code>msg</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-uri"></a><h3>gst_sdp_message_get_uri ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Get the URI in <em class="parameter"><code>msg</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-email"></a><h3>gst_sdp_message_get_email ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_email (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_email (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the email with number <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-phone"></a><h3>gst_sdp_message_get_phone ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_phone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_phone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the phone with number <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-connection"></a><h3>gst_sdp_message_get_connection ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * gst_sdp_message_get_connection
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * gst_sdp_message_get_connection (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Get the connection of <em class="parameter"><code>msg</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-bandwidth"></a><h3>gst_sdp_message_get_bandwidth ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * gst_sdp_message_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * gst_sdp_message_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the bandwidth at index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-time"></a><h3>gst_sdp_message_get_time ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> * gst_sdp_message_get_time (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> * gst_sdp_message_get_time (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get time information with index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-zone"></a><h3>gst_sdp_message_get_zone ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> * gst_sdp_message_get_zone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> * gst_sdp_message_get_zone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get time zone information with index <em class="parameter"><code>idx</code></em> from <em class="parameter"><code>msg</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-key"></a><h3>gst_sdp_message_get_key ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * gst_sdp_message_get_key (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * gst_sdp_message_get_key (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
<p>
Get the encryption information from <em class="parameter"><code>msg</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-attribute"></a><h3>gst_sdp_message_get_attribute ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * gst_sdp_message_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * gst_sdp_message_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the attribute at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>msg</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-attribute-val"></a><h3>gst_sdp_message_get_attribute_val ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_attribute_val
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_attribute_val (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
<p>
Get the first attribute with key <em class="parameter"><code>key</code></em> in <em class="parameter"><code>msg</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-attribute-val-n"></a><h3>gst_sdp_message_get_attribute_val_n ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_attribute_val_n
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_message_get_attribute_val_n (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
<p>
<hr>
<div class="refsect2">
<a name="gst-sdp-message-get-media"></a><h3>gst_sdp_message_get_media ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> * gst_sdp_message_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> * gst_sdp_message_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the media description at index <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>msg</code></em>.
<p>
Adds <em class="parameter"><code>media</code></em> to the array of medias in <em class="parameter"><code>msg</code></em>. This function takes ownership of
the contents of <em class="parameter"><code>media</code></em> so that <em class="parameter"><code>media</code></em> will have to be reinitialized with
-<code class="function">gst_media_init()</code> before it can be used again.
+<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a> before it can be used again.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-media"></a><h3>gst_sdp_media_get_media ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
<p>
Get the media description of <em class="parameter"><code>media</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-proto"></a><h3>gst_sdp_media_get_proto ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_proto (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_proto (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
<p>
Get the transport protocol of <em class="parameter"><code>media</code></em>
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-format"></a><h3>gst_sdp_media_get_format ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_format (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_format (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the format information at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-information"></a><h3>gst_sdp_media_get_information ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
<p>
Get the information of <em class="parameter"><code>media</code></em>
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-connection"></a><h3>gst_sdp_media_get_connection ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * gst_sdp_media_get_connection (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> * gst_sdp_media_get_connection (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the connection at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-bandwidth"></a><h3>gst_sdp_media_get_bandwidth ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * gst_sdp_media_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> * gst_sdp_media_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the bandwidth at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-key"></a><h3>gst_sdp_media_get_key ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * gst_sdp_media_get_key (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> * gst_sdp_media_get_key (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
<p>
Get the encryption information from <em class="parameter"><code>media</code></em>.
</p>
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-attribute"></a><h3>gst_sdp_media_get_attribute ()</h3>
-<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * gst_sdp_media_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> * gst_sdp_media_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
<p>
Get the attribute at position <em class="parameter"><code>idx</code></em> in <em class="parameter"><code>media</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-attribute-val"></a><h3>gst_sdp_media_get_attribute_val ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_attribute_val
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_attribute_val (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
<p>
Get the first attribute value for <em class="parameter"><code>key</code></em> in <em class="parameter"><code>media</code></em>.
<hr>
<div class="refsect2">
<a name="gst-sdp-media-get-attribute-val-n"></a><h3>gst_sdp_media_get_attribute_val_n ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_attribute_val_n
- (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_get_attribute_val_n (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
<p>
<hr>
<div class="refsect2">
<a name="gst-sdp-media-as-text"></a><h3>gst_sdp_media_as_text ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_sdp_media_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
<p>
Convert the contents of <em class="parameter"><code>media</code></em> to a text string.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gststreamvolume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstpropertyprobe.html" title="gstpropertyprobe">
<link rel="next" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp13350128"></a><p>
+<a name="idp15191264"></a><p>
This interface is implemented by elements that provide a stream volume. Examples for
such elements are <span class="type">volume</span> and <span class="type">playbin2</span>.
</p>
} GstStreamVolumeFormat;
</pre>
<p>
-Different representations of a stream volume. <code class="function">gst_stream_volume_convert()</code>
+Different representations of a stream volume. <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()"><code class="function">gst_stream_volume_convert_volume()</code></a>
allows to convert between the different representations.
</p>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
<link rel="prev" href="gstreamer-tag.html" title="Tag Support Library">
<link rel="next" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
#define <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS" title="GST_TAG_CAPTURING_FLASH_MODE">GST_TAG_CAPTURING_FLASH_MODE</a>
#define <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS" title="GST_TAG_CAPTURING_METERING_MODE">GST_TAG_CAPTURING_METERING_MODE</a>
#define <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS" title="GST_TAG_CAPTURING_SOURCE">GST_TAG_CAPTURING_SOURCE</a>
+#define <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" title="GST_TAG_CAPTURING_EXPOSURE_COMPENSATION">GST_TAG_CAPTURING_EXPOSURE_COMPENSATION</a>
#define <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS" title="GST_TAG_IMAGE_HORIZONTAL_PPI">GST_TAG_IMAGE_HORIZONTAL_PPI</a>
#define <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS" title="GST_TAG_IMAGE_VERTICAL_PPI">GST_TAG_IMAGE_VERTICAL_PPI</a>
+#define <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE">GST_TAG_ID3V2_HEADER_SIZE</a>
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags" title="gst_tag_register_musicbrainz_tags ()">gst_tag_register_musicbrainz_tags</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8" title="gst_tag_freeform_string_to_utf8 ()">gst_tag_freeform_string_to_utf8</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **lang</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> fail_if_no_key</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer" title="gst_tag_image_data_to_image_buffer ()">gst_tag_image_data_to_image_buffer</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer" title="gst_tag_image_data_to_image_buffer ()">gst_tag_image_data_to_image_buffer</a> (<em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttag.html#GstTagImageType" title="enum GstTagImageType"><span class="type">GstTagImageType</span></a> image_type</code></em>);
enum <a class="link" href="gst-plugins-base-libs-gsttag.html#GstTagImageType" title="enum GstTagImageType">GstTagImageType</a>;
<p>
</p>
<div class="refsect2">
-<a name="idp24834784"></a><p>
+<a name="idp26027584"></a><p>
Contains additional standardized GStreamer tag definitions for plugins
and applications, and functions to register them with the GStreamer
tag system.
</div>
<hr>
<div class="refsect2">
+<a name="GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS"></a><h3>GST_TAG_CAPTURING_EXPOSURE_COMPENSATION</h3>
+<pre class="programlisting">#define GST_TAG_CAPTURING_EXPOSURE_COMPENSATION "capturing-exposure-compensation"
+</pre>
+<p>
+Exposure compensation using when capturing an image in EV. (double)
+</p>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS"></a><h3>GST_TAG_IMAGE_HORIZONTAL_PPI</h3>
<pre class="programlisting">#define GST_TAG_IMAGE_HORIZONTAL_PPI "image-horizontal-ppi"
</pre>
</div>
<hr>
<div class="refsect2">
+<a name="GST-TAG-ID3V2-HEADER-SIZE:CAPS"></a><h3>GST_TAG_ID3V2_HEADER_SIZE</h3>
+<pre class="programlisting">#define GST_TAG_ID3V2_HEADER_SIZE 10
+</pre>
+<p>
+ID3V2 header size considered minimum input for some functions such as
+<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()"><code class="function">gst_tag_list_from_id3v2_tag()</code></a> and <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()"><code class="function">gst_tag_get_id3v2_tag_size()</code></a> for example.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-tag-register-musicbrainz-tags"></a><h3>gst_tag_register_musicbrainz_tags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_register_musicbrainz_tags (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
<hr>
<div class="refsect2">
<a name="gst-tag-image-data-to-image-buffer"></a><h3>gst_tag_image_data_to_image_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_image_data_to_image_buffer (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_image_data_to_image_buffer (<em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttag.html#GstTagImageType" title="enum GstTagImageType"><span class="type">GstTagImageType</span></a> image_type</code></em>);</pre>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttagdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
-<link rel="next" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="prev" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
+<link rel="next" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttagxmp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagxmpwriter.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagmux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gsttagdemux.synopsis" class="shortcut">Top</a>
<p>
</p>
<div class="refsect2">
-<a name="idp10464912"></a><h3>Deriving from GstTagDemux</h3>
+<a name="idp17345968"></a><h3>Deriving from GstTagDemux</h3>
<p>
Provides a base class for demuxing tags at the beginning or end of a
stream and handles things like typefinding, querying, seeking, and
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttagexif</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
+<link rel="next" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagid3.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagxmp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttagexif.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gsttagexif.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttagexif"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagexif.top_of_page"></a>gsttagexif</span></h2>
+<p>gsttagexif — tag mappings and support functions for plugins
+ dealing with exif tags</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttagexif.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include <gst/tag/tag.h>
+
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer" title="gst_tag_list_to_exif_buffer ()">gst_tag_list_to_exif_buffer</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header" title="gst_tag_list_to_exif_buffer_with_tiff_header ()">gst_tag_list_to_exif_buffer_with_tiff_header</a>
+ (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer" title="gst_tag_list_from_exif_buffer ()">gst_tag_list_from_exif_buffer</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header" title="gst_tag_list_from_exif_buffer_with_tiff_header ()">gst_tag_list_from_exif_buffer_with_tiff_header</a>
+ (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagexif.description"></a><h2>Description</h2>
+<p>
+Contains utility function to parse <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s from exif
+buffers and to create exif buffers from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s
+</p>
+<p>
+Note that next IFD fields on the created exif buffers are set to 0.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagexif.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-tag-list-to-exif-buffer"></a><h3>gst_tag_list_to_exif_buffer ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_list_to_exif_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);</pre>
+<p>
+Formats the tags in taglist on exif format. The resulting buffer contains
+the tags IFD and is followed by the data pointed by the tag entries.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
+<td>The taglist</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>byte_order</code></em> :</span></p></td>
+<td>byte order used in writing (G_LITTLE_ENDIAN or G_BIG_ENDIAN)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>base_offset</code></em> :</span></p></td>
+<td>Offset from the tiff header first byte</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A GstBuffer containing the tag entries followed by the tag data</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-to-exif-buffer-with-tiff-header"></a><h3>gst_tag_list_to_exif_buffer_with_tiff_header ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_list_to_exif_buffer_with_tiff_header
+ (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<p>
+Formats the tags in taglist into exif structure, a tiff header
+is put in the beginning of the buffer.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
+<td>The taglist</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A GstBuffer containing the data</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-from-exif-buffer"></a><h3>gst_tag_list_from_exif_buffer ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_from_exif_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
+ <em class="parameter"><code><span class="type">guint32</span> base_offset</code></em>);</pre>
+<p>
+Parses the IFD and IFD tags data contained in the buffer and puts it
+on a taglist. The base_offset is used to subtract from the offset in
+the tag entries and be able to get the offset relative to the buffer
+start
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>The exif buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>byte_order</code></em> :</span></p></td>
+<td>byte order of the data</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>base_offset</code></em> :</span></p></td>
+<td>Offset from the tiff header to this buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The parsed taglist</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-from-exif-buffer-with-tiff-header"></a><h3>gst_tag_list_from_exif_buffer_with_tiff_header ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_from_exif_buffer_with_tiff_header
+ (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>
+Parses the exif tags starting with a tiff header structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>The exif buffer</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The taglist</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.30</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagexif.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttagid3</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
<link rel="prev" href="gst-plugins-base-libs-gsttagvorbis.html" title="gsttagvorbis">
-<link rel="next" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttagxmp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagexif.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gsttagid3.synopsis" class="shortcut">Top</a>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count" title="gst_tag_id3_genre_count ()">gst_tag_id3_genre_count</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get" title="gst_tag_id3_genre_get ()">gst_tag_id3_genre_get</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1" title="gst_tag_list_new_from_id3v1 ()">gst_tag_list_new_from_id3v1</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1" title="gst_tag_list_new_from_id3v1 ()">gst_tag_list_new_from_id3v1</a> (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-tag" title="gst_tag_from_id3_tag ()">gst_tag_from_id3_tag</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_tag</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag" title="gst_tag_from_id3_user_tag ()">gst_tag_from_id3_user_tag</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_user_tag</code></em>);
const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag" title="gst_tag_to_id3_tag ()">gst_tag_to_id3_tag</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gst_tag</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image" title="gst_tag_list_add_id3_image ()">gst_tag_list_add_id3_image</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id3_picture_type</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()">gst_tag_get_id3v2_tag_size</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()">gst_tag_list_from_id3v2_tag</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp25099152"></a><p>
+<a name="idp24766688"></a><p>
Contains various utility functions for plugins to parse or create
ID3 tags and map ID3v2 identifiers to and from GStreamer identifiers.
</p>
<hr>
<div class="refsect2">
<a name="gst-tag-list-new-from-id3v1"></a><h3>gst_tag_list_new_from_id3v1 ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_from_id3v1 (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_from_id3v1 (<em class="parameter"><code>const <span class="type">guint8</span> *data</code></em>);</pre>
<p>
Parses the data containing an ID3v1 tag and returns a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> from the
parsed data.
<div class="refsect2">
<a name="gst-tag-list-add-id3-image"></a><h3>gst_tag_list_add_id3_image ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_tag_list_add_id3_image (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *image_data</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id3_picture_type</code></em>);</pre>
<p>
</table></div>
<p class="since">Since 0.10.20</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-id3v2-tag-size"></a><h3>gst_tag_get_id3v2_tag_size ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_tag_get_id3v2_tag_size (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>
+Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
+i.e. at least <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE"><span class="type">GST_TAG_ID3V2_HEADER_SIZE</span></a> (10) bytes;
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>buffer holding ID3v2 tag (or at least the start of one)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Size of tag, or 0 if header is invalid or too small.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-from-id3v2-tag"></a><h3>gst_tag_list_from_id3v2_tag ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_from_id3v2_tag (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>
+Creates a new tag list that contains the information parsed out of a
+ID3 tag.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
+<td>buffer to convert</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>A new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
+given vorbiscomment buffer or NULL on error.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gsttagid3.see-also"></a><h2>See Also</h2>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttaglanguagecodes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
-<link rel="next" href="gstreamer-base-utils.html" title="Base Utils Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="prev" href="gst-plugins-base-libs-gsttagmux.html" title="gsttagmux">
+<link rel="next" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttagdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagmux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gstreamer-base-utils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttaglicenses.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gsttaglanguagecodes.synopsis" class="shortcut">Top</a>
<p>
</p>
<div class="refsect2">
-<a name="idp24771488"></a><p>
+<a name="idp25117840"></a><p>
Provides helper functions to convert between the various ISO-639 language
codes, and to map language codes to language names.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttaglicenses</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
+<link rel="next" href="gstreamer-base-utils.html" title="Base Utils Library">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gstreamer-base-utils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttaglicenses.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gsttaglicenses.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttaglicenses"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttaglicenses.top_of_page"></a>gsttaglicenses</span></h2>
+<p>gsttaglicenses — utility functions for Creative Commons licenses</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttaglicenses.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include <gst/tag/tag.h>
+
+enum <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags">GstTagLicenseFlags</a>;
+<a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags"><span class="returnvalue">GstTagLicenseFlags</span></a> <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags" title="gst_tag_get_license_flags ()">gst_tag_get_license_flags</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick" title="gst_tag_get_license_nick ()">gst_tag_get_license_nick</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title" title="gst_tag_get_license_title ()">gst_tag_get_license_title</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description" title="gst_tag_get_license_description ()">gst_tag_get_license_description</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" title="gst_tag_get_license_jurisdiction ()">gst_tag_get_license_jurisdiction</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" title="gst_tag_get_license_version ()">gst_tag_get_license_version</a> (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" title="gst_tag_get_licenses ()">gst_tag_get_licenses</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttaglicenses.description"></a><h2>Description</h2>
+<p>
+Provides information about Creative Commons media licenses, which are
+often expressed in media files as a license URI in tags. Also useful
+for applications creating media files, in case the user wants to license
+the content under a Creative Commons license.
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttaglicenses.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTagLicenseFlags"></a><h3>enum GstTagLicenseFlags</h3>
+<pre class="programlisting">typedef enum {
+ GST_TAG_LICENSE_PERMITS_REPRODUCTION = (1 << 0),
+ GST_TAG_LICENSE_PERMITS_DISTRIBUTION = (1 << 1),
+ GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS = (1 << 2),
+ GST_TAG_LICENSE_PERMITS_SHARING = (1 << 3),
+
+ GST_TAG_LICENSE_REQUIRES_NOTICE = (1 << 8),
+ GST_TAG_LICENSE_REQUIRES_ATTRIBUTION = (1 << 9),
+ GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE = (1 << 10),
+ GST_TAG_LICENSE_REQUIRES_SOURCE_CODE = (1 << 11),
+ GST_TAG_LICENSE_REQUIRES_COPYLEFT = (1 << 12),
+ GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT = (1 << 13),
+
+ GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE = (1 << 16),
+ GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE = (1 << 17),
+
+ GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE = (1 << 24),
+ GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE = (1 << 25)
+} GstTagLicenseFlags;
+</pre>
+<p>
+See http://creativecommons.org/ns for more information.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_REPRODUCTION</code></span></p></td>
+<td>making multiple copies
+ is allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_DISTRIBUTION</code></span></p></td>
+<td>distribution, public display
+ and public performance are allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS</code></span></p></td>
+<td>distribution of derivative
+ works is allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PERMITS-SHARING:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PERMITS_SHARING</code></span></p></td>
+<td>commercial derivatives are allowed,
+ but only non-commercial distribution is allowed
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_NOTICE</code></span></p></td>
+<td>copyright and license notices
+ must be kept intact
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_ATTRIBUTION</code></span></p></td>
+<td>credit must be given to
+ copyright holder and/or author
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE</code></span></p></td>
+<td>derivative works must be
+ licensed under the same terms or compatible terms as the original work
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_SOURCE_CODE</code></span></p></td>
+<td>source code (the preferred
+ form for making modifications) must be provided when exercising some
+ rights granted by the license
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_COPYLEFT</code></span></p></td>
+<td>derivative and combined works
+ must be licensed under specified terms, similar to those of the original
+ work
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT</code></span></p></td>
+<td>derivative works must be
+ licensed under specified terms, with at least the same conditions as
+ the original work; combinations with the work may be licensed under
+ different terms
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE</code></span></p></td>
+<td>exercising rights for
+ commercial purposes is prohibited
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE</code></span></p></td>
+<td>use in a
+ non-developing country is prohibited
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE</code></span></p></td>
+<td>this license was created
+ by the Creative Commons project
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS"></a><span class="term"><code class="literal">GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE</code></span></p></td>
+<td>this license was
+ created by the Free Software Foundation (FSF)
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-flags"></a><h3>gst_tag_get_license_flags ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags"><span class="returnvalue">GstTagLicenseFlags</span></a> gst_tag_get_license_flags (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the flags of a license, which describe most of the features of
+a license in their most general form.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the flags of the license, or 0 if the license is unknown</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-nick"></a><h3>gst_tag_get_license_nick ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_tag_get_license_nick (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the nick name of a license, which is a short (untranslated) string
+such as e.g. "CC BY-NC-ND 2.0 UK".
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the nick name of the license, or NULL if the license is unknown</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-title"></a><h3>gst_tag_get_license_title ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_tag_get_license_title (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the title of a license, which is a short translated description
+of the license's features (generally not very pretty though).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the title of the license, or NULL if the license is unknown or
+no title is available.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-description"></a><h3>gst_tag_get_license_description ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_tag_get_license_description (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the description of a license, which is a translated description
+of the license's main features.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the description of the license, or NULL if the license is unknown
+or a description is not available.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-jurisdiction"></a><h3>gst_tag_get_license_jurisdiction ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_tag_get_license_jurisdiction (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the jurisdiction code of a license. This is usually a two-letter
+ISO 3166-1 alpha-2 code, but there is also the special case of Scotland,
+for which no code exists and which is thus represented as "scotland".
+</p>
+<p>
+Known jurisdictions: ar, at, au, be, bg, br, ca, ch, cl, cn, co, de,
+dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
+pt, scotland, se, si, tw, uk, us, za.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the jurisdiction code of the license, or NULL if the license is
+unknown or is not specific to a particular jurisdiction.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-license-version"></a><h3>gst_tag_get_license_version ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * gst_tag_get_license_version (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
+<p>
+Get the version of a license.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>license_ref</code></em> :</span></p></td>
+<td>a license reference string in form of a URI,
+e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the version of the license, or NULL if the license is not known or
+has no version</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-get-licenses"></a><h3>gst_tag_get_licenses ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** gst_tag_get_licenses (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Returns a list of known license references (in form of URIs). This is
+useful for UIs to build a list of available licenses for tagging purposes
+(e.g. to tag an audio track appropriately in a video or audio editor, or
+an image in a camera application).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>NULL-terminated array of license strings. Free with <a href="http://library.gnome.org/devel/glib/unstable/glib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a>
+when no longer needed.</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttaglicenses.see-also"></a><h2>See Also</h2>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttagmux</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
+<link rel="next" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagdemux.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttagmux.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gsttagmux.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttagmux"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagmux.top_of_page"></a>gsttagmux</span></h2>
+<p>gsttagmux — Base class for adding tags that are in one single chunk
+ directly at the beginning or at the end of a file</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttagmux.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include <gst/tag/gsttagmux.h>
+
+struct <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux">GstTagMux</a>;
+struct <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass">GstTagMuxClass</a>;
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagmux.description"></a><h2>Description</h2>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp15390752"></a><h3>Deriving from GstTagMux</h3>
+<p>
+Provides a base class for adding tags at the beginning or end of a
+stream.
+</p>
+<p>
+Subclasses have to do the following things:
+</p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem"><p>
+ In their base init function, they must add pad templates for the sink
+ pad and the source pad to the element class, describing the media type
+ they accept and output in the caps of the pad template.
+ </p></li>
+<li class="listitem"><p>
+ In their class init function, they must override the
+ GST_TAG_MUX_CLASS(mux_klass)->render_start_tag and/or
+ GST_TAG_MUX_CLASS(mux_klass)->render_end_tag vfuncs and set up a render
+ function.
+ </p></li>
+</ul></div>
+<p>
+</p>
+</div>
+<p>
+</p>
+<p>
+Since 0.10.36
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagmux.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstTagMux"></a><h3>struct GstTagMux</h3>
+<pre class="programlisting">struct GstTagMux {
+ GstElement element;
+};
+</pre>
+<p>
+Opaque <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux"><span class="type">GstTagMux</span></a> structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstTagMux.element"></a>element</code></em>;</span></p></td>
+<td>parent element</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTagMuxClass"></a><h3>struct GstTagMuxClass</h3>
+<pre class="programlisting">struct GstTagMuxClass {
+ GstElementClass parent_class;
+
+ /* vfuncs */
+ GstBuffer * (*render_start_tag) (GstTagMux * mux, const GstTagList * tag_list);
+ GstBuffer * (*render_end_tag) (GstTagMux * mux, const GstTagList * tag_list);
+};
+</pre>
+<p>
+The <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass"><span class="type">GstTagMuxClass</span></a> structure. Subclasses need to override at least one
+of the two render vfuncs.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstTagMuxClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTagMuxClass.render-start-tag"></a>render_start_tag</code></em> ()</span></p></td>
+<td>create a tag buffer to add to the beginning of the
+input stream given a tag list, or NULL</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTagMuxClass.render-end-tag"></a>render_end_tag</code></em> ()</span></p></td>
+<td>create a tag buffer to add to the end of the
+input stream given a tag list, or NULL</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagmux.see-also"></a><h2>See Also</h2>
+GstApeMux, GstId3Mux
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttagvorbis</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
<link rel="prev" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
<link rel="next" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add" title="gst_vorbis_tag_add ()">gst_vorbis_tag_add</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments" title="gst_tag_to_vorbis_comments ()">gst_tag_to_vorbis_comments</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments" title="gst_tag_to_vorbis_comments ()">gst_tag_to_vorbis_comments</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer" title="gst_tag_list_from_vorbiscomment_buffer ()">gst_tag_list_from_vorbiscomment_buffer</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer" title="gst_tag_list_from_vorbiscomment_buffer ()">gst_tag_list_from_vorbiscomment_buffer</a>
(<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer" title="gst_tag_list_to_vorbiscomment_buffer ()">gst_tag_list_to_vorbiscomment_buffer</a>
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer" title="gst_tag_list_to_vorbiscomment_buffer ()">gst_tag_list_to_vorbiscomment_buffer</a>
(<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vendor_string</code></em>);
</pre>
<p>
</p>
<div class="refsect2">
-<a name="idp24832896"></a><p>
+<a name="idp24787424"></a><p>
Contains various utility functions for plugins to parse or create
vorbiscomments and map them to and from <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a>s.
</p>
<hr>
<div class="refsect2">
<a name="gst-tag-to-vorbis-comments"></a><h3>gst_tag_to_vorbis_comments ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_tag_to_vorbis_comments (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> * gst_tag_to_vorbis_comments (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
<p>
Creates a new tag list that contains the information parsed out of a
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allowcated key=value strings. Free with
+<td>A <a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allocated key=value strings. Free with
g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)</td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="gst-tag-list-from-vorbiscomment-buffer"></a><h3>gst_tag_list_from_vorbiscomment_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_from_vorbiscomment_buffer
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_from_vorbiscomment_buffer
(<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);</pre>
<p>
<hr>
<div class="refsect2">
<a name="gst-tag-list-to-vorbiscomment-buffer"></a><h3>gst_tag_list_to_vorbiscomment_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_list_to_vorbiscomment_buffer
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_list_to_vorbiscomment_buffer
(<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
- <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
+ <em class="parameter"><code>const <span class="type">guint8</span> *id_data</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vendor_string</code></em>);</pre>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttagxmp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
-<link rel="prev" href="gst-plugins-base-libs-gsttagid3.html" title="gsttagid3">
-<link rel="next" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="prev" href="gst-plugins-base-libs-gsttagexif.html" title="gsttagexif">
+<link rel="next" href="gst-plugins-base-libs-gsttagxmpwriter.html" title="gsttagxmpwriter">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttagid3.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagexif.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gsttagdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagxmpwriter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gsttagxmp.synopsis" class="shortcut">Top</a>
<pre class="synopsis">
#include <gst/tag/tag.h>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer" title="gst_tag_list_from_xmp_buffer ()">gst_tag_list_from_xmp_buffer</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" title="gst_tag_list_to_xmp_buffer ()">gst_tag_list_to_xmp_buffer</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer" title="gst_tag_list_from_xmp_buffer ()">gst_tag_list_from_xmp_buffer</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" title="gst_tag_list_to_xmp_buffer ()">gst_tag_list_to_xmp_buffer</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full" title="gst_tag_list_to_xmp_buffer_full ()">gst_tag_list_to_xmp_buffer_full</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **schemas</code></em>);
+const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()">gst_tag_xmp_list_schemas</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gsttagxmp.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="gst-tag-list-from-xmp-buffer"></a><h3>gst_tag_list_from_xmp_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_from_xmp_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_from_xmp_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
<p>
Parse a xmp packet into a taglist.
</p>
<hr>
<div class="refsect2">
<a name="gst-tag-list-to-xmp-buffer"></a><h3>gst_tag_list_to_xmp_buffer ()</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_list_to_xmp_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_list_to_xmp_buffer (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);</pre>
<p>
Formats a taglist as a xmp packet.
</table></div>
<p class="since">Since 0.10.29</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-to-xmp-buffer-full"></a><h3>gst_tag_list_to_xmp_buffer_full ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_list_to_xmp_buffer_full (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **schemas</code></em>);</pre>
+<p>
+Formats a taglist as a xmp packet using only the selected
+schemas. An empty list (<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) means that all schemas should
+be used
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>tags</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>read_only</code></em> :</span></p></td>
+<td>does the container forbid inplace editing</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schemas</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of schemas to be used on serialization</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>new buffer or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, unref the buffer when done</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-list-schemas"></a><h3>gst_tag_xmp_list_schemas ()</h3>
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** gst_tag_xmp_list_schemas (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>
+Gets the list of supported schemas in the xmp lib
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of strings with the schema names</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gsttagxmp.see-also"></a><h2>See Also</h2>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gsttagxmpwriter</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-tag.html" title="Tag Support Library">
+<link rel="prev" href="gst-plugins-base-libs-gsttagxmp.html" title="gsttagxmp">
+<link rel="next" href="gst-plugins-base-libs-gsttagdemux.html" title="gsttagdemux">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttagxmp.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-tag.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gsttagdemux.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gsttagxmpwriter.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gsttagxmpwriter.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gsttagxmpwriter"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagxmpwriter.top_of_page"></a>gsttagxmpwriter</span></h2>
+<p>gsttagxmpwriter — Interface for elements that provide XMP serialization</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gsttagxmpwriter.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis"><span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas" title="gst_tag_xmp_writer_add_all_schemas ()">gst_tag_xmp_writer_add_all_schemas</a> (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema" title="gst_tag_xmp_writer_add_schema ()">gst_tag_xmp_writer_add_schema</a> (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" title="gst_tag_xmp_writer_has_schema ()">gst_tag_xmp_writer_has_schema</a> (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema" title="gst_tag_xmp_writer_remove_schema ()">gst_tag_xmp_writer_remove_schema</a> (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas" title="gst_tag_xmp_writer_remove_all_schemas ()">gst_tag_xmp_writer_remove_all_schemas</a>
+ (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer" title="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()">gst_tag_xmp_writer_tag_list_to_xmp_buffer</a>
+ (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagxmpwriter.description"></a><h2>Description</h2>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp24958400"></a><p>
+This interface is implemented by elements that are able to do XMP serialization. Examples for
+such elements are <span class="type">jifmux</span> and <span class="type">qtmux</span>.
+</p>
+<p>
+Applications can use this interface to configure which XMP schemas should be used when serializing
+tags into XMP. Schemas are represented by their names, a full list of the supported schemas can be
+obtained from <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()"><code class="function">gst_tag_xmp_list_schemas()</code></a>. By default, all schemas are used.
+</p>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gsttagxmpwriter.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-add-all-schemas"></a><h3>gst_tag_xmp_writer_add_all_schemas ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_xmp_writer_add_all_schemas (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);</pre>
+<p>
+Adds all available XMP schemas to the configuration. Meaning that
+all will be used.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-add-schema"></a><h3>gst_tag_xmp_writer_add_schema ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_xmp_writer_add_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
+<p>
+Adds <em class="parameter"><code>schema</code></em> to the list schemas
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schema</code></em> :</span></p></td>
+<td>the schema to be added</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-has-schema"></a><h3>gst_tag_xmp_writer_has_schema ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_tag_xmp_writer_has_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
+<p>
+Checks if <em class="parameter"><code>schema</code></em> is going to be used
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schema</code></em> :</span></p></td>
+<td>the schema to test</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is going to be used</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-remove-schema"></a><h3>gst_tag_xmp_writer_remove_schema ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_xmp_writer_remove_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
+<p>
+Removes a schema from the list of schemas to use. Nothing is done if
+the schema wasn't in the list
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>schema</code></em> :</span></p></td>
+<td>the schema to remove</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-remove-all-schemas"></a><h3>gst_tag_xmp_writer_remove_all_schemas ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_xmp_writer_remove_all_schemas
+ (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);</pre>
+<p>
+Removes all schemas from the list of schemas to use. Meaning that no
+XMP will be generated.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>config</code></em> :</span></p></td>
+<td>a <span class="type">GstTagXmpWriter</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-xmp-writer-tag-list-to-xmp-buffer"></a><h3>gst_tag_xmp_writer_tag_list_to_xmp_buffer ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_tag_xmp_writer_tag_list_to_xmp_buffer
+ (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
+ <em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>);</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttuner</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gststreamvolume.html" title="gststreamvolume">
<link rel="next" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp15075664"></a><p>
+<a name="idp17049216"></a><p>
The GstTuner interface is provided by elements that have the ability to
tune into multiple input signals, for example TV or radio capture cards.
</p>
void (*signal_changed) (GstTuner *tuner,
GstTunerChannel *channel,
gint signal);
-
- gpointer _gst_reserved[GST_PADDING];
};
</pre>
+<p>
+Tuner interface.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstTunerClass.klass"></a>klass</code></em>;</span></p></td>
+<td>the parent interface</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.list-channels"></a>list_channels</code></em> ()</span></p></td>
+<td>list available channels</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.set-channel"></a>set_channel</code></em> ()</span></p></td>
+<td>set to a channel</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.get-channel"></a>get_channel</code></em> ()</span></p></td>
+<td>return the current channel</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.list-norms"></a>list_norms</code></em> ()</span></p></td>
+<td>list available norms</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.set-norm"></a>set_norm</code></em> ()</span></p></td>
+<td>set a norm</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.get-norm"></a>get_norm</code></em> ()</span></p></td>
+<td>return the current norm</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.set-frequency"></a>set_frequency</code></em> ()</span></p></td>
+<td>set the frequency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.get-frequency"></a>get_frequency</code></em> ()</span></p></td>
+<td>return the current frequency</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.signal-strength"></a>signal_strength</code></em> ()</span></p></td>
+<td>get the signal strength</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.channel-changed"></a>channel_changed</code></em> ()</span></p></td>
+<td>default handler for channel changed notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.norm-changed"></a>norm_changed</code></em> ()</span></p></td>
+<td>default handler for norm changed notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.frequency-changed"></a>frequency_changed</code></em> ()</span></p></td>
+<td>default handler for frequency changed notification</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstTunerClass.signal-changed"></a>signal_changed</code></em> ()</span></p></td>
+<td>default handler for signal-strength changed notification</td>
+</tr>
+</tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttunerchannel</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gsttuner.html" title="gsttuner">
<link rel="next" href="gst-plugins-base-libs-gsttunernorm.html" title="gsttunernorm">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp10457584"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> object is provided by an element implementing
+<a name="idp7342944"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a> object is provided by an element implementing
the <a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface.
</p>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gsttunernorm</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gsttunerchannel.html" title="gsttunerchannel">
<link rel="next" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp9600144"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> object is created by an element implementing the
+<a name="idp6264048"></a><p>The <a class="link" href="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm"><span class="type">GstTunerNorm</span></a> object is created by an element implementing the
<a class="link" href="gst-plugins-base-libs-gsttuner.html#GstTuner"><span class="type">GstTuner</span></a> interface and encapsulates the selection of a capture/output format
for a selected <a class="link" href="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel"><span class="type">GstTunerChannel</span></a>.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstvideo</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-video.html" title="Video Library">
<link rel="prev" href="gstreamer-video.html" title="Video Library">
-<link rel="next" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<link rel="next" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
-<td><a accesskey="n" href="gst-plugins-base-libs-gstvideofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideooverlaycomposition.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gstvideo.synopsis" class="shortcut">Top</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS" title="GST_VIDEO_CAPS_RGB8_PALETTED">GST_VIDEO_CAPS_RGB8_PALETTED</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS" title="GST_VIDEO_CAPS_GRAY8">GST_VIDEO_CAPS_GRAY8</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS" title="GST_VIDEO_CAPS_GRAY16()">GST_VIDEO_CAPS_GRAY16</a> (endianness)
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS" title="GST_VIDEO_CAPS_ARGB_64">GST_VIDEO_CAPS_ARGB_64</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210" title="GST_VIDEO_CAPS_r210">GST_VIDEO_CAPS_r210</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS" title="GST_VIDEO_COMP1_MASK_15">GST_VIDEO_COMP1_MASK_15</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS" title="GST_VIDEO_COMP1_MASK_15_INT">GST_VIDEO_COMP1_MASK_15_INT</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS" title="GST_VIDEO_COMP1_MASK_16">GST_VIDEO_COMP1_MASK_16</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS" title="GST_VIDEO_COMP1_MASK_16_INT">GST_VIDEO_COMP1_MASK_16_INT</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS" title="GST_VIDEO_COMP2_MASK_15">GST_VIDEO_COMP2_MASK_15</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS" title="GST_VIDEO_COMP2_MASK_15_INT">GST_VIDEO_COMP2_MASK_15_INT</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS" title="GST_VIDEO_COMP2_MASK_16">GST_VIDEO_COMP2_MASK_16</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS" title="GST_VIDEO_COMP2_MASK_16_INT">GST_VIDEO_COMP2_MASK_16_INT</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS" title="GST_VIDEO_COMP3_MASK_15">GST_VIDEO_COMP3_MASK_15</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS" title="GST_VIDEO_COMP3_MASK_15_INT">GST_VIDEO_COMP3_MASK_15_INT</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS" title="GST_VIDEO_COMP3_MASK_16">GST_VIDEO_COMP3_MASK_16</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS" title="GST_VIDEO_COMP3_MASK_16_INT">GST_VIDEO_COMP3_MASK_16_INT</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS" title="GST_VIDEO_FPS_RANGE">GST_VIDEO_FPS_RANGE</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS" title="GST_VIDEO_GREEN_MASK_15">GST_VIDEO_GREEN_MASK_15</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS" title="GST_VIDEO_GREEN_MASK_15_INT">GST_VIDEO_GREEN_MASK_15_INT</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS" title="GST_VIDEO_BUFFER_TFF">GST_VIDEO_BUFFER_TFF</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS" title="GST_VIDEO_BUFFER_RFF">GST_VIDEO_BUFFER_RFF</a>
#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS" title="GST_VIDEO_BUFFER_ONEFIELD">GST_VIDEO_BUFFER_ONEFIELD</a>
+#define <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" title="GST_VIDEO_BUFFER_PROGRESSIVE">GST_VIDEO_BUFFER_PROGRESSIVE</a>
enum <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat">GstVideoFormat</a>;
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" title="gst_video_calculate_display_ratio ()">gst_video_calculate_display_ratio</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *dar_d</code></em>,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-get-size" title="gst_video_get_size ()">gst_video_get_size</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html"><span class="type">GstPad</span></a> *pad</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *width</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *height</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps" title="gst_video_get_size_from_caps ()">gst_video_get_size_from_caps</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *size</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert" title="gst_video_format_convert ()">gst_video_format_convert</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">int</span> width</code></em>,
<em class="parameter"><code><span class="type">int</span> height</code></em>,
<em class="parameter"><code><span class="type">int</span> fps_n</code></em>,
<em class="parameter"><code><span class="type">int</span> fps_d</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);
+ <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps" title="gst_video_format_new_caps ()">gst_video_format_new_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">int</span> width</code></em>,
<em class="parameter"><code><span class="type">int</span> height</code></em>,
<em class="parameter"><code><span class="type">int</span> par_n</code></em>,
<em class="parameter"><code><span class="type">int</span> par_d</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> interlaced</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps" title="gst_video_format_new_template_caps ()">gst_video_format_new_template_caps</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
<span class="returnvalue">int</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height" title="gst_video_format_get_component_height ()">gst_video_format_get_component_height</a>
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">int</span> component</code></em>,
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">int</span> component</code></em>,
<em class="parameter"><code><span class="type">int</span> width</code></em>);
+<span class="returnvalue">int</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth" title="gst_video_format_get_component_depth ()">gst_video_format_get_component_depth</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> component</code></em>);
<span class="returnvalue">int</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride" title="gst_video_format_get_pixel_stride ()">gst_video_format_get_pixel_stride</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">int</span> component</code></em>);
<span class="returnvalue">int</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride" title="gst_video_format_get_row_stride ()">gst_video_format_get_row_stride</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-rgb" title="gst_video_format_is_rgb ()">gst_video_format_is_rgb</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-gray" title="gst_video_format_is_gray ()">gst_video_format_is_gray</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-yuv" title="gst_video_format_is_yuv ()">gst_video_format_is_yuv</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" title="gst_video_format_to_fourcc ()">gst_video_format_to_fourcc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc" title="gst_video_format_from_fourcc ()">gst_video_format_from_fourcc</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc</code></em>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps" title="gst_video_format_parse_caps ()">gst_video_format_parse_caps</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+<span class="returnvalue">guint32</span> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc" title="gst_video_format_to_fourcc ()">gst_video_format_to_fourcc</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc" title="gst_video_format_from_fourcc ()">gst_video_format_from_fourcc</a> (<em class="parameter"><code><span class="type">guint32</span> fourcc</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps" title="gst_video_format_parse_caps ()">gst_video_format_parse_caps</a> (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> *format</code></em>,
<em class="parameter"><code><span class="type">int</span> *width</code></em>,
<em class="parameter"><code><span class="type">int</span> *height</code></em>);
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()">gst_video_event_new_still_frame</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> in_still</code></em>);
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()">gst_video_event_parse_still_frame</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *in_still</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()">gst_video_event_new_upstream_force_key_unit</a>
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()">gst_video_event_new_downstream_force_key_unit</a>
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> streamtime</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> runningtime</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" title="gst_video_event_is_force_key_unit ()">gst_video_event_is_force_key_unit</a> (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" title="gst_video_event_parse_upstream_force_key_unit ()">gst_video_event_parse_upstream_force_key_unit</a>
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()">gst_video_event_parse_downstream_force_key_unit</a>
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *streamtime</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *runningtime</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp28861408"></a><p>
-This library contains some helper functions and includes the
+<a name="idp29566608"></a><p>
+This library contains some helper functions and includes the
videosink and videofilter base classes.
</p>
</div>
</div>
<hr>
<div class="refsect2">
+<a name="GST-VIDEO-CAPS-ARGB-64:CAPS"></a><h3>GST_VIDEO_CAPS_ARGB_64</h3>
+<pre class="programlisting">#define GST_VIDEO_CAPS_ARGB_64</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-CAPS-r210"></a><h3>GST_VIDEO_CAPS_r210</h3>
+<pre class="programlisting">#define GST_VIDEO_CAPS_r210</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-15:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_15</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_15 "0x7c00"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-15-INT:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_15_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_15_INT 0x7c00
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-16:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_16</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_16 "0xf800"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP1-MASK-16-INT:CAPS"></a><h3>GST_VIDEO_COMP1_MASK_16_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP1_MASK_16_INT 0xf800
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-15:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_15</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_15 "0x03e0"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-15-INT:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_15_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_15_INT 0x03e0
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-16:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_16</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_16 "0x07e0"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP2-MASK-16-INT:CAPS"></a><h3>GST_VIDEO_COMP2_MASK_16_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP2_MASK_16_INT 0x07e0
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-15:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_15</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_15 "0x001f"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-15-INT:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_15_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_15_INT 0x001f
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-16:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_16</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_16 "0x001f"
+</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GST-VIDEO-COMP3-MASK-16-INT:CAPS"></a><h3>GST_VIDEO_COMP3_MASK_16_INT</h3>
+<pre class="programlisting">#define GST_VIDEO_COMP3_MASK_16_INT 0x001f
+</pre>
+</div>
+<hr>
+<div class="refsect2">
<a name="GST-VIDEO-FPS-RANGE:CAPS"></a><h3>GST_VIDEO_FPS_RANGE</h3>
<pre class="programlisting">#define GST_VIDEO_FPS_RANGE "(fraction) [ 0, max ]"
</pre>
</div>
<hr>
<div class="refsect2">
+<a name="GST-VIDEO-BUFFER-PROGRESSIVE:CAPS"></a><h3>GST_VIDEO_BUFFER_PROGRESSIVE</h3>
+<pre class="programlisting">#define GST_VIDEO_BUFFER_PROGRESSIVE GST_BUFFER_FLAG_MEDIA4
+</pre>
+<p>
+If the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> is telecined, then the buffer is progressive if the
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" title="GST_VIDEO_BUFFER_PROGRESSIVE"><code class="literal">GST_VIDEO_BUFFER_PROGRESSIVE</code></a> flag is set, else it is telecine mixed.
+</p>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="GstVideoFormat"></a><h3>enum GstVideoFormat</h3>
<pre class="programlisting">typedef enum {
GST_VIDEO_FORMAT_UNKNOWN,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_n</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_d</code></em>);</pre>
<p>
-Given the Pixel Aspect Ratio and size of an input video frame, and the
-pixel aspect ratio of the intended display device, calculates the actual
+Given the Pixel Aspect Ratio and size of an input video frame, and the
+pixel aspect ratio of the intended display device, calculates the actual
display ratio the video will be rendered with.
</p>
<div class="variablelist"><table border="0">
</div>
<hr>
<div class="refsect2">
+<a name="gst-video-get-size-from-caps"></a><h3>gst_video_get_size_from_caps ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_get_size_from_caps (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *size</code></em>);</pre>
+<p>
+Calculates the total number of bytes in the raw video format for the given
+caps. This number should be used when allocating a buffer for raw video.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>caps</code></em> :</span></p></td>
+<td>a pointer to <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>size</code></em> :</span></p></td>
+<td>a pointer to a gint that will be assigned the size (in bytes) of a video frame with the given caps</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the size could be calculated from the caps</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-video-format-convert"></a><h3>gst_video_format_convert ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_format_convert (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">int</span> width</code></em>,
<em class="parameter"><code><span class="type">int</span> fps_n</code></em>,
<em class="parameter"><code><span class="type">int</span> fps_d</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> src_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
+ <em class="parameter"><code><span class="type">gint64</span> src_value</code></em>,
<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);</pre>
+ <em class="parameter"><code><span class="type">gint64</span> *dest_value</code></em>);</pre>
<p>
Converts among various <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> types. This function handles
GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For
</div>
<hr>
<div class="refsect2">
+<a name="gst-video-format-new-template-caps"></a><h3>gst_video_format_new_template_caps ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="returnvalue">GstCaps</span></a> * gst_video_format_new_template_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
+<p>
+Creates a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> object based on the parameters provided.
+Size, frame rate, and pixel aspect ratio are set to the full
+range.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> describing the raw video format</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> object, or NULL if there was an error</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-video-format-get-component-height"></a><h3>gst_video_format_get_component_height ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> gst_video_format_get_component_height
(<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
</div>
<hr>
<div class="refsect2">
+<a name="gst-video-format-get-component-depth"></a><h3>gst_video_format_get_component_depth ()</h3>
+<pre class="programlisting"><span class="returnvalue">int</span> gst_video_format_get_component_depth
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
+ <em class="parameter"><code><span class="type">int</span> component</code></em>);</pre>
+<p>
+Returns the number of bits used to encode an individual pixel of
+a given <em class="parameter"><code>component</code></em>. Typically this is 8, although higher and lower
+values are possible for some formats.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>format</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>component</code></em> :</span></p></td>
+<td>the video component (e.g. 0 for 'R' in RGB)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>depth of component</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.33</p>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-video-format-get-pixel-stride"></a><h3>gst_video_format_get_pixel_stride ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span> gst_video_format_get_pixel_stride (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">int</span> component</code></em>);</pre>
<hr>
<div class="refsect2">
<a name="gst-video-format-to-fourcc"></a><h3>gst_video_format_to_fourcc ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a> gst_video_format_to_fourcc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
+<pre class="programlisting"><span class="returnvalue">guint32</span> gst_video_format_to_fourcc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
<p>
Converts a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> value into the corresponding FOURCC. Only
a few YUV formats have corresponding FOURCC values. If <em class="parameter"><code>format</code></em> has
<hr>
<div class="refsect2">
<a name="gst-video-format-from-fourcc"></a><h3>gst_video_format_from_fourcc ()</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a> gst_video_format_from_fourcc (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a> gst_video_format_from_fourcc (<em class="parameter"><code><span class="type">guint32</span> fourcc</code></em>);</pre>
<p>
Converts a FOURCC value into the corresponding <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>.
If the FOURCC cannot be represented by <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>,
<hr>
<div class="refsect2">
<a name="gst-video-format-parse-caps"></a><h3>gst_video_format_parse_caps ()</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_format_parse_caps (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_format_parse_caps (<em class="parameter"><code>const <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>,
<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> *format</code></em>,
<em class="parameter"><code><span class="type">int</span> *width</code></em>,
<em class="parameter"><code><span class="type">int</span> *height</code></em>);</pre>
Determines the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> of <em class="parameter"><code>caps</code></em> and places it in the location
pointed to by <em class="parameter"><code>format</code></em>. Extracts the size of the video and places it
in the location pointed to by <em class="parameter"><code>width</code></em> and <em class="parameter"><code>height</code></em>. If <em class="parameter"><code>caps</code></em> does not
-represent one of the raw video formats listed in <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>, the
-function will fail and return FALSE.
+represent a video format or does not contain height and width, the
+function will fail and return FALSE. If <em class="parameter"><code>caps</code></em> does not represent a raw
+video format listed in <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>, but still contains video caps,
+this function will return TRUE and set <em class="parameter"><code>format</code></em> to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS"><span class="type">GST_VIDEO_FORMAT_UNKNOWN</span></a>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_video_parse_caps_palette (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
<p>
Returns the palette data from the caps as a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>. For
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-RGB8-PALETTED:CAPS"><span class="type">GST_VIDEO_FORMAT_RGB8_PALETTED</span></a> this is containing 256 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint32"><span class="type">guint32</span></a>
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-RGB8-PALETTED:CAPS"><span class="type">GST_VIDEO_FORMAT_RGB8_PALETTED</span></a> this is containing 256 <span class="type">guint32</span>
values, each containing ARGB colors in native endianness.
</p>
<div class="variablelist"><table border="0">
<td>the maximum amount of time allowed for the processing.</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>err</code></em> :</span></p></td>
+<td><p><span class="term"><em class="parameter"><code>error</code></em> :</span></p></td>
<td>pointer to a <a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>. Can be <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</td>
</tr>
<tr>
<a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertFrameCallback" title="GstVideoConvertFrameCallback ()"><code class="literal">GstVideoConvertFrameCallback</code></a> that will be called after conversion.</td>
</tr>
<tr>
+<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
+<td>extra data that will be passed to the <em class="parameter"><code>callback</code></em>
+</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="parameter"><code>destroy_notify</code></em> :</span></p></td>
<td>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Datasets.html#GDestroyNotify"><code class="literal">GDestroyNotify</code></a> to be called after <em class="parameter"><code>user_data</code></em> is not needed anymore</td>
</table></div>
<p class="since">Since 0.10.26</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-new-upstream-force-key-unit"></a><h3>gst_video_event_new_upstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> * gst_video_event_new_upstream_force_key_unit
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
+<p>
+Creates a new upstream force key unit event. An upstream force key unit event
+can be sent to request upstream elements to produce a key unit.
+</p>
+<p>
+<em class="parameter"><code>running_time</code></em> can be set to request a new key unit at a specific
+running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
+new key unit as soon as possible.
+</p>
+<p>
+To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>the running_time at which a new key unit should be produced</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>integer that can be used to number key units</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new GstEvent</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-new-downstream-force-key-unit"></a><h3>gst_video_event_new_downstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="returnvalue">GstEvent</span></a> * gst_video_event_new_downstream_force_key_unit
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> streamtime</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> runningtime</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
+<p>
+Creates a new downstream force key unit event. A downstream force key unit
+event can be sent down the pipeline to request downstream elements to produce
+a key unit. A downstream force key unit event must also be sent when handling
+an upstream force key unit event to notify downstream that the latter has been
+handled.
+</p>
+<p>
+To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>the timestamp of the buffer that starts a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stream_time</code></em> :</span></p></td>
+<td>the stream_time of the buffer that starts a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>the running_time of the buffer that starts a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>integer that can be used to number key units</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>The new GstEvent</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-is-force-key-unit"></a><h3>gst_video_event_is_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_event_is_force_key_unit (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
+<p>
+Checks if an event is a force key unit event. Returns true for both upstream
+and downstream force key unit events.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to check</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid force key unit event</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-parse-upstream-force-key-unit"></a><h3>gst_video_event_parse_upstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_event_parse_upstream_force_key_unit
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
+<p>
+Get running-time, all-headers and count in the force key unit event. See
+<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a> for a full description of the
+upstream force key unit event.
+</p>
+<p>
+Create an upstream force key unit event using <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a>
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>A pointer to the running_time in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>A pointer to the all_headers flag in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>A pointer to the count field in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid upstream force-key-unit event. <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-event-parse-downstream-force-key-unit"></a><h3>gst_video_event_parse_downstream_force_key_unit ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_event_parse_downstream_force_key_unit
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *streamtime</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *runningtime</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
+<p>
+Get timestamp, stream-time, running-time, all-headers and count in the force
+key unit event. See <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> for a
+full description of the downstream force key unit event.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>event</code></em> :</span></p></td>
+<td>A <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstEvent.html#GstEvent"><span class="type">GstEvent</span></a> to parse</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>timestamp</code></em> :</span></p></td>
+<td>A pointer to the timestamp in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stream_time</code></em> :</span></p></td>
+<td>A pointer to the stream-time in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>running_time</code></em> :</span></p></td>
+<td>A pointer to the running-time in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>all_headers</code></em> :</span></p></td>
+<td>A pointer to the all_headers flag in the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>count</code></em> :</span></p></td>
+<td>A pointer to the count field of the event. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid downstream force key unit event.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstvideofilter</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-video.html" title="Video Library">
-<link rel="prev" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
+<link rel="prev" href="gst-plugins-base-libs-gstvideooverlaycomposition.html" title="gstvideooverlaycomposition">
<link rel="next" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstvideo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideooverlaycomposition.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
<p>
</p>
<div class="refsect2">
-<a name="idp23911216"></a><p>
+<a name="idp8581264"></a><p>
Provides useful functions and a base class for video filters.
</p>
<p>
GstBaseTransformClass parent_class;
};
</pre>
+<p>
+The video filter class structure.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html#GstBaseTransformClass"><span class="type">GstBaseTransformClass</span></a> <em class="structfield"><code><a name="GstVideoFilterClass.parent-class"></a>parent_class</code></em>;</span></p></td>
+<td>the parent class structure</td>
+</tr></tbody>
+</table></div>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstvideoorientation</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gsttunernorm.html" title="gsttunernorm">
<link rel="next" href="gst-plugins-base-libs-gstxoverlay.html" title="gstxoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gstvideooverlaycomposition</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
+<link rel="up" href="gstreamer-video.html" title="Video Library">
+<link rel="prev" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
+<link rel="next" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+<tr valign="middle">
+<td><a accesskey="p" href="gst-plugins-base-libs-gstvideo.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="u" href="gstreamer-video.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
+<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
+<td><a accesskey="n" href="gst-plugins-base-libs-gstvideofilter.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
+</tr>
+<tr><td colspan="5" class="shortcuts">
+<a href="#gst-plugins-base-libs-gstvideooverlaycomposition.synopsis" class="shortcut">Top</a>
+ |
+ <a href="#gst-plugins-base-libs-gstvideooverlaycomposition.description" class="shortcut">Description</a>
+</td></tr>
+</table>
+<div class="refentry">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideooverlaycomposition.top_of_page"></a>gstvideooverlaycomposition</span></h2>
+<p>gstvideooverlaycomposition — Video Buffer Overlay Compositions (Subtitles, Logos)</p>
+</td>
+<td valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsynopsisdiv">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition.synopsis"></a><h2>Synopsis</h2>
+<pre class="synopsis">
+#include <gst/video/video-overlay-composition.h>
+
+ <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition">GstVideoOverlayComposition</a>;
+ <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass" title="GstVideoOverlayCompositionClass">GstVideoOverlayCompositionClass</a>;
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new" title="gst_video_overlay_composition_new ()">gst_video_overlay_composition_new</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" title="gst_video_overlay_composition_ref ()">gst_video_overlay_composition_ref</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()">gst_video_overlay_composition_unref</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle" title="gst_video_overlay_composition_add_rectangle ()">gst_video_overlay_composition_add_rectangle</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles" title="gst_video_overlay_composition_n_rectangles ()">gst_video_overlay_composition_n_rectangles</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle" title="gst_video_overlay_composition_get_rectangle ()">gst_video_overlay_composition_get_rectangle</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum" title="gst_video_overlay_composition_get_seqnum ()">gst_video_overlay_composition_get_seqnum</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()">gst_video_overlay_composition_copy</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()">gst_video_overlay_composition_make_writable</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()">gst_video_overlay_composition_blend</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *video_buf</code></em>);
+
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()">gst_video_buffer_get_overlay_composition</a>
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" title="gst_video_buffer_set_overlay_composition ()">gst_video_buffer_set_overlay_composition</a>
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);
+
+enum <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags">GstVideoOverlayFormatFlags</a>;
+ <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle">GstVideoOverlayRectangle</a>;
+ <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass" title="GstVideoOverlayRectangleClass">GstVideoOverlayRectangleClass</a>;
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb" title="gst_video_overlay_rectangle_new_argb ()">gst_video_overlay_rectangle_new_argb</a>
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *pixels</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> stride</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" title="gst_video_overlay_rectangle_ref ()">gst_video_overlay_rectangle_ref</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()">gst_video_overlay_rectangle_unref</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb" title="gst_video_overlay_rectangle_get_pixels_argb ()">gst_video_overlay_rectangle_get_pixels_argb</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb" title="gst_video_overlay_rectangle_get_pixels_unscaled_argb ()">gst_video_overlay_rectangle_get_pixels_unscaled_argb</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *height</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()">gst_video_overlay_rectangle_get_render_rectangle</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_height</code></em>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum" title="gst_video_overlay_rectangle_get_seqnum ()">gst_video_overlay_rectangle_get_seqnum</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle" title="gst_video_overlay_rectangle_set_render_rectangle ()">gst_video_overlay_rectangle_set_render_rectangle</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>);
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" title="gst_video_overlay_rectangle_copy ()">gst_video_overlay_rectangle_copy</a>
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition.description"></a><h2>Description</h2>
+<p>
+</p>
+<div class="refsect2">
+<a name="idp30461952"></a><p>
+Functions to create and handle overlay compositions on video buffers.
+</p>
+<p>
+An overlay composition describes one or more overlay rectangles to be
+blended on top of a video buffer.
+</p>
+<p>
+This API serves two main purposes:
+</p>
+<div class="itemizedlist">
+<span class="type">GstOverlayComposition</span><ul class="itemizedlist" type="disc">
+<li class="listitem">
+it can be used to attach overlay information (subtitles or logos)
+to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
+blending of the overlay can then be done by e.g. the video sink that
+processes these non-raw buffers.
+</li>
+<li class="listitem">
+it can also be used to blend overlay rectangles on top of raw video
+buffers, thus consolidating blending functionality for raw video in
+one place.
+</li>
+</ul>
+</div>
+<p>
+</p>
+</div>
+<p>
+</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-base-libs-gstvideooverlaycomposition.details"></a><h2>Details</h2>
+<div class="refsect2">
+<a name="GstVideoOverlayComposition"></a><h3>GstVideoOverlayComposition</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayComposition GstVideoOverlayComposition;</pre>
+<p>
+An opaque video overlay composition object. A composition contains
+multiple overlay rectangles.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayCompositionClass"></a><h3>GstVideoOverlayCompositionClass</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayCompositionClass GstVideoOverlayCompositionClass;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-new"></a><h3>gst_video_overlay_composition_new ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_new
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Creates a new video overlay composition object to hold one or more
+overlay rectangles.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to add to the
+composition. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. Unref with
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()"><code class="function">gst_video_overlay_composition_unref()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-ref"></a><h3>gst_video_overlay_composition_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_ref
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Increases the refcount of the given composition by one.
+</p>
+<p>
+Note that the refcount affects the writeability
+of <em class="parameter"><code>comp</code></em>, use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> to ensure
+a composition and its rectangles can be modified.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-unref"></a><h3>gst_video_overlay_composition_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_overlay_composition_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Decreases the refcount of the composition. If the refcount reaches 0, the
+composition will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-add-rectangle"></a><h3>gst_video_overlay_composition_add_rectangle ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_overlay_composition_add_rectangle
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Adds an overlay rectangle to an existing overlay composition object. This
+must be done right after creating the overlay composition.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to add to the
+composition. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-n-rectangles"></a><h3>gst_video_overlay_composition_n_rectangles ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_video_overlay_composition_n_rectangles
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Returns the number of <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>s contained in <em class="parameter"><code>comp</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the number of rectangles</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-get-rectangle"></a><h3>gst_video_overlay_composition_get_rectangle ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_composition_get_rectangle
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> n</code></em>);</pre>
+<p>
+Returns the <em class="parameter"><code>n</code></em>-th <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> contained in <em class="parameter"><code>comp</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>n</code></em> :</span></p></td>
+<td>number of the rectangle to get</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <em class="parameter"><code>n</code></em>-th rectangle, or NULL if <em class="parameter"><code>n</code></em> is out of
+bounds. Will not return a new reference, the caller will need to
+obtain her own reference using <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" title="gst_video_overlay_rectangle_ref ()"><code class="function">gst_video_overlay_rectangle_ref()</code></a>
+if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-get-seqnum"></a><h3>gst_video_overlay_composition_get_seqnum ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_video_overlay_composition_get_seqnum
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Returns the sequence number of this composition. Sequence numbers are
+monotonically increasing and unique for overlay compositions and rectangles
+(meaning there will never be a rectangle with the same sequence number as
+a composition).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sequence number of <em class="parameter"><code>comp</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-copy"></a><h3>gst_video_overlay_composition_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_copy
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Makes a copy of <em class="parameter"><code>comp</code></em> and all contained rectangles, so that it is possible
+to modify the composition and contained rectangles (e.g. add additional
+rectangles or change the render co-ordinates or render dimension). The
+actual overlay pixel data buffers contained in the rectangles are not
+copied.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> to copy. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> equivalent
+to <em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-make-writable"></a><h3>gst_video_overlay_composition_make_writable ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_overlay_composition_make_writable
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Takes ownership of <em class="parameter"><code>comp</code></em> and returns a version of <em class="parameter"><code>comp</code></em> that is writable
+(i.e. can be modified). Will either return <em class="parameter"><code>comp</code></em> right away, or create a
+new writable copy of <em class="parameter"><code>comp</code></em> and unref <em class="parameter"><code>comp</code></em> itself. All the contained
+rectangles will also be copied, but the actual overlay pixel data buffers
+contained in the rectangles are not copied.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> to copy. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a writable <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+equivalent to <em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-composition-blend"></a><h3>gst_video_overlay_composition_blend ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_overlay_composition_blend (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
+ <em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *video_buf</code></em>);</pre>
+<p>
+Blends the overlay rectangles in <em class="parameter"><code>comp</code></em> on top of the raw video data
+contained in <em class="parameter"><code>video_buf</code></em>. The data in <em class="parameter"><code>video_buf</code></em> must be writable. If
+needed, use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-make-writable"><code class="function">gst_buffer_make_writable()</code></a> before calling this function to
+ensure a buffer is writable. <em class="parameter"><code>video_buf</code></em> must also have valid raw video
+caps set on it.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>video_buf</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> containing raw video data in a supported format</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-buffer-get-overlay-composition"></a><h3>gst_video_buffer_get_overlay_composition ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> * gst_video_buffer_get_overlay_composition
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>
+Get the overlay composition that has previously been attached to a buffer
+with <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" title="gst_video_buffer_get_overlay_composition ()"><code class="function">gst_video_buffer_get_overlay_composition()</code></a>, usually by another element
+upstream.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> attached to
+this buffer, or NULL. Does not return a reference to the composition,
+caller must obtain her own ref via <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" title="gst_video_overlay_composition_ref ()"><code class="function">gst_video_overlay_composition_ref()</code></a>
+if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-buffer-set-overlay-composition"></a><h3>gst_video_buffer_set_overlay_composition ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_buffer_set_overlay_composition
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
+<p>
+Sets an overlay composition on a buffer. The buffer will obtain its own
+reference to the composition, meaning this function does not take ownership
+of <em class="parameter"><code>comp</code></em>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>buf</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>, or NULL to clear a
+previously-set composition. <span class="annotation">[<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayFormatFlags"></a><h3>enum GstVideoOverlayFormatFlags</h3>
+<pre class="programlisting">typedef enum {
+ GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE = 0
+} GstVideoOverlayFormatFlags;
+</pre>
+<p>
+Overlay format flags.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><a name="GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE</code></span></p></td>
+<td>no flags
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayRectangle"></a><h3>GstVideoOverlayRectangle</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayRectangle GstVideoOverlayRectangle;</pre>
+<p>
+An opaque video overlay rectangle object. A rectangle contains a single
+overlay rectangle which can be added to a composition.
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoOverlayRectangleClass"></a><h3>GstVideoOverlayRectangleClass</h3>
+<pre class="programlisting">typedef struct _GstVideoOverlayRectangleClass GstVideoOverlayRectangleClass;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-new-argb"></a><h3>gst_video_overlay_rectangle_new_argb ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_rectangle_new_argb
+ (<em class="parameter"><code><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *pixels</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> stride</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
+<p>
+Creates a new video overlay rectangle with ARGB pixel data. The layout
+of the components in memory is B-G-R-A on little-endian platforms
+(corresponding to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-BGRA:CAPS"><span class="type">GST_VIDEO_FORMAT_BGRA</span></a>) and A-R-G-B on big-endian
+platforms (corresponding to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB:CAPS"><span class="type">GST_VIDEO_FORMAT_ARGB</span></a>). In other words,
+pixels are treated as 32-bit words and the lowest 8 bits then contain
+the blue component value and the highest 8 bits contain the alpha
+component value. The RGB values are non-premultiplied. This is the
+format that is used by most hardware, and also many rendering libraries
+such as Cairo, for example.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>pixels</code></em> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> pointing to the pixel memory. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>the width of the rectangle in <em class="parameter"><code>pixels</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>height</code></em> :</span></p></td>
+<td>the height of the rectangle in <em class="parameter"><code>pixels</code></em>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>the stride of the rectangle in <em class="parameter"><code>pixels</code></em> in bytes (>= 4*width)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
+<td>the X co-ordinate on the video where the top-left corner of this
+overlay rectangle should be rendered to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>y</code></em> :</span></p></td>
+<td>the Y co-ordinate on the video where the top-left corner of this
+overlay rectangle should be rendered to</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_width</code></em> :</span></p></td>
+<td>the render width of this rectangle on the video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_height</code></em> :</span></p></td>
+<td>the render height of this rectangle on the video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>flags (currently unused)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. Unref with
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()"><code class="function">gst_video_overlay_rectangle_unref()</code></a> when no longer needed. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-ref"></a><h3>gst_video_overlay_rectangle_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_rectangle_ref
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);</pre>
+<p>
+Increases the refcount of the given rectangle by one.
+</p>
+<p>
+Note that the refcount affects the writeability
+of <em class="parameter"><code>comp</code></em>, use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" title="gst_video_overlay_rectangle_copy ()"><code class="function">gst_video_overlay_rectangle_copy()</code></a> to ensure a rectangle can
+be modified (there is no <code class="function">gst_video_overlay_rectangle_make_writable()</code> because
+it is unlikely that someone will hold the single reference to the rectangle
+and not know that that's the case).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>
+<em class="parameter"><code>comp</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-unref"></a><h3>gst_video_overlay_rectangle_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_overlay_rectangle_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);</pre>
+<p>
+Decreases the refcount of the rectangle. If the refcount reaches 0, the
+rectangle will be freed.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><em class="parameter"><code>comp</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr></tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-pixels-argb"></a><h3>gst_video_overlay_rectangle_get_pixels_argb ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_video_overlay_rectangle_get_pixels_argb
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>address of guint variable where to store the
+row stride of the ARGB pixel data in the buffer. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>flags (unused)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
+row stride <em class="parameter"><code>stride</code></em> and width and height of the render dimensions as per
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
+not return a reference, the caller should obtain a reference of her own
+with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-pixels-unscaled-argb"></a><h3>gst_video_overlay_rectangle_get_pixels_unscaled_argb ()</h3>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a> * gst_video_overlay_rectangle_get_pixels_unscaled_argb
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *height</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *stride</code></em>,
+ <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
+<p>
+Retrieves the pixel data as it is. This is useful if the caller can
+do the scaling itself when handling the overlaying. The rectangle will
+need to be scaled to the render dimensions, which can be retrieved using
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>address where to store the width of the unscaled
+rectangle in pixels. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>width</code></em> :</span></p></td>
+<td>address where to store the height of the unscaled
+rectangle in pixels. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>stride</code></em> :</span></p></td>
+<td>address of guint variable where to store the row
+stride of the ARGB pixel data in the buffer. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
+<td>flags for future use (unused)</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
+row stride <em class="parameter"><code>stride</code></em>. This function does not return a reference, the caller
+should obtain a reference of her own with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-render-rectangle"></a><h3>gst_video_overlay_rectangle_get_render_rectangle ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> gst_video_overlay_rectangle_get_render_rectangle
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_height</code></em>);</pre>
+<p>
+Retrieves the render position and render dimension of the overlay
+rectangle on the video.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_x</code></em> :</span></p></td>
+<td>address where to store the X render offset. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_y</code></em> :</span></p></td>
+<td>address where to store the Y render offset. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_width</code></em> :</span></p></td>
+<td>address where to store the render width. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_height</code></em> :</span></p></td>
+<td>address where to store the render height. <span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is ok, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>TRUE if valid render dimensions were retrieved.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-get-seqnum"></a><h3>gst_video_overlay_rectangle_get_seqnum ()</h3>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> gst_video_overlay_rectangle_get_seqnum
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Returns the sequence number of this rectangle. Sequence numbers are
+monotonically increasing and unique for overlay compositions and rectangles
+(meaning there will never be a rectangle with the same sequence number as
+a composition).
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the sequence number of <em class="parameter"><code>rectangle</code></em>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-set-render-rectangle"></a><h3>gst_video_overlay_rectangle_set_render_rectangle ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_video_overlay_rectangle_set_render_rectangle
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_x</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
+ <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>);</pre>
+<p>
+Sets the render position and dimensions of the rectangle on the video.
+This function is mainly for elements that modify the size of the video
+in some way (e.g. through scaling or cropping) and need to adjust the
+details of any overlays to match the operation that changed the size.
+</p>
+<p>
+<em class="parameter"><code>rectangle</code></em> must be writable, meaning its refcount must be 1. You can
+make the rectangles inside a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> writable using
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
+<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_x</code></em> :</span></p></td>
+<td>render X position of rectangle on video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_y</code></em> :</span></p></td>
+<td>render Y position of rectangle on video</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_width</code></em> :</span></p></td>
+<td>render width of rectangle</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>render_height</code></em> :</span></p></td>
+<td>render height of rectangle</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-video-overlay-rectangle-copy"></a><h3>gst_video_overlay_rectangle_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> * gst_video_overlay_rectangle_copy
+ (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
+<p>
+Makes a copy of <em class="parameter"><code>rectangle</code></em>, so that it is possible to modify it
+(e.g. to change the render co-ordinates or render dimension). The
+actual overlay pixel data buffers contained in the rectangle are not
+copied.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>rectangle</code></em> :</span></p></td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to copy. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
+</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> equivalent
+to <em class="parameter"><code>rectangle</code></em>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.10.36</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>
+ Generated by GTK-Doc V1.18</div>
+</body>
+</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstvideosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-video.html" title="Video Library">
<link rel="prev" href="gst-plugins-base-libs-gstvideofilter.html" title="gstvideofilter">
<link rel="next" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp27834272"></a><p>
+<a name="idp29609152"></a><p>
Provides useful functions and a base class for video sinks.
</p>
<p>
<a name="gst-plugins-base-libs-gstvideosink.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstVideoSink-struct"></a><h3>struct GstVideoSink</h3>
-<pre class="programlisting">struct GstVideoSink;</pre>
+<pre class="programlisting">struct GstVideoSink {
+ gint width, height;
+};
+</pre>
<p>
The video sink instance structure. Derived video sinks should set the
<em class="parameter"><code>height</code></em> and <em class="parameter"><code>width</code></em> members.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
-<tbody></tbody>
+<tbody>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.width"></a>width</code></em>;</span></p></td>
+<td>video width (derived class needs to set this)</td>
+</tr>
+<tr>
+<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.height"></a>height</code></em>;</span></p></td>
+<td>video height (derived class needs to set this)</td>
+</tr>
+</tbody>
</table></div>
</div>
<hr>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstVideoSinkClass.show-frame"></a>show_frame</code></em> ()</span></p></td>
-<td>render a video frame. Maps to <span class="type">"render"</span> and
-<span class="type">"preroll"</span> vfuncs. Rendering during preroll will be
-suppressed if the 'show-preroll-frame' property is set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.
-Since: 0.10.25</td>
+<td>render a video frame. Maps to <code class="function">GstBaseSinkClass.render()</code> and
+<code class="function">GstBaseSinkClass.preroll()</code> vfuncs. Rendering during preroll will be
+suppressed if the <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame" title='The "show-preroll-frame" property'><span class="type">"show-preroll-frame"</span></a> property is set to
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>. Since: 0.10.25</td>
</tr>
</tbody>
</table></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstxoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-interfaces.html" title="Interfaces Library">
<link rel="prev" href="gst-plugins-base-libs-gstvideoorientation.html" title="gstvideoorientation">
<link rel="next" href="gstreamer-netbuffer.html" title="Network Buffer Library">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-xwindow-id" title="gst_x_overlay_got_xwindow_id ()">gst_x_overlay_got_xwindow_id</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a> xwindow_id</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-window-handle" title="gst_x_overlay_got_window_handle ()">gst_x_overlay_got_window_handle</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);
+ <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle" title="gst_x_overlay_set_window_handle ()">gst_x_overlay_set_window_handle</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);
+ <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-prepare-xwindow-id" title="gst_x_overlay_prepare_xwindow_id ()">gst_x_overlay_prepare_xwindow_id</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-expose" title="gst_x_overlay_expose ()">gst_x_overlay_expose</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-handle-events" title="gst_x_overlay_handle_events ()">gst_x_overlay_handle_events</a> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
<p>
</p>
<div class="refsect2">
-<a name="idp15827040"></a><p>
+<a name="idp17754944"></a><p>
The XOverlay interface is used for 2 main purposes :
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<span class="gtkdoc slc">// ignore anything but 'prepare-xwindow-id' element messages</span>
<span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-TYPE:CAPS">GST_MESSAGE_TYPE</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">) !=</span> GST_MESSAGE_ELEMENT<span class="gtkdoc opt">)</span>
<span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
-
+
<span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-has-name">gst_structure_has_name</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">-></span>structure<span class="gtkdoc opt">,</span> <span class="string">"prepare-xwindow-id"</span><span class="gtkdoc opt">))</span>
<span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
-
+
win <span class="gtkdoc opt">=</span> <span class="function">XCreateSimpleWindow</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> root<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">320</span><span class="gtkdoc opt">,</span> <span class="number">240</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
-
+
<span class="function">XSetWindowBackgroundPixmap</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> win<span class="gtkdoc opt">,</span> None<span class="gtkdoc opt">);</span>
-
+
<span class="function">XMapRaised</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> win<span class="gtkdoc opt">);</span>
-
+
<span class="function">XSync</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
-
+
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle">gst_x_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_X_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)),</span>
win<span class="gtkdoc opt">);</span>
-
+
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
-
+
<span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc opt">...</span>
</p>
<hr>
<div class="refsect2">
-<a name="idp15836384"></a><h3>Two basic usage scenarios</h3>
+<a name="idp17764272"></a><h3>Two basic usage scenarios</h3>
<p>
There are two basic usage scenarios: in the simplest case, the application
knows exactly what particular element is used for video output, which is
windowing systems are not thread-safe at all and a lot of care would be
required to co-ordinate the toolkit and window system calls of the
different threads (Gtk+ users please note: prior to Gtk+ 2.18
-<a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
+<a href="http://library.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
within the bus sync handler; this macro was changed to a function call in
Gtk+ 2.18 and later, which is likely to cause problems when called from a
-sync handler; see below for a better approach without <a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
+sync handler; see below for a better approach without <a href="http://library.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
used in the callback).
</p>
</div>
</p>
<hr>
<div class="refsect2">
-<a name="idp15848544"></a><h3>GstXOverlay and Gtk+</h3>
+<a name="idp17776432"></a><h3>GstXOverlay and Gtk+</h3>
<p>
</p>
<div class="informalexample">
79
80
81
-82</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include <gtk/gtk.h></span>
+82
+83</pre></td>
+ <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include <gst/interfaces/xoverlay.h></span>
+<span class="gtkdoc ppc">#include <gtk/gtk.h></span>
<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
<span class="gtkdoc ppc">#include <gdk/gdkx.h></span> <span class="gtkdoc slc">// for GDK_WINDOW_XID</span>
<span class="gtkdoc ppc"></span><span class="gtkdoc ppc">#endif</span>
<span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
<span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#gst-structure-has-name">gst_structure_has_name</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">-></span>structure<span class="gtkdoc opt">,</span> <span class="string">"prepare-xwindow-id"</span><span class="gtkdoc opt">))</span>
<span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
-
+
<span class="keyword">if</span> <span class="gtkdoc opt">(</span>video_window_xid <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">) {</span>
GstXOverlay <span class="gtkdoc opt">*</span>xoverlay<span class="gtkdoc opt">;</span>
-
+
<span class="gtkdoc slc">// GST_MESSAGE_SRC (message) will be the video sink element</span>
xoverlay <span class="gtkdoc opt">=</span> <span class="function">GST_X_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">));</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle">gst_x_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span>xoverlay<span class="gtkdoc opt">,</span> video_window_xid<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">}</span> <span class="keyword">else</span> <span class="gtkdoc opt">{</span>
<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">"Should have obtained video_window_xid by now!"</span><span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">}</span>
-
+
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
<span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc ppc">#if GTK_CHECK_VERSION(2,18,0)</span>
<span class="gtkdoc slc">// This is here just for pedagogical purposes, GDK_WINDOW_XID will call</span>
<span class="gtkdoc slc">// it as well in newer Gtk versions</span>
- <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-></span>window<span class="gtkdoc opt">))</span>
+ <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="http://library.gnome.org/devel/gdk/gdk3-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-></span>window<span class="gtkdoc opt">))</span>
<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Message-Logging.html#g-error">g_error</a></span> <span class="gtkdoc opt">(</span><span class="string">"Couldn't create native window needed for GstXOverlay!"</span><span class="gtkdoc opt">);</span>
<span class="gtkdoc ppc">#endif</span>
<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
- video_window_xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gdk3/gdk-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">-></span>window<span class="gtkdoc opt">);</span>
+ video_window_xid <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gdk/gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
<span class="gtkdoc ppc">#endif</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc opt">...</span>
GtkWidget <span class="gtkdoc opt">*</span>video_window<span class="gtkdoc opt">;</span>
GtkWidget <span class="gtkdoc opt">*</span>app_window<span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">...</span>
- app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
+ app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span>
- video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
+ video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></span> <span class="gtkdoc opt">();</span>
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> <span class="string">"realize"</span><span class="gtkdoc opt">,</span>
<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>video_widget_realize_cb<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span>
<span class="gtkdoc slc">// usually the video_window will not be directly embedded into the</span>
<span class="gtkdoc slc">// application window like this, but there will be many other widgets</span>
<span class="gtkdoc slc">// and the video window will be embedded in one of them instead</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">...</span>
<span class="gtkdoc slc">// show the GUI</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
<span class="gtkdoc slc">// realize window now so that the video window gets created and we can</span>
<span class="gtkdoc slc">// obtain its XID before the pipeline is started up and the videosink</span>
<span class="gtkdoc slc">// asks for the XID of the window to render onto</span>
- <span class="function"><a href="http://library.gnome.org/devel/gtk3/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>window<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://library.gnome.org/devel/gtk/GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
<span class="gtkdoc slc">// we should have the XID now</span>
<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>video_window_xid <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
</p>
<hr>
<div class="refsect2">
-<a name="idp15853312"></a><h3>GstXOverlay and Qt</h3>
+<a name="idp17781264"></a><h3>GstXOverlay and Qt</h3>
<p>
</p>
<div class="informalexample">
GstElement <span class="gtkdoc opt">*</span>sink <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">"xvimagesink"</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBin.html#gst-bin-add-many">gst_bin_add_many</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_BIN</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">),</span> src<span class="gtkdoc opt">,</span> sink<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-link">gst_element_link</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">,</span> sink<span class="gtkdoc opt">);</span>
-
+
<span class="gtkdoc slc">// prepare the ui</span>
QWidget window<span class="gtkdoc opt">;</span>
window<span class="gtkdoc opt">.</span><span class="function">resize</span><span class="gtkdoc opt">(</span><span class="number">320</span><span class="gtkdoc opt">,</span> <span class="number">240</span><span class="gtkdoc opt">);</span>
window<span class="gtkdoc opt">.</span><span class="function">show</span><span class="gtkdoc opt">();</span>
-
+
WId xwinid <span class="gtkdoc opt">=</span> window<span class="gtkdoc opt">.</span><span class="function">winId</span><span class="gtkdoc opt">();</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle">gst_x_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_X_OVERLAY</span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> xwinid<span class="gtkdoc opt">);</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc kwb">int</span> ret <span class="gtkdoc opt">=</span> app<span class="gtkdoc opt">.</span><span class="function">exec</span><span class="gtkdoc opt">();</span>
-
+
window<span class="gtkdoc opt">.</span><span class="function">hide</span><span class="gtkdoc opt">();</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-set-state">gst_element_set_state</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> GST_STATE_NULL<span class="gtkdoc opt">);</span>
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">);</span>
void (* set_xwindow_id) (GstXOverlay *overlay,
gulong xwindow_id);
#else
- void (* set_xwindow_id_disabled) (GstXOverlay *overlay,
- gulong xwindow_id);
+#endif
#endif /* not GST_DISABLE_DEPRECATED */
void (* expose) (GstXOverlay *overlay);
-
+
void (* handle_events) (GstXOverlay *overlay,
- gboolean handle_events);
+ gboolean handle_events);
void (* set_render_rectangle) (GstXOverlay *overlay,
gint x, gint y,
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.set-xwindow-id"></a>set_xwindow_id</code></em> ()</span></p></td>
-<td>virtual method to configure the XWindow id</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.set-xwindow-id-disabled"></a>set_xwindow_id_disabled</code></em> ()</span></p></td>
-<td></td>
+<td>(deprecated) virtual method to configure the XWindow handle</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.expose"></a>expose</code></em> ()</span></p></td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstXOverlayClass.set-window-handle"></a>set_window_handle</code></em> ()</span></p></td>
-<td></td>
+<td>virtual method to configure the window handle</td>
</tr>
</tbody>
</table></div>
<p>
This will call the video overlay's set_xwindow_id method. You should
use this method to tell to a XOverlay to display video output to a
-specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
+specific XWindow. Passing 0 as the <em class="parameter"><code>xwindow_id</code></em> will tell the overlay to
stop using that window and create an internal one.
</p>
<div class="variablelist"><table border="0">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the XWindow on.</td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the window on.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>xwindow_id</code></em> :</span></p></td>
-<td>a <span class="type">XID</span> referencing the XWindow.</td>
+<td>a XID referencing the XWindow.</td>
</tr>
</tbody>
</table></div>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>xwindow_id</code></em> :</span></p></td>
-<td>a <span class="type">XID</span> referencing the XWindow.</td>
+<td>a XID referencing the XWindow.</td>
</tr>
</tbody>
</table></div>
<div class="refsect2">
<a name="gst-x-overlay-got-window-handle"></a><h3>gst_x_overlay_got_window_handle ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_x_overlay_got_window_handle (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);</pre>
<p>
This will post a "have-xwindow-id" element message on the bus.
</p>
<div class="refsect2">
<a name="gst-x-overlay-set-window-handle"></a><h3>gst_x_overlay_set_window_handle ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_x_overlay_set_window_handle (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>,
- <em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);</pre>
+ <em class="parameter"><code><span class="type">guintptr</span> handle</code></em>);</pre>
<p>
This will call the video overlay's set_window_handle method. You
should use this method to tell to a XOverlay to display video output to a
-specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
-stop using that window and create an internal one.
+specific window (e.g. an XWindow on X11). Passing 0 as the <em class="parameter"><code>handle</code></em> will
+tell the overlay to stop using that window and create an internal one.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>overlay</code></em> :</span></p></td>
-<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the XWindow on.</td>
+<td>a <a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> to set the window on.</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>xwindow_id</code></em> :</span></p></td>
-<td>a <span class="type">XID</span> referencing the XWindow.</td>
+<td><p><span class="term"><em class="parameter"><code>handle</code></em> :</span></p></td>
+<td>a handle referencing the window.</td>
</tr>
</tbody>
</table></div>
<pre class="programlisting"><span class="returnvalue">void</span> gst_x_overlay_prepare_xwindow_id (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> *overlay</code></em>);</pre>
<p>
This will post a "prepare-xwindow-id" element message on the bus
-to give applications an opportunity to call
+to give applications an opportunity to call
<a class="link" href="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-xwindow-id" title="gst_x_overlay_set_xwindow_id ()"><code class="function">gst_x_overlay_set_xwindow_id()</code></a> before a plugin creates its own
window.
</p>
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> handle_events</code></em>);</pre>
<p>
Tell an overlay that it should handle events from the window system. These
-events are forwared upstream as navigation events. In some window system,
+events are forwarded upstream as navigation events. In some window system,
events are not propagated in the window hierarchy if a client is listening
for them. This method allows you to disable events handling completely
from the XOverlay.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 0.10 Library Reference Manual" link="index.html" author="" name="gst-plugins-base-libs">
- <chapters>
- <sub name="GStreamer Base Plugins Libraries" link="gstreamer-plugins-base.html">
- <sub name="Compiling" link="compiling.html"/>
- <sub name="App Library" link="gstreamer-app.html">
- <sub name="appsrc" link="gst-plugins-base-libs-appsrc.html"/>
- <sub name="appsink" link="gst-plugins-base-libs-appsink.html"/>
- </sub>
- <sub name="Audio Library" link="gstreamer-audio.html">
- <sub name="gstaudio" link="gst-plugins-base-libs-gstaudio.html"/>
- <sub name="gstaudioclock" link="gst-plugins-base-libs-gstaudioclock.html"/>
- <sub name="gstaudiofilter" link="gst-plugins-base-libs-gstaudiofilter.html"/>
- <sub name="gstaudiomixerutils" link="gst-plugins-base-libs-gstaudiomixerutils.html"/>
- <sub name="gstaudiosink" link="gst-plugins-base-libs-gstaudiosink.html"/>
- <sub name="gstaudiosrc" link="gst-plugins-base-libs-gstaudiosrc.html"/>
- <sub name="gstbaseaudiosink" link="gst-plugins-base-libs-gstbaseaudiosink.html"/>
- <sub name="gstbaseaudiosrc" link="gst-plugins-base-libs-gstbaseaudiosrc.html"/>
- <sub name="gstmultichannel" link="gst-plugins-base-libs-gstmultichannel.html"/>
- <sub name="gstringbuffer" link="gst-plugins-base-libs-gstringbuffer.html"/>
- </sub>
- <sub name="CDDA Library" link="gstreamer-cdda.html">
- <sub name="gstcddabasesrc" link="gst-plugins-base-libs-gstcddabasesrc.html"/>
- </sub>
- <sub name="FFT Library" link="gstreamer-ffft.html">
- <sub name="gstfft" link="gst-plugins-base-libs-gstfft.html"/>
- <sub name="gstffts16" link="gst-plugins-base-libs-gstffts16.html"/>
- <sub name="gstffts32" link="gst-plugins-base-libs-gstffts32.html"/>
- <sub name="gstfftf32" link="gst-plugins-base-libs-gstfftf32.html"/>
- <sub name="gstfftf64" link="gst-plugins-base-libs-gstfftf64.html"/>
- </sub>
- <sub name="FloatCast Library" link="gstreamer-floatcast.html">
- <sub name="gstfloatcast" link="gst-plugins-base-libs-gstfloatcast.html"/>
- </sub>
- <sub name="Interfaces Library" link="gstreamer-interfaces.html">
- <sub name="gstcolorbalance" link="gst-plugins-base-libs-gstcolorbalance.html"/>
- <sub name="gstcolorbalancechannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html"/>
- <sub name="gstmixer" link="gst-plugins-base-libs-gstmixer.html"/>
- <sub name="gstmixeroptions" link="gst-plugins-base-libs-gstmixeroptions.html"/>
- <sub name="gstmixertrack" link="gst-plugins-base-libs-gstmixertrack.html"/>
- <sub name="gstnavigation" link="gst-plugins-base-libs-gstnavigation.html"/>
- <sub name="gstpropertyprobe" link="gst-plugins-base-libs-gstpropertyprobe.html"/>
- <sub name="gststreamvolume" link="gst-plugins-base-libs-gststreamvolume.html"/>
- <sub name="gsttuner" link="gst-plugins-base-libs-gsttuner.html"/>
- <sub name="gsttunerchannel" link="gst-plugins-base-libs-gsttunerchannel.html"/>
- <sub name="gsttunernorm" link="gst-plugins-base-libs-gsttunernorm.html"/>
- <sub name="gstvideoorientation" link="gst-plugins-base-libs-gstvideoorientation.html"/>
- <sub name="gstxoverlay" link="gst-plugins-base-libs-gstxoverlay.html"/>
- </sub>
- <sub name="Network Buffer Library" link="gstreamer-netbuffer.html">
- <sub name="gstnetbuffer" link="gst-plugins-base-libs-gstnetbuffer.html"/>
- </sub>
- <sub name="Riff Media Library" link="gstreamer-riff.html">
- <sub name="gstriff" link="gst-plugins-base-libs-gstriff.html"/>
- </sub>
- <sub name="RTP Library" link="gstreamer-rtp.html">
- <sub name="gstbasertpaudiopayload" link="gst-plugins-base-libs-gstbasertpaudiopayload.html"/>
- <sub name="gstbasertpdepayload" link="gst-plugins-base-libs-gstbasertpdepayload.html"/>
- <sub name="gstbasertppayload" link="gst-plugins-base-libs-gstbasertppayload.html"/>
- <sub name="gstrtpbuffer" link="gst-plugins-base-libs-gstrtpbuffer.html"/>
- <sub name="gstrtcpbuffer" link="gst-plugins-base-libs-gstrtcpbuffer.html"/>
- <sub name="gstrtppayloads" link="gst-plugins-base-libs-gstrtppayloads.html"/>
- </sub>
- <sub name="RTSP Library" link="gstreamer-rtsp.html">
- <sub name="gstrtspbase64" link="gst-plugins-base-libs-gstrtspbase64.html"/>
- <sub name="gstrtspconnection" link="gst-plugins-base-libs-gstrtspconnection.html"/>
- <sub name="gstrtspdefs" link="gst-plugins-base-libs-gstrtspdefs.html"/>
- <sub name="gstrtspextension" link="gst-plugins-base-libs-gstrtspextension.html"/>
- <sub name="gstrtspmessage" link="gst-plugins-base-libs-gstrtspmessage.html"/>
- <sub name="gstrtsprange" link="gst-plugins-base-libs-gstrtsprange.html"/>
- <sub name="gstrtsptransport" link="gst-plugins-base-libs-gstrtsptransport.html"/>
- <sub name="gstrtspurl" link="gst-plugins-base-libs-gstrtspurl.html"/>
- </sub>
- <sub name="SDP Library" link="gstreamer-sdp.html">
- <sub name="gstsdpmessage" link="gst-plugins-base-libs-gstsdpmessage.html"/>
- </sub>
- <sub name="Tag Support Library" link="gstreamer-tag.html">
- <sub name="gsttag" link="gst-plugins-base-libs-gsttag.html"/>
- <sub name="gsttagvorbis" link="gst-plugins-base-libs-gsttagvorbis.html"/>
- <sub name="gsttagid3" link="gst-plugins-base-libs-gsttagid3.html"/>
- <sub name="gsttagxmp" link="gst-plugins-base-libs-gsttagxmp.html"/>
- <sub name="gsttagdemux" link="gst-plugins-base-libs-gsttagdemux.html"/>
- <sub name="gsttaglanguagecodes" link="gst-plugins-base-libs-gsttaglanguagecodes.html"/>
- </sub>
- <sub name="Base Utils Library" link="gstreamer-base-utils.html">
- <sub name="gstpbutils" link="gst-plugins-base-libs-gstpbutils.html"/>
- <sub name="gstpbutilscodecutils" link="gst-plugins-base-libs-gstpbutilscodecutils.html"/>
- <sub name="gstpbutilsdescriptions" link="gst-plugins-base-libs-gstpbutilsdescriptions.html"/>
- <sub name="gstpbutilsmissingplugins" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html"/>
- <sub name="gstpbutilsinstallplugins" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html"/>
- <sub name="gstdiscoverer" link="gst-plugins-base-libs-gstdiscoverer.html"/>
- <sub name="encoding-profile" link="gst-plugins-base-libs-encoding-profile.html"/>
- </sub>
- <sub name="Video Library" link="gstreamer-video.html">
- <sub name="gstvideo" link="gst-plugins-base-libs-gstvideo.html"/>
- <sub name="gstvideofilter" link="gst-plugins-base-libs-gstvideofilter.html"/>
- <sub name="gstvideosink" link="gst-plugins-base-libs-gstvideosink.html"/>
- </sub>
- </sub>
- <sub name="Object Hierarchy" link="gstreamer-libs-hierarchy.html"/>
- <sub name="Index" link="api-index-full.html"/>
- <sub name="Index of deprecated API" link="api-index-deprecated.html"/>
- <sub name="Annotation Glossary" link="annotation-glossary.html"/>
- </chapters>
- <functions>
- <function name="struct GstAppSrc" link="gst-plugins-base-libs-appsrc.html#GstAppSrc"/>
- <function name="enum GstAppStreamType" link="gst-plugins-base-libs-appsrc.html#GstAppStreamType"/>
- <function name="gst_app_src_set_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps"/>
- <function name="gst_app_src_get_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps"/>
- <function name="gst_app_src_get_latency ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-latency"/>
- <function name="gst_app_src_set_latency ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-latency"/>
- <function name="gst_app_src_set_size ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size"/>
- <function name="gst_app_src_get_size ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-size"/>
- <function name="gst_app_src_set_stream_type ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type"/>
- <function name="gst_app_src_get_stream_type ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type"/>
- <function name="gst_app_src_set_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes"/>
- <function name="gst_app_src_get_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes"/>
- <function name="gst_app_src_get_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals"/>
- <function name="gst_app_src_set_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals"/>
- <function name="GstAppSrcCallbacks" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks"/>
- <function name="gst_app_src_set_callbacks ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks"/>
- <function name="gst_app_src_push_buffer ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer"/>
- <function name="gst_app_src_end_of_stream ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream"/>
- <function name="struct GstAppSink" link="gst-plugins-base-libs-appsink.html#GstAppSink"/>
- <function name="gst_app_sink_set_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps"/>
- <function name="gst_app_sink_get_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps"/>
- <function name="gst_app_sink_is_eos ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"/>
- <function name="gst_app_sink_set_emit_signals ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-emit-signals"/>
- <function name="gst_app_sink_get_emit_signals ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-emit-signals"/>
- <function name="gst_app_sink_set_max_buffers ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-max-buffers"/>
- <function name="gst_app_sink_get_max_buffers ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-max-buffers"/>
- <function name="gst_app_sink_set_drop ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-drop"/>
- <function name="gst_app_sink_get_drop ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-drop"/>
- <function name="gst_app_sink_pull_preroll ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll"/>
- <function name="gst_app_sink_pull_buffer ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer"/>
- <function name="gst_app_sink_pull_buffer_list ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list"/>
- <function name="GstAppSinkCallbacks" link="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks"/>
- <function name="gst_app_sink_set_callbacks ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks"/>
- <function name="enum GstAudioFieldFlag" link="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag"/>
- <function name="GST_FRAMES_TO_CLOCK_TIME()" link="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS"/>
- <function name="GST_CLOCK_TIME_TO_FRAMES()" link="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS"/>
- <function name="GST_AUDIO_DEF_RATE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-DEF-RATE:CAPS"/>
- <function name="GST_AUDIO_FLOAT_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-PAD-TEMPLATE-CAPS"/>
- <function name="GST_AUDIO_FLOAT_STANDARD_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLOAT-STANDARD-PAD-TEMPLATE-CAPS"/>
- <function name="GST_AUDIO_INT_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-PAD-TEMPLATE-CAPS"/>
- <function name="GST_AUDIO_INT_STANDARD_PAD_TEMPLATE_CAPS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INT-STANDARD-PAD-TEMPLATE-CAPS"/>
- <function name="gst_audio_frame_byte_size ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-byte-size"/>
- <function name="gst_audio_frame_length ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-frame-length"/>
- <function name="gst_audio_duration_from_pad_buffer ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-duration-from-pad-buffer"/>
- <function name="gst_audio_is_buffer_framed ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-is-buffer-framed"/>
- <function name="gst_audio_structure_set_int ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-structure-set-int"/>
- <function name="gst_audio_buffer_clip ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-buffer-clip"/>
- <function name="struct GstAudioClock" link="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock-struct"/>
- <function name="GstAudioClockGetTimeFunc ()" link="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc"/>
- <function name="gst_audio_clock_new ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new"/>
- <function name="gst_audio_clock_new_full ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-new-full"/>
- <function name="gst_audio_clock_adjust ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-adjust"/>
- <function name="gst_audio_clock_get_time ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time"/>
- <function name="gst_audio_clock_reset ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset"/>
- <function name="gst_audio_clock_invalidate ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate"/>
- <function name="struct GstAudioFilter" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct"/>
- <function name="struct GstAudioFilterClass" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass"/>
- <function name="gst_audio_filter_class_add_pad_templates ()" link="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates"/>
- <function name="" link="gst-plugins-base-libs-gstaudiomixerutils.html#idp7862112"/>
- <function name="GstAudioMixerFilterFunc ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc"/>
- <function name="gst_audio_default_registry_mixer_filter ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter"/>
- <function name="struct GstAudioSink" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct"/>
- <function name="struct GstAudioSinkClass" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass"/>
- <function name="struct GstAudioSrc" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct"/>
- <function name="struct GstAudioSrcClass" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass"/>
- <function name="struct GstBaseAudioSink" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink-struct"/>
- <function name="struct GstBaseAudioSinkClass" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkClass"/>
- <function name="enum GstBaseAudioSinkSlaveMethod" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSinkSlaveMethod"/>
- <function name="GST_BASE_AUDIO_SINK_CLOCK()" link="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-CLOCK:CAPS"/>
- <function name="GST_BASE_AUDIO_SINK_PAD()" link="gst-plugins-base-libs-gstbaseaudiosink.html#GST-BASE-AUDIO-SINK-PAD:CAPS"/>
- <function name="gst_base_audio_sink_create_ringbuffer ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-create-ringbuffer"/>
- <function name="gst_base_audio_sink_set_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-provide-clock"/>
- <function name="gst_base_audio_sink_get_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-provide-clock"/>
- <function name="gst_base_audio_sink_set_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-slave-method"/>
- <function name="gst_base_audio_sink_get_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method"/>
- <function name="gst_base_audio_sink_get_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance"/>
- <function name="gst_base_audio_sink_set_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance"/>
- <function name="The "buffer-time" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time"/>
- <function name="The "can-activate-pull" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull"/>
- <function name="The "drift-tolerance" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance"/>
- <function name="The "latency-time" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time"/>
- <function name="The "provide-clock" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock"/>
- <function name="The "slave-method" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--slave-method"/>
- <function name="struct GstBaseAudioSrc" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc-struct"/>
- <function name="struct GstBaseAudioSrcClass" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcClass"/>
- <function name="enum GstBaseAudioSrcSlaveMethod" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrcSlaveMethod"/>
- <function name="GST_BASE_AUDIO_SRC_CLOCK()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-CLOCK:CAPS"/>
- <function name="GST_BASE_AUDIO_SRC_PAD()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GST-BASE-AUDIO-SRC-PAD:CAPS"/>
- <function name="gst_base_audio_src_create_ringbuffer ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-create-ringbuffer"/>
- <function name="gst_base_audio_src_set_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-provide-clock"/>
- <function name="gst_base_audio_src_get_provide_clock ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-provide-clock"/>
- <function name="gst_base_audio_src_get_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-get-slave-method"/>
- <function name="gst_base_audio_src_set_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosrc.html#gst-base-audio-src-set-slave-method"/>
- <function name="The "actual-buffer-time" property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-buffer-time"/>
- <function name="The "actual-latency-time" property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--actual-latency-time"/>
- <function name="The "buffer-time" property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--buffer-time"/>
- <function name="The "latency-time" property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--latency-time"/>
- <function name="The "provide-clock" property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--provide-clock"/>
- <function name="The "slave-method" property" link="gst-plugins-base-libs-gstbaseaudiosrc.html#GstBaseAudioSrc--slave-method"/>
- <function name="enum GstAudioChannelPosition" link="gst-plugins-base-libs-gstmultichannel.html#GstAudioChannelPosition"/>
- <function name="gst_audio_fixate_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions"/>
- <function name="gst_audio_get_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions"/>
- <function name="gst_audio_set_caps_channel_positions_list ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list"/>
- <function name="gst_audio_set_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions"/>
- <function name="gst_audio_set_structure_channel_positions_list ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list"/>
- <function name="gst_audio_check_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions"/>
- <function name="" link="gst-plugins-base-libs-gstringbuffer.html#idp11277488"/>
- <function name="struct GstRingBuffer" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer-struct"/>
- <function name="struct GstRingBufferClass" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferClass"/>
- <function name="struct GstRingBufferSpec" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec"/>
- <function name="GstRingBufferCallback ()" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferCallback"/>
- <function name="enum GstRingBufferSegState" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSegState"/>
- <function name="enum GstRingBufferState" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferState"/>
- <function name="enum GstBufferFormat" link="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat"/>
- <function name="enum GstBufferFormatType" link="gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType"/>
- <function name="GST_RING_BUFFER_BROADCAST()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-BROADCAST:CAPS"/>
- <function name="GST_RING_BUFFER_GET_COND()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-GET-COND:CAPS"/>
- <function name="GST_RING_BUFFER_SIGNAL()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-SIGNAL:CAPS"/>
- <function name="GST_RING_BUFFER_WAIT()" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-WAIT:CAPS"/>
- <function name="gst_ring_buffer_set_callback ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-callback"/>
- <function name="gst_ring_buffer_acquire ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-acquire"/>
- <function name="gst_ring_buffer_release ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-release"/>
- <function name="gst_ring_buffer_is_acquired ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-is-acquired"/>
- <function name="gst_ring_buffer_activate ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-activate"/>
- <function name="gst_ring_buffer_is_active ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-is-active"/>
- <function name="gst_ring_buffer_start ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-start"/>
- <function name="gst_ring_buffer_pause ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-pause"/>
- <function name="gst_ring_buffer_stop ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-stop"/>
- <function name="gst_ring_buffer_delay ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-delay"/>
- <function name="gst_ring_buffer_samples_done ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-samples-done"/>
- <function name="gst_ring_buffer_set_sample ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-sample"/>
- <function name="gst_ring_buffer_commit ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit"/>
- <function name="gst_ring_buffer_commit_full ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-commit-full"/>
- <function name="gst_ring_buffer_convert ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-convert"/>
- <function name="gst_ring_buffer_prepare_read ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-prepare-read"/>
- <function name="gst_ring_buffer_read ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-read"/>
- <function name="gst_ring_buffer_clear ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-clear"/>
- <function name="gst_ring_buffer_clear_all ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-clear-all"/>
- <function name="gst_ring_buffer_advance ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-advance"/>
- <function name="gst_ring_buffer_close_device ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-close-device"/>
- <function name="gst_ring_buffer_open_device ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-open-device"/>
- <function name="gst_ring_buffer_device_is_open ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-device-is-open"/>
- <function name="gst_ring_buffer_may_start ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-may-start"/>
- <function name="gst_ring_buffer_parse_caps ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-parse-caps"/>
- <function name="gst_ring_buffer_set_flushing ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-flushing"/>
- <function name="Using GstCddaBaseSrc-based elements in applications" link="gst-plugins-base-libs-gstcddabasesrc.html#idp11424608"/>
- <function name="struct GstCddaBaseSrc" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct"/>
- <function name="struct GstCddaBaseSrcClass" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass"/>
- <function name="struct GstCddaBaseSrcTrack" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack"/>
- <function name="enum GstCddaBaseSrcMode" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcMode"/>
- <function name="gst_cdda_base_src_add_track ()" link="gst-plugins-base-libs-gstcddabasesrc.html#gst-cdda-base-src-add-track"/>
- <function name="The "device" property" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--device"/>
- <function name="The "mode" property" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--mode"/>
- <function name="The "track" property" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc--track"/>
- <function name="enum GstFFTWindow" link="gst-plugins-base-libs-gstfft.html#GstFFTWindow"/>
- <function name="gst_fft_next_fast_length ()" link="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length"/>
- <function name="struct GstFFTS16" link="gst-plugins-base-libs-gstffts16.html#GstFFTS16"/>
- <function name="struct GstFFTS16Complex" link="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex"/>
- <function name="gst_fft_s16_new ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new"/>
- <function name="gst_fft_s16_fft ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft"/>
- <function name="gst_fft_s16_inverse_fft ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft"/>
- <function name="gst_fft_s16_window ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window"/>
- <function name="gst_fft_s16_free ()" link="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free"/>
- <function name="struct GstFFTS32" link="gst-plugins-base-libs-gstffts32.html#GstFFTS32"/>
- <function name="struct GstFFTS32Complex" link="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex"/>
- <function name="gst_fft_s32_new ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new"/>
- <function name="gst_fft_s32_fft ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft"/>
- <function name="gst_fft_s32_inverse_fft ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft"/>
- <function name="gst_fft_s32_window ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window"/>
- <function name="gst_fft_s32_free ()" link="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free"/>
- <function name="struct GstFFTF32" link="gst-plugins-base-libs-gstfftf32.html#GstFFTF32"/>
- <function name="struct GstFFTF32Complex" link="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex"/>
- <function name="gst_fft_f32_new ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new"/>
- <function name="gst_fft_f32_fft ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft"/>
- <function name="gst_fft_f32_inverse_fft ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft"/>
- <function name="gst_fft_f32_window ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window"/>
- <function name="gst_fft_f32_free ()" link="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free"/>
- <function name="struct GstFFTF64" link="gst-plugins-base-libs-gstfftf64.html#GstFFTF64"/>
- <function name="struct GstFFTF64Complex" link="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex"/>
- <function name="gst_fft_f64_new ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new"/>
- <function name="gst_fft_f64_fft ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft"/>
- <function name="gst_fft_f64_inverse_fft ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft"/>
- <function name="gst_fft_f64_window ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window"/>
- <function name="gst_fft_f64_free ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free"/>
- <function name="gst_cast_double()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double"/>
- <function name="gst_cast_float()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float"/>
- <function name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp11606512"/>
- <function name="GstColorBalance" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct"/>
- <function name="struct GstColorBalanceClass" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass"/>
- <function name="enum GstColorBalanceType" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType"/>
- <function name="gst_color_balance_list_channels ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-list-channels"/>
- <function name="gst_color_balance_get_value ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-value"/>
- <function name="gst_color_balance_set_value ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-set-value"/>
- <function name="gst_color_balance_value_changed ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed"/>
- <function name="gst_color_balance_get_balance_type ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type"/>
- <function name="The "value-changed" signal" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed"/>
- <function name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp8229152"/>
- <function name="struct GstColorBalanceChannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct"/>
- <function name="struct GstColorBalanceChannelClass" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass"/>
- <function name="The "value-changed" signal" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed"/>
- <function name="GstMixer" link="gst-plugins-base-libs-gstmixer.html#GstMixer-struct"/>
- <function name="enum GstMixerType" link="gst-plugins-base-libs-gstmixer.html#GstMixerType"/>
- <function name="enum GstMixerFlags" link="gst-plugins-base-libs-gstmixer.html#GstMixerFlags"/>
- <function name="enum GstMixerMessageType" link="gst-plugins-base-libs-gstmixer.html#GstMixerMessageType"/>
- <function name="gst_mixer_list_tracks ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-list-tracks"/>
- <function name="gst_mixer_get_volume ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-volume"/>
- <function name="gst_mixer_set_volume ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-volume"/>
- <function name="gst_mixer_set_mute ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-mute"/>
- <function name="gst_mixer_set_record ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-record"/>
- <function name="gst_mixer_set_option ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-set-option"/>
- <function name="gst_mixer_mute_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-mute-toggled"/>
- <function name="gst_mixer_record_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-record-toggled"/>
- <function name="gst_mixer_volume_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-volume-changed"/>
- <function name="gst_mixer_option_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-option-changed"/>
- <function name="gst_mixer_options_list_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-options-list-changed"/>
- <function name="gst_mixer_get_option ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-option"/>
- <function name="gst_mixer_mixer_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-mixer-changed"/>
- <function name="gst_mixer_get_mixer_flags ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-flags"/>
- <function name="gst_mixer_get_mixer_type ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-get-mixer-type"/>
- <function name="gst_mixer_message_get_type ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-get-type"/>
- <function name="gst_mixer_message_parse_mute_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-mute-toggled"/>
- <function name="gst_mixer_message_parse_option_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-option-changed"/>
- <function name="gst_mixer_message_parse_record_toggled ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-record-toggled"/>
- <function name="gst_mixer_message_parse_volume_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-volume-changed"/>
- <function name="gst_mixer_message_parse_options_list_changed ()" link="gst-plugins-base-libs-gstmixer.html#gst-mixer-message-parse-options-list-changed"/>
- <function name="The "mute-toggled" signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-mute-toggled"/>
- <function name="The "option-changed" signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-option-changed"/>
- <function name="The "record-toggled" signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-record-toggled"/>
- <function name="The "volume-changed" signal" link="gst-plugins-base-libs-gstmixer.html#GstMixer-volume-changed"/>
- <function name="struct GstMixerOptions" link="gst-plugins-base-libs-gstmixeroptions.html#GstMixerOptions-struct"/>
- <function name="gst_mixer_options_get_values ()" link="gst-plugins-base-libs-gstmixeroptions.html#gst-mixer-options-get-values"/>
- <function name="struct GstMixerTrack" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack-struct"/>
- <function name="enum GstMixerTrackFlags" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrackFlags"/>
- <function name="GST_MIXER_TRACK_HAS_FLAG()" link="gst-plugins-base-libs-gstmixertrack.html#GST-MIXER-TRACK-HAS-FLAG:CAPS"/>
- <function name="The "flags" property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--flags"/>
- <function name="The "index" property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--index"/>
- <function name="The "label" property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--label"/>
- <function name="The "max-volume" property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--max-volume"/>
- <function name="The "min-volume" property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--min-volume"/>
- <function name="The "num-channels" property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--num-channels"/>
- <function name="The "untranslated-label" property" link="gst-plugins-base-libs-gstmixertrack.html#GstMixerTrack--untranslated-label"/>
- <function name="GstNavigation" link="gst-plugins-base-libs-gstnavigation.html#GstNavigation-struct"/>
- <function name="struct GstNavigationInterface" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface"/>
- <function name="enum GstNavigationCommand" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand"/>
- <function name="enum GstNavigationEventType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType"/>
- <function name="enum GstNavigationMessageType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType"/>
- <function name="enum GstNavigationQueryType" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType"/>
- <function name="gst_navigation_send_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event"/>
- <function name="gst_navigation_send_key_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event"/>
- <function name="gst_navigation_send_mouse_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event"/>
- <function name="gst_navigation_send_command ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-command"/>
- <function name="gst_navigation_event_parse_command ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command"/>
- <function name="gst_navigation_event_parse_key_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event"/>
- <function name="gst_navigation_event_parse_mouse_button_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event"/>
- <function name="gst_navigation_event_parse_mouse_move_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event"/>
- <function name="gst_navigation_message_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type"/>
- <function name="gst_navigation_message_new_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed"/>
- <function name="gst_navigation_message_new_commands_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed"/>
- <function name="gst_navigation_message_new_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over"/>
- <function name="gst_navigation_message_parse_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over"/>
- <function name="gst_navigation_message_parse_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed"/>
- <function name="gst_navigation_query_new_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles"/>
- <function name="gst_navigation_query_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type"/>
- <function name="gst_navigation_query_new_commands ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands"/>
- <function name="gst_navigation_query_parse_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-angles"/>
- <function name="gst_navigation_query_parse_commands_length ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-length"/>
- <function name="gst_navigation_query_parse_commands_nth ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-parse-commands-nth"/>
- <function name="gst_navigation_query_set_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-angles"/>
- <function name="gst_navigation_query_set_commands ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commands"/>
- <function name="gst_navigation_query_set_commandsv ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-set-commandsv"/>
- <function name="GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ANGLE-MENU:CAPS"/>
- <function name="GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-AUDIO-MENU:CAPS"/>
- <function name="GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-CHAPTER-MENU:CAPS"/>
- <function name="GST_NAVIGATION_COMMAND_DVD_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-MENU:CAPS"/>
- <function name="GST_NAVIGATION_COMMAND_DVD_ROOT_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-ROOT-MENU:CAPS"/>
- <function name="GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-SUBPICTURE-MENU:CAPS"/>
- <function name="GST_NAVIGATION_COMMAND_DVD_TITLE_MENU" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-DVD-TITLE-MENU:CAPS"/>
- <function name="GstPropertyProbe" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-struct"/>
- <function name="struct GstPropertyProbeInterface" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbeInterface"/>
- <function name="gst_property_probe_get_properties ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-properties"/>
- <function name="gst_property_probe_get_property ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-property"/>
- <function name="gst_property_probe_get_values ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values"/>
- <function name="gst_property_probe_get_values_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-get-values-name"/>
- <function name="gst_property_probe_needs_probe ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe"/>
- <function name="gst_property_probe_needs_probe_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-needs-probe-name"/>
- <function name="gst_property_probe_probe_and_get_values ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values"/>
- <function name="gst_property_probe_probe_and_get_values_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-and-get-values-name"/>
- <function name="gst_property_probe_probe_property ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property"/>
- <function name="gst_property_probe_probe_property_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name"/>
- <function name="The "probe-needed" signal" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed"/>
- <function name="" link="gst-plugins-base-libs-gststreamvolume.html#idp13350128"/>
- <function name="GstStreamVolume" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct"/>
- <function name="enum GstStreamVolumeFormat" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat"/>
- <function name="gst_stream_volume_get_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume"/>
- <function name="gst_stream_volume_set_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-volume"/>
- <function name="gst_stream_volume_get_mute ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-mute"/>
- <function name="gst_stream_volume_set_mute ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-mute"/>
- <function name="gst_stream_volume_convert_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume"/>
- <function name="The "mute" property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--mute"/>
- <function name="The "volume" property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--volume"/>
- <function name="" link="gst-plugins-base-libs-gsttuner.html#idp15075664"/>
- <function name="GstTuner" link="gst-plugins-base-libs-gsttuner.html#GstTuner-struct"/>
- <function name="struct GstTunerClass" link="gst-plugins-base-libs-gsttuner.html#GstTunerClass"/>
- <function name="gst_tuner_list_channels ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels"/>
- <function name="gst_tuner_get_channel ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-channel"/>
- <function name="gst_tuner_set_channel ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-channel"/>
- <function name="gst_tuner_list_norms ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-norms"/>
- <function name="gst_tuner_get_norm ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-norm"/>
- <function name="gst_tuner_set_norm ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-norm"/>
- <function name="gst_tuner_get_frequency ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-get-frequency"/>
- <function name="gst_tuner_set_frequency ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-set-frequency"/>
- <function name="gst_tuner_signal_strength ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-strength"/>
- <function name="gst_tuner_find_norm_by_name ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-norm-by-name"/>
- <function name="gst_tuner_find_channel_by_name ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-find-channel-by-name"/>
- <function name="gst_tuner_channel_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-channel-changed"/>
- <function name="gst_tuner_norm_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-norm-changed"/>
- <function name="gst_tuner_frequency_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-frequency-changed"/>
- <function name="gst_tuner_signal_changed ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-signal-changed"/>
- <function name="The "channel-changed" signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-channel-changed"/>
- <function name="The "frequency-changed" signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed"/>
- <function name="The "norm-changed" signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed"/>
- <function name="The "signal-changed" signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed"/>
- <function name="" link="gst-plugins-base-libs-gsttunerchannel.html#idp10457584"/>
- <function name="struct GstTunerChannel" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct"/>
- <function name="enum GstTunerChannelFlags" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags"/>
- <function name="GST_TUNER_CHANNEL_HAS_FLAG()" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS"/>
- <function name="The "frequency-changed" signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed"/>
- <function name="The "signal-changed" signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed"/>
- <function name="" link="gst-plugins-base-libs-gsttunernorm.html#idp9600144"/>
- <function name="struct GstTunerNorm" link="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct"/>
- <function name="GstVideoOrientation" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct"/>
- <function name="struct GstVideoOrientationInterface" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface"/>
- <function name="gst_video_orientation_get_hcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-hcenter"/>
- <function name="gst_video_orientation_get_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-hflip"/>
- <function name="gst_video_orientation_get_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-vcenter"/>
- <function name="gst_video_orientation_get_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-get-vflip"/>
- <function name="gst_video_orientation_set_hcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hcenter"/>
- <function name="gst_video_orientation_set_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hflip"/>
- <function name="gst_video_orientation_set_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vcenter"/>
- <function name="gst_video_orientation_set_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip"/>
- <function name="" link="gst-plugins-base-libs-gstxoverlay.html#idp15827040"/>
- <function name="Two basic usage scenarios" link="gst-plugins-base-libs-gstxoverlay.html#idp15836384"/>
- <function name="GstXOverlay and Gtk+" link="gst-plugins-base-libs-gstxoverlay.html#idp15848544"/>
- <function name="GstXOverlay and Qt" link="gst-plugins-base-libs-gstxoverlay.html#idp15853312"/>
- <function name="GstXOverlay" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay-struct"/>
- <function name="struct GstXOverlayClass" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlayClass"/>
- <function name="gst_x_overlay_set_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-xwindow-id"/>
- <function name="gst_x_overlay_got_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-xwindow-id"/>
- <function name="gst_x_overlay_got_window_handle ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-got-window-handle"/>
- <function name="gst_x_overlay_set_window_handle ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-window-handle"/>
- <function name="gst_x_overlay_prepare_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-prepare-xwindow-id"/>
- <function name="gst_x_overlay_expose ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-expose"/>
- <function name="gst_x_overlay_handle_events ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-handle-events"/>
- <function name="gst_x_overlay_set_render_rectangle ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-render-rectangle"/>
- <function name="struct GstNetBuffer" link="gst-plugins-base-libs-gstnetbuffer.html#GstNetBuffer"/>
- <function name="enum GstNetType" link="gst-plugins-base-libs-gstnetbuffer.html#GstNetType"/>
- <function name="GST_NETADDRESS_MAX_LEN" link="gst-plugins-base-libs-gstnetbuffer.html#GST-NETADDRESS-MAX-LEN:CAPS"/>
- <function name="struct GstNetAddress" link="gst-plugins-base-libs-gstnetbuffer.html#GstNetAddress"/>
- <function name="gst_netbuffer_new ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netbuffer-new"/>
- <function name="gst_netaddress_get_net_type ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-net-type"/>
- <function name="gst_netaddress_set_ip4_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip4-address"/>
- <function name="gst_netaddress_get_ip4_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip4-address"/>
- <function name="gst_netaddress_set_ip6_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-ip6-address"/>
- <function name="gst_netaddress_get_ip6_address ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-ip6-address"/>
- <function name="gst_netaddress_get_address_bytes ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-get-address-bytes"/>
- <function name="gst_netaddress_set_address_bytes ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes"/>
- <function name="gst_netaddress_equal ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal"/>
- <function name="gst_netaddress_to_string ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string"/>
- <function name="GST_RIFF_00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS"/>
- <function name="GST_RIFF_0021" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS"/>
- <function name="GST_RIFF_0031" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS"/>
- <function name="GST_RIFF_0032" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS"/>
- <function name="GST_RIFF_00AM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS"/>
- <function name="GST_RIFF_00__" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS"/>
- <function name="GST_RIFF_00db" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db"/>
- <function name="GST_RIFF_00dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc"/>
- <function name="GST_RIFF_00dx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx"/>
- <function name="GST_RIFF_00id" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id"/>
- <function name="GST_RIFF_00iv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv"/>
- <function name="GST_RIFF_00pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc"/>
- <function name="GST_RIFF_00rt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt"/>
- <function name="GST_RIFF_00vc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc"/>
- <function name="GST_RIFF_00xm" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm"/>
- <function name="GST_RIFF_00xx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx"/>
- <function name="GST_RIFF_01" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS"/>
- <function name="GST_RIFF_01dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc"/>
- <function name="GST_RIFF_01pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc"/>
- <function name="GST_RIFF_01wb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb"/>
- <function name="GST_RIFF_02" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS"/>
- <function name="GST_RIFF_03" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS"/>
- <function name="GST_RIFF_04" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS"/>
- <function name="GST_RIFF_05" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS"/>
- <function name="GST_RIFF_06" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS"/>
- <function name="GST_RIFF_07" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS"/>
- <function name="GST_RIFF_AURA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS"/>
- <function name="GST_RIFF_BW10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS"/>
- <function name="GST_RIFF_CCC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS"/>
- <function name="GST_RIFF_CRAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS"/>
- <function name="GST_RIFF_CVID" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS"/>
- <function name="GST_RIFF_CYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS"/>
- <function name="GST_RIFF_DIB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS"/>
- <function name="GST_RIFF_DISP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS"/>
- <function name="GST_RIFF_DIV3" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS"/>
- <function name="GST_RIFF_DMB1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS"/>
- <function name="GST_RIFF_FCCH_MSVC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS"/>
- <function name="GST_RIFF_FCCH_RLE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS"/>
- <function name="GST_RIFF_FCCH_msvc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc"/>
- <function name="GST_RIFF_FCC_auds" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds"/>
- <function name="GST_RIFF_FCC_iavs" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs"/>
- <function name="GST_RIFF_FCC_pads" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads"/>
- <function name="GST_RIFF_FCC_txts" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts"/>
- <function name="GST_RIFF_FCC_vidc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc"/>
- <function name="GST_RIFF_FCC_vids" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids"/>
- <function name="GST_RIFF_FF00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS"/>
- <function name="GST_RIFF_H263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS"/>
- <function name="GST_RIFF_I420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS"/>
- <function name="GST_RIFF_IDIT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS"/>
- <function name="GST_RIFF_IJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS"/>
- <function name="GST_RIFF_INFO_IARL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS"/>
- <function name="GST_RIFF_INFO_IART" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS"/>
- <function name="GST_RIFF_INFO_ICMS" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS"/>
- <function name="GST_RIFF_INFO_ICMT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS"/>
- <function name="GST_RIFF_INFO_ICOP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS"/>
- <function name="GST_RIFF_INFO_ICRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS"/>
- <function name="GST_RIFF_INFO_ICRP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS"/>
- <function name="GST_RIFF_INFO_IDIM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS"/>
- <function name="GST_RIFF_INFO_IDPI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS"/>
- <function name="GST_RIFF_INFO_IENG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS"/>
- <function name="GST_RIFF_INFO_IGNR" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS"/>
- <function name="GST_RIFF_INFO_IKEY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS"/>
- <function name="GST_RIFF_INFO_ILGT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS"/>
- <function name="GST_RIFF_INFO_IMED" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS"/>
- <function name="GST_RIFF_INFO_INAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS"/>
- <function name="GST_RIFF_INFO_IPLT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS"/>
- <function name="GST_RIFF_INFO_IPRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS"/>
- <function name="GST_RIFF_INFO_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS"/>
- <function name="GST_RIFF_INFO_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS"/>
- <function name="GST_RIFF_INFO_ISHP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS"/>
- <function name="GST_RIFF_INFO_ISRC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS"/>
- <function name="GST_RIFF_INFO_ISRF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS"/>
- <function name="GST_RIFF_INFO_ITCH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS"/>
- <function name="GST_RIFF_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS"/>
- <function name="GST_RIFF_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS"/>
- <function name="GST_RIFF_IV31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS"/>
- <function name="GST_RIFF_IV32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS"/>
- <function name="GST_RIFF_IV41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS"/>
- <function name="GST_RIFF_IV50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS"/>
- <function name="GST_RIFF_IYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS"/>
- <function name="GST_RIFF_JPEG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS"/>
- <function name="GST_RIFF_L263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS"/>
- <function name="GST_RIFF_LIST_AVIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS"/>
- <function name="GST_RIFF_LIST_INFO" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS"/>
- <function name="GST_RIFF_LIST_adtl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl"/>
- <function name="GST_RIFF_LIST_hdrl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl"/>
- <function name="GST_RIFF_LIST_movi" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi"/>
- <function name="GST_RIFF_LIST_odml" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml"/>
- <function name="GST_RIFF_LIST_strl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl"/>
- <function name="GST_RIFF_M263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS"/>
- <function name="GST_RIFF_MJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS"/>
- <function name="GST_RIFF_MPIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS"/>
- <function name="GST_RIFF_MVI1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS"/>
- <function name="GST_RIFF_NONE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS"/>
- <function name="GST_RIFF_PACK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS"/>
- <function name="GST_RIFF_Q1_0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS"/>
- <function name="GST_RIFF_RAW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS"/>
- <function name="GST_RIFF_RGB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS"/>
- <function name="GST_RIFF_RIFF_AVI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS"/>
- <function name="GST_RIFF_RIFF_CDXA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS"/>
- <function name="GST_RIFF_RIFF_WAVE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS"/>
- <function name="GST_RIFF_RLE4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS"/>
- <function name="GST_RIFF_RLE8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS"/>
- <function name="GST_RIFF_RT21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS"/>
- <function name="GST_RIFF_SFMC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS"/>
- <function name="GST_RIFF_TAG_acid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid"/>
- <function name="GST_RIFF_TAG_AVF0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS"/>
- <function name="GST_RIFF_TAG_BEXT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS"/>
- <function name="GST_RIFF_TAG_JUNK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS"/>
- <function name="GST_RIFF_TAG_JUNQ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS"/>
- <function name="GST_RIFF_TAG_LIST" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS"/>
- <function name="GST_RIFF_TAG_RIFF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS"/>
- <function name="GST_RIFF_TAG_RIFX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS"/>
- <function name="GST_RIFF_TAG_avih" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih"/>
- <function name="GST_RIFF_TAG_bext" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext"/>
- <function name="GST_RIFF_TAG_cue" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue"/>
- <function name="GST_RIFF_TAG_data" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data"/>
- <function name="GST_RIFF_TAG_dmlh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh"/>
- <function name="GST_RIFF_TAG_fact" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact"/>
- <function name="GST_RIFF_TAG_fmt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt"/>
- <function name="GST_RIFF_TAG_idx1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1"/>
- <function name="GST_RIFF_TAG_plst" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst"/>
- <function name="GST_RIFF_TAG_strd" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd"/>
- <function name="GST_RIFF_TAG_strf" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf"/>
- <function name="GST_RIFF_TAG_strh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh"/>
- <function name="GST_RIFF_TAG_strn" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn"/>
- <function name="GST_RIFF_TAG_vedt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt"/>
- <function name="GST_RIFF_TRAN" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS"/>
- <function name="GST_RIFF_ULTI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS"/>
- <function name="GST_RIFF_V422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS"/>
- <function name="GST_RIFF_VDOW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS"/>
- <function name="GST_RIFF_VIXL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS"/>
- <function name="GST_RIFF_VSSH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS"/>
- <function name="GST_RIFF_VYUY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS"/>
- <function name="GST_RIFF_WHAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS"/>
- <function name="GST_RIFF_WINX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS"/>
- <function name="GST_RIFF_WPY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS"/>
- <function name="GST_RIFF_XMPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS"/>
- <function name="GST_RIFF_Y41P" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS"/>
- <function name="GST_RIFF_YUV8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS"/>
- <function name="GST_RIFF_YUV9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS"/>
- <function name="GST_RIFF_YUY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS"/>
- <function name="GST_RIFF_YV12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS"/>
- <function name="GST_RIFF_YVU9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS"/>
- <function name="GST_RIFF_azpr" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr"/>
- <function name="GST_RIFF_bw10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10"/>
- <function name="GST_RIFF_ccc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc"/>
- <function name="GST_RIFF_cram" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram"/>
- <function name="GST_RIFF_cvid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid"/>
- <function name="GST_RIFF_cyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv"/>
- <function name="GST_RIFF_dmb1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1"/>
- <function name="GST_RIFF_h263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263"/>
- <function name="GST_RIFF_i263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263"/>
- <function name="GST_RIFF_i420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420"/>
- <function name="GST_RIFF_iv31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31"/>
- <function name="GST_RIFF_iv32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32"/>
- <function name="GST_RIFF_iv41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41"/>
- <function name="GST_RIFF_iv50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50"/>
- <function name="GST_RIFF_iyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv"/>
- <function name="GST_RIFF_jpeg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg"/>
- <function name="GST_RIFF_m263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263"/>
- <function name="GST_RIFF_mJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG"/>
- <function name="GST_RIFF_mvi1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1"/>
- <function name="GST_RIFF_none" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-none"/>
- <function name="GST_RIFF_pack" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack"/>
- <function name="GST_RIFF_rec" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec"/>
- <function name="GST_RIFF_rgb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb"/>
- <function name="GST_RIFF_rle4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4"/>
- <function name="GST_RIFF_rle8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8"/>
- <function name="GST_RIFF_rpza" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza"/>
- <function name="GST_RIFF_rt21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21"/>
- <function name="GST_RIFF_tran" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran"/>
- <function name="GST_RIFF_ulti" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti"/>
- <function name="GST_RIFF_v422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422"/>
- <function name="GST_RIFF_vixl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl"/>
- <function name="GST_RIFF_vyuy" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy"/>
- <function name="GST_RIFF_wham" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham"/>
- <function name="GST_RIFF_x263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263"/>
- <function name="GST_RIFF_xmpg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg"/>
- <function name="GST_RIFF_y41p" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p"/>
- <function name="GST_RIFF_yuy2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2"/>
- <function name="GST_RIFF_yv12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12"/>
- <function name="gst_riff_acid" link="gst-plugins-base-libs-gstriff.html#gst-riff-acid"/>
- <function name="gst_riff_create_audio_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps"/>
- <function name="gst_riff_create_audio_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps"/>
- <function name="gst_riff_create_iavs_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps"/>
- <function name="gst_riff_create_iavs_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps"/>
- <function name="gst_riff_create_video_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps"/>
- <function name="gst_riff_create_video_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps"/>
- <function name="gst_riff_dmlh" link="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh"/>
- <function name="gst_riff_index_entry" link="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry"/>
- <function name="gst_riff_init ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-init"/>
- <function name="gst_riff_parse_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk"/>
- <function name="gst_riff_parse_file_header ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header"/>
- <function name="gst_riff_parse_info ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-info"/>
- <function name="gst_riff_parse_strf_auds ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-auds"/>
- <function name="gst_riff_parse_strf_iavs ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-iavs"/>
- <function name="gst_riff_parse_strf_vids ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids"/>
- <function name="gst_riff_parse_strh ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh"/>
- <function name="gst_riff_read_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk"/>
- <function name="gst_riff_strf_auds" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"/>
- <function name="gst_riff_strf_iavs" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"/>
- <function name="gst_riff_strf_vids" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"/>
- <function name="gst_riff_strh" link="gst-plugins-base-libs-gstriff.html#gst-riff-strh"/>
- <function name="Usage" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#idp16015920"/>
- <function name="struct GstBaseRTPAudioPayload" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct"/>
- <function name="struct GstBaseRTPAudioPayloadClass" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass"/>
- <function name="gst_base_rtp_audio_payload_set_frame_based ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based"/>
- <function name="gst_base_rtp_audio_payload_set_frame_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-options"/>
- <function name="gst_base_rtp_audio_payload_set_sample_based ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-based"/>
- <function name="gst_base_rtp_audio_payload_set_sample_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-sample-options"/>
- <function name="gst_base_rtp_audio_payload_get_adapter ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-get-adapter"/>
- <function name="gst_base_rtp_audio_payload_push ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-push"/>
- <function name="gst_base_rtp_audio_payload_flush ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush"/>
- <function name="gst_base_rtp_audio_payload_set_samplebits_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options"/>
- <function name="The "buffer-list" property" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list"/>
- <function name="" link="gst-plugins-base-libs-gstbasertpdepayload.html#idp15451472"/>
- <function name="struct GstBaseRTPDepayload" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct"/>
- <function name="struct GstBaseRTPDepayloadClass" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass"/>
- <function name="GST_BASE_RTP_DEPAYLOAD_SINKPAD()" link="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS"/>
- <function name="GST_BASE_RTP_DEPAYLOAD_SRCPAD()" link="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SRCPAD:CAPS"/>
- <function name="gst_base_rtp_depayload_push ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push"/>
- <function name="gst_base_rtp_depayload_push_ts ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts"/>
- <function name="gst_base_rtp_depayload_push_list ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list"/>
- <function name="The "queue-delay" property" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay"/>
- <function name="" link="gst-plugins-base-libs-gstbasertppayload.html#idp17358176"/>
- <function name="struct GstBaseRTPPayload" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct"/>
- <function name="struct GstBaseRTPPayloadClass" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass"/>
- <function name="GST_BASE_RTP_PAYLOAD_MTU()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS"/>
- <function name="GST_BASE_RTP_PAYLOAD_PT()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-PT:CAPS"/>
- <function name="GST_BASE_RTP_PAYLOAD_SINKPAD()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SINKPAD:CAPS"/>
- <function name="GST_BASE_RTP_PAYLOAD_SRCPAD()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-SRCPAD:CAPS"/>
- <function name="gst_basertppayload_is_filled ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-is-filled"/>
- <function name="gst_basertppayload_push ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push"/>
- <function name="gst_basertppayload_push_list ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-push-list"/>
- <function name="gst_basertppayload_set_options ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-options"/>
- <function name="gst_basertppayload_set_outcaps ()" link="gst-plugins-base-libs-gstbasertppayload.html#gst-basertppayload-set-outcaps"/>
- <function name="The "max-ptime" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--max-ptime"/>
- <function name="The "min-ptime" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--min-ptime"/>
- <function name="The "mtu" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--mtu"/>
- <function name="The "perfect-rtptime" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--perfect-rtptime"/>
- <function name="The "pt" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--pt"/>
- <function name="The "ptime-multiple" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ptime-multiple"/>
- <function name="The "seqnum" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum"/>
- <function name="The "seqnum-offset" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--seqnum-offset"/>
- <function name="The "ssrc" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc"/>
- <function name="The "timestamp" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp"/>
- <function name="The "timestamp-offset" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset"/>
- <function name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp19435168"/>
- <function name="GST_RTP_VERSION" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS"/>
- <function name="gst_rtp_buffer_allocate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data"/>
- <function name="gst_rtp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data"/>
- <function name="gst_rtp_buffer_new_copy_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-copy-data"/>
- <function name="gst_rtp_buffer_new_allocate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate"/>
- <function name="gst_rtp_buffer_new_allocate_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-allocate-len"/>
- <function name="gst_rtp_buffer_list_from_buffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-from-buffer"/>
- <function name="gst_rtp_buffer_calc_header_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-header-len"/>
- <function name="gst_rtp_buffer_calc_packet_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-packet-len"/>
- <function name="gst_rtp_buffer_calc_payload_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len"/>
- <function name="gst_rtp_buffer_validate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate"/>
- <function name="gst_rtp_buffer_validate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-validate-data"/>
- <function name="gst_rtp_buffer_set_packet_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-packet-len"/>
- <function name="gst_rtp_buffer_get_packet_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-packet-len"/>
- <function name="gst_rtp_buffer_get_header_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-header-len"/>
- <function name="gst_rtp_buffer_get_version ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-version"/>
- <function name="gst_rtp_buffer_set_version ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-version"/>
- <function name="gst_rtp_buffer_get_padding ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-padding"/>
- <function name="gst_rtp_buffer_set_padding ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-padding"/>
- <function name="gst_rtp_buffer_pad_to ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-pad-to"/>
- <function name="gst_rtp_buffer_get_extension ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension"/>
- <function name="gst_rtp_buffer_set_extension ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension"/>
- <function name="gst_rtp_buffer_get_extension_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-data"/>
- <function name="gst_rtp_buffer_get_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-ssrc"/>
- <function name="gst_rtp_buffer_set_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-ssrc"/>
- <function name="gst_rtp_buffer_get_csrc_count ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc-count"/>
- <function name="gst_rtp_buffer_get_csrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc"/>
- <function name="gst_rtp_buffer_set_csrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-csrc"/>
- <function name="gst_rtp_buffer_get_marker ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-marker"/>
- <function name="gst_rtp_buffer_set_marker ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-marker"/>
- <function name="gst_rtp_buffer_get_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-type"/>
- <function name="gst_rtp_buffer_set_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-payload-type"/>
- <function name="gst_rtp_buffer_get_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-seq"/>
- <function name="gst_rtp_buffer_set_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-seq"/>
- <function name="gst_rtp_buffer_get_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-timestamp"/>
- <function name="gst_rtp_buffer_set_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-timestamp"/>
- <function name="gst_rtp_buffer_get_payload_buffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer"/>
- <function name="gst_rtp_buffer_get_payload_subbuffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer"/>
- <function name="gst_rtp_buffer_get_payload_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-len"/>
- <function name="gst_rtp_buffer_get_payload ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload"/>
- <function name="gst_rtp_buffer_default_clock_rate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-default-clock-rate"/>
- <function name="gst_rtp_buffer_compare_seqnum ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum"/>
- <function name="gst_rtp_buffer_ext_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-ext-timestamp"/>
- <function name="gst_rtp_buffer_set_extension_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension-data"/>
- <function name="gst_rtp_buffer_list_validate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-validate"/>
- <function name="gst_rtp_buffer_list_get_payload_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-len"/>
- <function name="gst_rtp_buffer_list_get_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-payload-type"/>
- <function name="gst_rtp_buffer_list_set_payload_type ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-payload-type"/>
- <function name="gst_rtp_buffer_list_get_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-seq"/>
- <function name="gst_rtp_buffer_list_set_seq ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-seq"/>
- <function name="gst_rtp_buffer_list_get_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-ssrc"/>
- <function name="gst_rtp_buffer_list_set_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-ssrc"/>
- <function name="gst_rtp_buffer_list_get_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-timestamp"/>
- <function name="gst_rtp_buffer_list_set_timestamp ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-set-timestamp"/>
- <function name="gst_rtp_buffer_get_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-onebyte-header"/>
- <function name="gst_rtp_buffer_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-twobytes-header"/>
- <function name="gst_rtp_buffer_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header"/>
- <function name="gst_rtp_buffer_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header"/>
- <function name="gst_rtp_buffer_list_get_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-onebyte-header"/>
- <function name="gst_rtp_buffer_list_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-twobytes-header"/>
- <function name="gst_rtp_buffer_list_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-onebyte-header"/>
- <function name="gst_rtp_buffer_list_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-twobytes-header"/>
- <function name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp18698800"/>
- <function name="GST_RTCP_VERSION" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VERSION:CAPS"/>
- <function name="GST_RTCP_MAX_SDES" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES:CAPS"/>
- <function name="GST_RTCP_MAX_BYE_SSRC_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"/>
- <function name="GST_RTCP_MAX_RB_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-RB-COUNT:CAPS"/>
- <function name="GST_RTCP_MAX_SDES_ITEM_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES-ITEM-COUNT:CAPS"/>
- <function name="GST_RTCP_VALID_MASK" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-MASK:CAPS"/>
- <function name="GST_RTCP_VALID_VALUE" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-VALUE:CAPS"/>
- <function name="enum GstRTCPType" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType"/>
- <function name="struct GstRTCPPacket" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket"/>
- <function name="enum GstRTCPSDESType" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType"/>
- <function name="enum GstRTCPFBType" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType"/>
- <function name="gst_rtcp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data"/>
- <function name="gst_rtcp_buffer_new_copy_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data"/>
- <function name="gst_rtcp_buffer_validate_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data"/>
- <function name="gst_rtcp_buffer_validate ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate"/>
- <function name="gst_rtcp_buffer_new ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new"/>
- <function name="gst_rtcp_buffer_end ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-end"/>
- <function name="gst_rtcp_buffer_get_packet_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-packet-count"/>
- <function name="gst_rtcp_buffer_get_first_packet ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet"/>
- <function name="gst_rtcp_packet_move_to_next ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-move-to-next"/>
- <function name="gst_rtcp_buffer_add_packet ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-add-packet"/>
- <function name="gst_rtcp_packet_remove ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-remove"/>
- <function name="gst_rtcp_packet_get_padding ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-padding"/>
- <function name="gst_rtcp_packet_get_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-count"/>
- <function name="gst_rtcp_packet_get_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-type"/>
- <function name="gst_rtcp_packet_get_length ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-length"/>
- <function name="gst_rtcp_packet_sr_get_sender_info ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-get-sender-info"/>
- <function name="gst_rtcp_packet_sr_set_sender_info ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sr-set-sender-info"/>
- <function name="gst_rtcp_packet_rr_get_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-get-ssrc"/>
- <function name="gst_rtcp_packet_rr_set_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-rr-set-ssrc"/>
- <function name="gst_rtcp_packet_get_rb_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb-count"/>
- <function name="gst_rtcp_packet_get_rb ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-get-rb"/>
- <function name="gst_rtcp_packet_add_rb ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-add-rb"/>
- <function name="gst_rtcp_packet_set_rb ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-set-rb"/>
- <function name="gst_rtcp_packet_sdes_get_item_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-item-count"/>
- <function name="gst_rtcp_packet_sdes_first_item ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-item"/>
- <function name="gst_rtcp_packet_sdes_next_item ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-item"/>
- <function name="gst_rtcp_packet_sdes_get_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-ssrc"/>
- <function name="gst_rtcp_packet_sdes_first_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-first-entry"/>
- <function name="gst_rtcp_packet_sdes_next_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-next-entry"/>
- <function name="gst_rtcp_packet_sdes_get_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry"/>
- <function name="gst_rtcp_packet_sdes_copy_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry"/>
- <function name="gst_rtcp_packet_sdes_add_item ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-item"/>
- <function name="gst_rtcp_packet_sdes_add_entry ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-add-entry"/>
- <function name="gst_rtcp_packet_bye_get_ssrc_count ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-ssrc-count"/>
- <function name="gst_rtcp_packet_bye_get_nth_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-nth-ssrc"/>
- <function name="gst_rtcp_packet_bye_add_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrc"/>
- <function name="gst_rtcp_packet_bye_add_ssrcs ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-add-ssrcs"/>
- <function name="gst_rtcp_packet_bye_get_reason_len ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason-len"/>
- <function name="gst_rtcp_packet_bye_get_reason ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-get-reason"/>
- <function name="gst_rtcp_packet_bye_set_reason ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-bye-set-reason"/>
- <function name="gst_rtcp_packet_fb_get_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-type"/>
- <function name="gst_rtcp_packet_fb_set_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-type"/>
- <function name="gst_rtcp_packet_fb_get_sender_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-sender-ssrc"/>
- <function name="gst_rtcp_packet_fb_set_sender_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-sender-ssrc"/>
- <function name="gst_rtcp_packet_fb_get_media_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-media-ssrc"/>
- <function name="gst_rtcp_packet_fb_set_media_ssrc ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-media-ssrc"/>
- <function name="gst_rtcp_packet_fb_get_fci_length ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci-length"/>
- <function name="gst_rtcp_packet_fb_set_fci_length ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-set-fci-length"/>
- <function name="gst_rtcp_packet_fb_get_fci ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-fb-get-fci"/>
- <function name="gst_rtcp_ntp_to_unix ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-ntp-to-unix"/>
- <function name="gst_rtcp_unix_to_ntp ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp"/>
- <function name="gst_rtcp_sdes_name_to_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type"/>
- <function name="gst_rtcp_sdes_type_to_name ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name"/>
- <function name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp17281392"/>
- <function name="enum GstRTPPayload" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload"/>
- <function name="GST_RTP_PAYLOAD_IS_DYNAMIC()" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"/>
- <function name="struct GstRTPPayloadInfo" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo"/>
- <function name="gst_rtp_payload_info_for_name ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-name"/>
- <function name="gst_rtp_payload_info_for_pt ()" link="gst-plugins-base-libs-gstrtppayloads.html#gst-rtp-payload-info-for-pt"/>
- <function name="gst_rtsp_base64_encode ()" link="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-encode"/>
- <function name="gst_rtsp_base64_decode_ip ()" link="gst-plugins-base-libs-gstrtspbase64.html#gst-rtsp-base64-decode-ip"/>
- <function name="GstRTSPConnection" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection"/>
- <function name="gst_rtsp_connection_create ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create"/>
- <function name="gst_rtsp_connection_create_from_fd ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create-from-fd"/>
- <function name="gst_rtsp_connection_accept ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-accept"/>
- <function name="gst_rtsp_connection_connect ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect"/>
- <function name="gst_rtsp_connection_close ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-close"/>
- <function name="gst_rtsp_connection_free ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free"/>
- <function name="gst_rtsp_connection_read ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-read"/>
- <function name="gst_rtsp_connection_write ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-write"/>
- <function name="gst_rtsp_connection_poll ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-poll"/>
- <function name="gst_rtsp_connection_send ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-send"/>
- <function name="gst_rtsp_connection_receive ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-receive"/>
- <function name="gst_rtsp_connection_next_timeout ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-next-timeout"/>
- <function name="gst_rtsp_connection_reset_timeout ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-reset-timeout"/>
- <function name="gst_rtsp_connection_flush ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush"/>
- <function name="gst_rtsp_connection_set_auth ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-auth"/>
- <function name="gst_rtsp_connection_set_auth_param ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-auth-param"/>
- <function name="gst_rtsp_connection_clear_auth_params ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-clear-auth-params"/>
- <function name="gst_rtsp_connection_set_qos_dscp ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-qos-dscp"/>
- <function name="gst_rtsp_connection_set_ip ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-ip"/>
- <function name="gst_rtsp_connection_get_ip ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-ip"/>
- <function name="gst_rtsp_connection_get_url ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-url"/>
- <function name="gst_rtsp_connection_set_tunneled ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tunneled"/>
- <function name="gst_rtsp_connection_is_tunneled ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-is-tunneled"/>
- <function name="gst_rtsp_connection_get_tunnelid ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tunnelid"/>
- <function name="gst_rtsp_connection_do_tunnel ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-do-tunnel"/>
- <function name="gst_rtsp_connection_get_readfd ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-readfd"/>
- <function name="gst_rtsp_connection_get_writefd ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-writefd"/>
- <function name="gst_rtsp_connection_set_http_mode ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-http-mode"/>
- <function name="gst_rtsp_connection_set_proxy ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-proxy"/>
- <function name="GstRTSPWatch" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch"/>
- <function name="GstRTSPWatchFuncs" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs"/>
- <function name="gst_rtsp_watch_new ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-new"/>
- <function name="gst_rtsp_watch_unref ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-unref"/>
- <function name="gst_rtsp_watch_attach ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-attach"/>
- <function name="gst_rtsp_watch_reset ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-reset"/>
- <function name="gst_rtsp_watch_queue_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-message"/>
- <function name="gst_rtsp_watch_queue_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-queue-data"/>
- <function name="gst_rtsp_watch_send_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message"/>
- <function name="gst_rtsp_watch_write_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data"/>
- <function name="GST_RTSP_CHECK()" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS"/>
- <function name="enum GstRTSPEvent" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent"/>
- <function name="enum GstRTSPResult" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult"/>
- <function name="enum GstRTSPFamily" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPFamily"/>
- <function name="enum GstRTSPState" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPState"/>
- <function name="enum GstRTSPVersion" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion"/>
- <function name="enum GstRTSPMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod"/>
- <function name="enum GstRTSPAuthMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod"/>
- <function name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
- <function name="enum GstRTSPHeaderField" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField"/>
- <function name="enum GstRTSPStatusCode" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode"/>
- <function name="gst_rtsp_strresult ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult"/>
- <function name="gst_rtsp_method_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-method-as-text"/>
- <function name="gst_rtsp_version_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-version-as-text"/>
- <function name="gst_rtsp_header_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-as-text"/>
- <function name="gst_rtsp_header_allow_multiple ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple"/>
- <function name="gst_rtsp_status_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text"/>
- <function name="gst_rtsp_options_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text"/>
- <function name="gst_rtsp_find_header_field ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field"/>
- <function name="gst_rtsp_find_method ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method"/>
- <function name="" link="gst-plugins-base-libs-gstrtspextension.html#idp11962528"/>
- <function name="GstRTSPExtension" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtension"/>
- <function name="struct GstRTSPExtensionInterface" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtensionInterface"/>
- <function name="enum GstRTSPMsgType" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType"/>
- <function name="struct GstRTSPMessage" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"/>
- <function name="gst_rtsp_message_new ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new"/>
- <function name="gst_rtsp_message_init ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init"/>
- <function name="gst_rtsp_message_unset ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset"/>
- <function name="gst_rtsp_message_free ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free"/>
- <function name="gst_rtsp_message_get_type ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-type"/>
- <function name="gst_rtsp_message_new_request ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-request"/>
- <function name="gst_rtsp_message_init_request ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-request"/>
- <function name="gst_rtsp_message_parse_request ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-request"/>
- <function name="gst_rtsp_message_new_response ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-response"/>
- <function name="gst_rtsp_message_init_response ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-response"/>
- <function name="gst_rtsp_message_parse_response ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-response"/>
- <function name="gst_rtsp_message_new_data ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-new-data"/>
- <function name="gst_rtsp_message_init_data ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-data"/>
- <function name="gst_rtsp_message_parse_data ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-parse-data"/>
- <function name="gst_rtsp_message_add_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header"/>
- <function name="gst_rtsp_message_take_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header"/>
- <function name="gst_rtsp_message_remove_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header"/>
- <function name="gst_rtsp_message_get_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header"/>
- <function name="gst_rtsp_message_append_headers ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers"/>
- <function name="gst_rtsp_message_set_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body"/>
- <function name="gst_rtsp_message_take_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-body"/>
- <function name="gst_rtsp_message_get_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-body"/>
- <function name="gst_rtsp_message_steal_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-steal-body"/>
- <function name="gst_rtsp_message_dump ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-dump"/>
- <function name="enum GstRTSPRangeUnit" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit"/>
- <function name="struct GstRTSPTimeRange" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange"/>
- <function name="struct GstRTSPTime" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime"/>
- <function name="enum GstRTSPTimeType" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType"/>
- <function name="gst_rtsp_range_parse ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-parse"/>
- <function name="gst_rtsp_range_to_string ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-to-string"/>
- <function name="gst_rtsp_range_free ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-free"/>
- <function name="enum GstRTSPTransMode" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode"/>
- <function name="enum GstRTSPProfile" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPProfile"/>
- <function name="struct GstRTSPRange" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange"/>
- <function name="enum GstRTSPLowerTrans" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans"/>
- <function name="struct GstRTSPTransport" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport"/>
- <function name="gst_rtsp_transport_new ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-new"/>
- <function name="gst_rtsp_transport_init ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-init"/>
- <function name="gst_rtsp_transport_parse ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-parse"/>
- <function name="gst_rtsp_transport_as_text ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text"/>
- <function name="gst_rtsp_transport_get_mime ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime"/>
- <function name="gst_rtsp_transport_get_manager ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-manager"/>
- <function name="gst_rtsp_transport_free ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-free"/>
- <function name="GST_RTSP_DEFAULT_PORT" link="gst-plugins-base-libs-gstrtspurl.html#GST-RTSP-DEFAULT-PORT:CAPS"/>
- <function name="struct GstRTSPUrl" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl"/>
- <function name="gst_rtsp_url_parse ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-parse"/>
- <function name="gst_rtsp_url_copy ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-copy"/>
- <function name="gst_rtsp_url_free ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free"/>
- <function name="gst_rtsp_url_get_request_uri ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-request-uri"/>
- <function name="gst_rtsp_url_set_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port"/>
- <function name="gst_rtsp_url_get_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port"/>
- <function name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components"/>
- <function name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp25276480"/>
- <function name="enum GstSDPResult" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult"/>
- <function name="GstSDPOrigin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin"/>
- <function name="GstSDPConnection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection"/>
- <function name="GST_SDP_BWTYPE_CT" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-CT:CAPS"/>
- <function name="GST_SDP_BWTYPE_AS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-AS:CAPS"/>
- <function name="GST_SDP_BWTYPE_EXT_PREFIX" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-EXT-PREFIX:CAPS"/>
- <function name="GST_SDP_BWTYPE_RR" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-RR:CAPS"/>
- <function name="GST_SDP_BWTYPE_RS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-RS:CAPS"/>
- <function name="GST_SDP_BWTYPE_TIAS" link="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-BWTYPE-TIAS:CAPS"/>
- <function name="GstSDPBandwidth" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth"/>
- <function name="GstSDPTime" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime"/>
- <function name="GstSDPZone" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone"/>
- <function name="GstSDPKey" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey"/>
- <function name="GstSDPAttribute" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute"/>
- <function name="GstSDPMedia" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia"/>
- <function name="GstSDPMessage" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"/>
- <function name="gst_sdp_message_new ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new"/>
- <function name="gst_sdp_message_init ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init"/>
- <function name="gst_sdp_message_uninit ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-uninit"/>
- <function name="gst_sdp_message_free ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-free"/>
- <function name="gst_sdp_message_parse_buffer ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-buffer"/>
- <function name="gst_sdp_message_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-text"/>
- <function name="gst_sdp_message_parse_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-parse-uri"/>
- <function name="gst_sdp_message_as_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-as-uri"/>
- <function name="gst_sdp_address_is_multicast ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-address-is-multicast"/>
- <function name="gst_sdp_message_get_version ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-version"/>
- <function name="gst_sdp_message_set_version ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-version"/>
- <function name="gst_sdp_message_get_origin ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-origin"/>
- <function name="gst_sdp_message_set_origin ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-origin"/>
- <function name="gst_sdp_message_get_session_name ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-session-name"/>
- <function name="gst_sdp_message_set_session_name ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-session-name"/>
- <function name="gst_sdp_message_get_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-information"/>
- <function name="gst_sdp_message_set_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-information"/>
- <function name="gst_sdp_message_get_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-uri"/>
- <function name="gst_sdp_message_set_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-uri"/>
- <function name="gst_sdp_message_emails_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len"/>
- <function name="gst_sdp_message_get_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email"/>
- <function name="gst_sdp_message_add_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email"/>
- <function name="gst_sdp_message_phones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len"/>
- <function name="gst_sdp_message_get_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone"/>
- <function name="gst_sdp_message_add_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone"/>
- <function name="gst_sdp_message_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection"/>
- <function name="gst_sdp_message_set_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection"/>
- <function name="gst_sdp_message_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len"/>
- <function name="gst_sdp_message_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth"/>
- <function name="gst_sdp_message_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth"/>
- <function name="gst_sdp_message_times_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len"/>
- <function name="gst_sdp_message_get_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time"/>
- <function name="gst_sdp_message_add_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time"/>
- <function name="gst_sdp_message_zones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len"/>
- <function name="gst_sdp_message_get_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone"/>
- <function name="gst_sdp_message_add_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone"/>
- <function name="gst_sdp_message_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key"/>
- <function name="gst_sdp_message_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-key"/>
- <function name="gst_sdp_message_attributes_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-len"/>
- <function name="gst_sdp_message_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute"/>
- <function name="gst_sdp_message_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val"/>
- <function name="gst_sdp_message_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n"/>
- <function name="gst_sdp_message_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute"/>
- <function name="gst_sdp_message_medias_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len"/>
- <function name="gst_sdp_message_get_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media"/>
- <function name="gst_sdp_message_add_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-media"/>
- <function name="gst_sdp_message_dump ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-dump"/>
- <function name="gst_sdp_media_new ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new"/>
- <function name="gst_sdp_media_init ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init"/>
- <function name="gst_sdp_media_uninit ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit"/>
- <function name="gst_sdp_media_free ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free"/>
- <function name="gst_sdp_media_get_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-media"/>
- <function name="gst_sdp_media_set_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media"/>
- <function name="gst_sdp_media_get_port ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-port"/>
- <function name="gst_sdp_media_get_num_ports ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-num-ports"/>
- <function name="gst_sdp_media_set_port_info ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-port-info"/>
- <function name="gst_sdp_media_get_proto ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-proto"/>
- <function name="gst_sdp_media_set_proto ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-proto"/>
- <function name="gst_sdp_media_formats_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len"/>
- <function name="gst_sdp_media_get_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format"/>
- <function name="gst_sdp_media_add_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format"/>
- <function name="gst_sdp_media_get_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information"/>
- <function name="gst_sdp_media_set_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information"/>
- <function name="gst_sdp_media_connections_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len"/>
- <function name="gst_sdp_media_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection"/>
- <function name="gst_sdp_media_add_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection"/>
- <function name="gst_sdp_media_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len"/>
- <function name="gst_sdp_media_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth"/>
- <function name="gst_sdp_media_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth"/>
- <function name="gst_sdp_media_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key"/>
- <function name="gst_sdp_media_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-key"/>
- <function name="gst_sdp_media_attributes_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-len"/>
- <function name="gst_sdp_media_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute"/>
- <function name="gst_sdp_media_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val"/>
- <function name="gst_sdp_media_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n"/>
- <function name="gst_sdp_media_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute"/>
- <function name="gst_sdp_media_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text"/>
- <function name="" link="gst-plugins-base-libs-gsttag.html#idp24834784"/>
- <function name="GST_TAG_MUSICBRAINZ_TRACKID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRACKID:CAPS"/>
- <function name="GST_TAG_MUSICBRAINZ_ARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ARTISTID:CAPS"/>
- <function name="GST_TAG_MUSICBRAINZ_ALBUMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMID:CAPS"/>
- <function name="GST_TAG_MUSICBRAINZ_ALBUMARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMARTISTID:CAPS"/>
- <function name="GST_TAG_MUSICBRAINZ_TRMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRMID:CAPS"/>
- <function name="GST_TAG_MUSICBRAINZ_SORTNAME" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-SORTNAME:CAPS"/>
- <function name="GST_TAG_CDDA_CDDB_DISCID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID:CAPS"/>
- <function name="GST_TAG_CDDA_CDDB_DISCID_FULL" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID-FULL:CAPS"/>
- <function name="GST_TAG_CDDA_MUSICBRAINZ_DISCID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID:CAPS"/>
- <function name="GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID-FULL:CAPS"/>
- <function name="GST_TAG_CDDA_TRACK_TAGS" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-TRACK-TAGS:CAPS"/>
- <function name="GST_TAG_CMML_CLIP" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CMML-CLIP:CAPS"/>
- <function name="GST_TAG_CMML_HEAD" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CMML-HEAD:CAPS"/>
- <function name="GST_TAG_CMML_STREAM" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CMML-STREAM:CAPS"/>
- <function name="GST_TAG_CAPTURING_SHUTTER_SPEED" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SHUTTER-SPEED:CAPS"/>
- <function name="GST_TAG_CAPTURING_FOCAL_RATIO" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FOCAL-RATIO:CAPS"/>
- <function name="GST_TAG_CAPTURING_FOCAL_LENGTH" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FOCAL-LENGTH:CAPS"/>
- <function name="GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-DIGITAL-ZOOM-RATIO:CAPS"/>
- <function name="GST_TAG_CAPTURING_ISO_SPEED" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-ISO-SPEED:CAPS"/>
- <function name="GST_TAG_CAPTURING_EXPOSURE_PROGRAM" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-PROGRAM:CAPS"/>
- <function name="GST_TAG_CAPTURING_EXPOSURE_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-MODE:CAPS"/>
- <function name="GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SCENE-CAPTURE-TYPE:CAPS"/>
- <function name="GST_TAG_CAPTURING_GAIN_ADJUSTMENT" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-GAIN-ADJUSTMENT:CAPS"/>
- <function name="GST_TAG_CAPTURING_WHITE_BALANCE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-WHITE-BALANCE:CAPS"/>
- <function name="GST_TAG_CAPTURING_CONTRAST" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-CONTRAST:CAPS"/>
- <function name="GST_TAG_CAPTURING_SATURATION" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SATURATION:CAPS"/>
- <function name="GST_TAG_CAPTURING_SHARPNESS" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SHARPNESS:CAPS"/>
- <function name="GST_TAG_CAPTURING_FLASH_FIRED" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-FIRED:CAPS"/>
- <function name="GST_TAG_CAPTURING_FLASH_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS"/>
- <function name="GST_TAG_CAPTURING_METERING_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS"/>
- <function name="GST_TAG_CAPTURING_SOURCE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS"/>
- <function name="GST_TAG_IMAGE_HORIZONTAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS"/>
- <function name="GST_TAG_IMAGE_VERTICAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS"/>
- <function name="gst_tag_register_musicbrainz_tags ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags"/>
- <function name="gst_tag_freeform_string_to_utf8 ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8"/>
- <function name="gst_tag_parse_extended_comment ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment"/>
- <function name="gst_tag_image_data_to_image_buffer ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer"/>
- <function name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType"/>
- <function name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp24832896"/>
- <function name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
- <function name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
- <function name="gst_vorbis_tag_add ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add"/>
- <function name="gst_tag_to_vorbis_comments ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments"/>
- <function name="gst_tag_list_from_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer"/>
- <function name="gst_tag_list_to_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer"/>
- <function name="" link="gst-plugins-base-libs-gsttagid3.html#idp25099152"/>
- <function name="gst_tag_id3_genre_count ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count"/>
- <function name="gst_tag_id3_genre_get ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get"/>
- <function name="gst_tag_list_new_from_id3v1 ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1"/>
- <function name="gst_tag_from_id3_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-tag"/>
- <function name="gst_tag_from_id3_user_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag"/>
- <function name="gst_tag_to_id3_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag"/>
- <function name="gst_tag_list_add_id3_image ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image"/>
- <function name="gst_tag_list_from_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer"/>
- <function name="gst_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer"/>
- <function name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp10464912"/>
- <function name="struct GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux"/>
- <function name="struct GstTagDemuxClass" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass"/>
- <function name="enum GstTagDemuxResult" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxResult"/>
- <function name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp24771488"/>
- <function name="gst_tag_get_language_codes ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes"/>
- <function name="gst_tag_get_language_name ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name"/>
- <function name="gst_tag_get_language_code()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code"/>
- <function name="gst_tag_get_language_code_iso_639_1 ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1"/>
- <function name="gst_tag_get_language_code_iso_639_2B ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2B"/>
- <function name="gst_tag_get_language_code_iso_639_2T ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2T"/>
- <function name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp19337104"/>
- <function name="gst_pb_utils_init ()" link="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init"/>
- <function name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"/>
- <function name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS"/>
- <function name="GST_PLUGINS_BASE_VERSION_MICRO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS"/>
- <function name="GST_PLUGINS_BASE_VERSION_NANO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS"/>
- <function name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
- <function name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version"/>
- <function name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string"/>
- <function name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp24572928"/>
- <function name="gst_codec_utils_aac_get_sample_rate_from_index ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index"/>
- <function name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile"/>
- <function name="gst_codec_utils_aac_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level"/>
- <function name="gst_codec_utils_aac_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile"/>
- <function name="gst_codec_utils_h264_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile"/>
- <function name="gst_codec_utils_h264_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level"/>
- <function name="gst_codec_utils_h264_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile"/>
- <function name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile"/>
- <function name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level"/>
- <function name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile"/>
- <function name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp23918896"/>
- <function name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
- <function name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
- <function name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
- <function name="gst_pb_utils_get_encoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-encoder-description"/>
- <function name="gst_pb_utils_get_element_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description"/>
- <function name="gst_pb_utils_add_codec_description_to_tag_list ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list"/>
- <function name="gst_pb_utils_get_codec_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description"/>
- <function name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp26701328"/>
- <function name="gst_missing_plugin_message_get_installer_detail ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail"/>
- <function name="gst_missing_plugin_message_get_description ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description"/>
- <function name="gst_is_missing_plugin_message ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message"/>
- <function name="gst_missing_decoder_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new"/>
- <function name="gst_missing_encoder_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new"/>
- <function name="gst_missing_uri_source_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new"/>
- <function name="gst_missing_uri_sink_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new"/>
- <function name="gst_missing_element_message_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new"/>
- <function name="gst_missing_uri_source_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-installer-detail-new"/>
- <function name="gst_missing_uri_sink_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-installer-detail-new"/>
- <function name="gst_missing_element_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new"/>
- <function name="gst_missing_decoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new"/>
- <function name="gst_missing_encoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new"/>
- <function name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp23991312"/>
- <function name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn"/>
- <function name="GstInstallPluginsResultFunc ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc"/>
- <function name="gst_install_plugins_async ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async"/>
- <function name="gst_install_plugins_sync ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync"/>
- <function name="gst_install_plugins_return_get_name ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-return-get-name"/>
- <function name="gst_install_plugins_installation_in_progress ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-installation-in-progress"/>
- <function name="gst_install_plugins_supported ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-supported"/>
- <function name="GstInstallPluginsContext" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext"/>
- <function name="gst_install_plugins_context_new ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new"/>
- <function name="gst_install_plugins_context_free ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free"/>
- <function name="gst_install_plugins_context_set_xid ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid"/>
- <function name="struct GstDiscoverer" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-struct"/>
- <function name="gst_discoverer_new ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new"/>
- <function name="gst_discoverer_start ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start"/>
- <function name="gst_discoverer_stop ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stop"/>
- <function name="gst_discoverer_discover_uri ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri"/>
- <function name="gst_discoverer_discover_uri_async ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async"/>
- <function name="GstDiscovererInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct"/>
- <function name="enum GstDiscovererResult" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult"/>
- <function name="gst_discoverer_info_get_duration ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration"/>
- <function name="gst_discoverer_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc"/>
- <function name="gst_discoverer_info_get_result ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result"/>
- <function name="gst_discoverer_info_get_stream_info ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info"/>
- <function name="gst_discoverer_info_get_stream_list ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list"/>
- <function name="gst_discoverer_info_get_tags ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-tags"/>
- <function name="gst_discoverer_info_get_uri ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-uri"/>
- <function name="gst_discoverer_info_get_seekable ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable"/>
- <function name="gst_discoverer_info_ref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref"/>
- <function name="gst_discoverer_info_unref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref"/>
- <function name="GstDiscovererStreamInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo"/>
- <function name="GstDiscovererContainerInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo"/>
- <function name="GstDiscovererAudioInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo"/>
- <function name="GstDiscovererVideoInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo"/>
- <function name="gst_discoverer_stream_info_get_caps ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps"/>
- <function name="gst_discoverer_stream_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc"/>
- <function name="gst_discoverer_stream_info_get_next ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next"/>
- <function name="gst_discoverer_stream_info_get_previous ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous"/>
- <function name="gst_discoverer_stream_info_get_tags ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags"/>
- <function name="gst_discoverer_stream_info_ref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-ref"/>
- <function name="gst_discoverer_stream_info_unref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref"/>
- <function name="gst_discoverer_stream_info_list_free ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free"/>
- <function name="gst_discoverer_stream_info_get_stream_type_nick ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick"/>
- <function name="gst_discoverer_info_get_audio_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams"/>
- <function name="gst_discoverer_info_get_container_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams"/>
- <function name="gst_discoverer_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams"/>
- <function name="gst_discoverer_info_get_video_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams"/>
- <function name="gst_discoverer_audio_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate"/>
- <function name="gst_discoverer_audio_info_get_channels ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels"/>
- <function name="gst_discoverer_audio_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth"/>
- <function name="gst_discoverer_audio_info_get_max_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate"/>
- <function name="gst_discoverer_audio_info_get_sample_rate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate"/>
- <function name="gst_discoverer_container_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams"/>
- <function name="gst_discoverer_video_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate"/>
- <function name="gst_discoverer_video_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth"/>
- <function name="gst_discoverer_video_info_get_framerate_denom ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom"/>
- <function name="gst_discoverer_video_info_get_framerate_num ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-num"/>
- <function name="gst_discoverer_video_info_get_height ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-height"/>
- <function name="gst_discoverer_video_info_is_interlaced ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-interlaced"/>
- <function name="gst_discoverer_video_info_is_image ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-is-image"/>
- <function name="gst_discoverer_video_info_get_max_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-max-bitrate"/>
- <function name="gst_discoverer_video_info_get_par_denom ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-denom"/>
- <function name="gst_discoverer_video_info_get_par_num ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-par-num"/>
- <function name="gst_discoverer_video_info_get_width ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-width"/>
- <function name="The "timeout" property" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer--timeout"/>
- <function name="The "discovered" signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered"/>
- <function name="The "finished" signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished"/>
- <function name="The "starting" signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting"/>
- <function name="" link="gst-plugins-base-libs-encoding-profile.html#idp27641072"/>
- <function name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp27648640"/>
- <function name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp27651632"/>
- <function name="GstEncodingProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"/>
- <function name="gst_encoding_profile_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref"/>
- <function name="gst_encoding_profile_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref"/>
- <function name="gst_encoding_profile_find ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find"/>
- <function name="gst_encoding_profile_get_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name"/>
- <function name="gst_encoding_profile_get_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description"/>
- <function name="gst_encoding_profile_get_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format"/>
- <function name="gst_encoding_profile_get_preset ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-preset"/>
- <function name="gst_encoding_profile_get_presence ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-presence"/>
- <function name="gst_encoding_profile_get_restriction ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction"/>
- <function name="gst_encoding_profile_set_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-name"/>
- <function name="gst_encoding_profile_set_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-description"/>
- <function name="gst_encoding_profile_set_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-format"/>
- <function name="gst_encoding_profile_set_preset ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-preset"/>
- <function name="gst_encoding_profile_set_restriction ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-restriction"/>
- <function name="gst_encoding_profile_set_presence ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence"/>
- <function name="gst_encoding_profile_is_equal ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-is-equal"/>
- <function name="gst_encoding_profile_get_input_caps ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-input-caps"/>
- <function name="gst_encoding_profile_get_type_nick ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-type-nick"/>
- <function name="GstEncodingContainerProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile-struct"/>
- <function name="gst_encoding_container_profile_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new"/>
- <function name="gst_encoding_container_profile_add_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile"/>
- <function name="gst_encoding_container_profile_contains_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-contains-profile"/>
- <function name="gst_encoding_container_profile_get_profiles ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-get-profiles"/>
- <function name="GstEncodingAudioProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile-struct"/>
- <function name="gst_encoding_audio_profile_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new"/>
- <function name="GstEncodingVideoProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile-struct"/>
- <function name="gst_encoding_video_profile_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new"/>
- <function name="gst_encoding_video_profile_get_pass ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-pass"/>
- <function name="gst_encoding_video_profile_get_variableframerate ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-get-variableframerate"/>
- <function name="gst_encoding_video_profile_set_pass ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-pass"/>
- <function name="gst_encoding_video_profile_set_variableframerate ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate"/>
- <function name="GST_ENCODING_CATEGORY_DEVICE" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS"/>
- <function name="GST_ENCODING_CATEGORY_ONLINE_SERVICE" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-ONLINE-SERVICE:CAPS"/>
- <function name="GST_ENCODING_CATEGORY_STORAGE_EDITING" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-STORAGE-EDITING:CAPS"/>
- <function name="GST_ENCODING_CATEGORY_CAPTURE" link="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-CAPTURE:CAPS"/>
- <function name="GstEncodingTarget" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct"/>
- <function name="gst_encoding_target_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-unref"/>
- <function name="gst_encoding_target_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-ref"/>
- <function name="gst_encoding_target_new ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-new"/>
- <function name="gst_encoding_target_get_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-name"/>
- <function name="gst_encoding_target_get_category ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-category"/>
- <function name="gst_encoding_target_get_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-description"/>
- <function name="gst_encoding_target_get_profiles ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profiles"/>
- <function name="gst_encoding_target_get_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-get-profile"/>
- <function name="gst_encoding_target_add_profile ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-add-profile"/>
- <function name="gst_encoding_target_save ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save"/>
- <function name="gst_encoding_target_save_to_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-save-to-file"/>
- <function name="gst_encoding_target_load ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load"/>
- <function name="gst_encoding_target_load_from_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file"/>
- <function name="gst_encoding_list_all_targets ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets"/>
- <function name="gst_encoding_list_available_categories ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories"/>
- <function name="" link="gst-plugins-base-libs-gstvideo.html#idp28861408"/>
- <function name="GST_VIDEO_BLUE_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15:CAPS"/>
- <function name="GST_VIDEO_BLUE_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15-INT:CAPS"/>
- <function name="GST_VIDEO_BLUE_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-16:CAPS"/>
- <function name="GST_VIDEO_BLUE_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-16-INT:CAPS"/>
- <function name="GST_VIDEO_BYTE1_MASK_24" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-24:CAPS"/>
- <function name="GST_VIDEO_BYTE1_MASK_24_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-24-INT:CAPS"/>
- <function name="GST_VIDEO_BYTE1_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-32:CAPS"/>
- <function name="GST_VIDEO_BYTE1_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE1-MASK-32-INT:CAPS"/>
- <function name="GST_VIDEO_BYTE2_MASK_24" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-24:CAPS"/>
- <function name="GST_VIDEO_BYTE2_MASK_24_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-24-INT:CAPS"/>
- <function name="GST_VIDEO_BYTE2_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-32:CAPS"/>
- <function name="GST_VIDEO_BYTE2_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE2-MASK-32-INT:CAPS"/>
- <function name="GST_VIDEO_BYTE3_MASK_24" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-24:CAPS"/>
- <function name="GST_VIDEO_BYTE3_MASK_24_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-24-INT:CAPS"/>
- <function name="GST_VIDEO_BYTE3_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-32:CAPS"/>
- <function name="GST_VIDEO_BYTE3_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE3-MASK-32-INT:CAPS"/>
- <function name="GST_VIDEO_BYTE4_MASK_32" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE4-MASK-32:CAPS"/>
- <function name="GST_VIDEO_BYTE4_MASK_32_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BYTE4-MASK-32-INT:CAPS"/>
- <function name="GST_VIDEO_CAPS_ABGR" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ABGR:CAPS"/>
- <function name="GST_VIDEO_CAPS_ARGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB:CAPS"/>
- <function name="GST_VIDEO_CAPS_BGR" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR:CAPS"/>
- <function name="GST_VIDEO_CAPS_BGRA" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGRA:CAPS"/>
- <function name="GST_VIDEO_CAPS_BGRx" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGRx"/>
- <function name="GST_VIDEO_CAPS_BGRx_HOST_ENDIAN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGRx-HOST-ENDIAN"/>
- <function name="GST_VIDEO_CAPS_RGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB:CAPS"/>
- <function name="GST_VIDEO_CAPS_RGBA" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGBA:CAPS"/>
- <function name="GST_VIDEO_CAPS_RGB_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB-15:CAPS"/>
- <function name="GST_VIDEO_CAPS_RGB_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB-16:CAPS"/>
- <function name="GST_VIDEO_CAPS_RGBx" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGBx"/>
- <function name="GST_VIDEO_CAPS_YUV()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-YUV:CAPS"/>
- <function name="GST_VIDEO_CAPS_xBGR" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-xBGR"/>
- <function name="GST_VIDEO_CAPS_xRGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-xRGB"/>
- <function name="GST_VIDEO_CAPS_xRGB_HOST_ENDIAN" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-xRGB-HOST-ENDIAN"/>
- <function name="GST_VIDEO_CAPS_BGR_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR-15:CAPS"/>
- <function name="GST_VIDEO_CAPS_BGR_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-BGR-16:CAPS"/>
- <function name="GST_VIDEO_CAPS_RGB8_PALETTED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS"/>
- <function name="GST_VIDEO_CAPS_GRAY8" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS"/>
- <function name="GST_VIDEO_CAPS_GRAY16()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS"/>
- <function name="GST_VIDEO_FPS_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS"/>
- <function name="GST_VIDEO_GREEN_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS"/>
- <function name="GST_VIDEO_GREEN_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS"/>
- <function name="GST_VIDEO_GREEN_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-16:CAPS"/>
- <function name="GST_VIDEO_GREEN_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-16-INT:CAPS"/>
- <function name="GST_VIDEO_RED_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-15:CAPS"/>
- <function name="GST_VIDEO_RED_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-15-INT:CAPS"/>
- <function name="GST_VIDEO_RED_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-16:CAPS"/>
- <function name="GST_VIDEO_RED_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-RED-MASK-16-INT:CAPS"/>
- <function name="GST_VIDEO_SIZE_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-SIZE-RANGE:CAPS"/>
- <function name="GST_VIDEO_BUFFER_TFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS"/>
- <function name="GST_VIDEO_BUFFER_RFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS"/>
- <function name="GST_VIDEO_BUFFER_ONEFIELD" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS"/>
- <function name="enum GstVideoFormat" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormat"/>
- <function name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio"/>
- <function name="gst_video_frame_rate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-frame-rate"/>
- <function name="gst_video_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-get-size"/>
- <function name="gst_video_format_convert ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert"/>
- <function name="gst_video_format_new_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps"/>
- <function name="gst_video_format_new_caps_interlaced ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps-interlaced"/>
- <function name="gst_video_format_get_component_height ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height"/>
- <function name="gst_video_format_get_component_offset ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-offset"/>
- <function name="gst_video_format_get_component_width ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-width"/>
- <function name="gst_video_format_get_pixel_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride"/>
- <function name="gst_video_format_get_row_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride"/>
- <function name="gst_video_format_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-size"/>
- <function name="gst_video_format_has_alpha ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-has-alpha"/>
- <function name="gst_video_format_is_rgb ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-rgb"/>
- <function name="gst_video_format_is_gray ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-gray"/>
- <function name="gst_video_format_is_yuv ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-is-yuv"/>
- <function name="gst_video_format_to_fourcc ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-to-fourcc"/>
- <function name="gst_video_format_from_fourcc ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-from-fourcc"/>
- <function name="gst_video_format_parse_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps"/>
- <function name="gst_video_format_parse_caps_interlaced ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-parse-caps-interlaced"/>
- <function name="gst_video_parse_caps_framerate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-framerate"/>
- <function name="gst_video_parse_caps_pixel_aspect_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-pixel-aspect-ratio"/>
- <function name="gst_video_parse_caps_color_matrix ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-color-matrix"/>
- <function name="gst_video_parse_caps_chroma_site ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-chroma-site"/>
- <function name="gst_video_parse_caps_palette ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-parse-caps-palette"/>
- <function name="GstVideoConvertFrameCallback ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoConvertFrameCallback"/>
- <function name="gst_video_convert_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame"/>
- <function name="gst_video_convert_frame_async ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame-async"/>
- <function name="gst_video_event_new_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame"/>
- <function name="gst_video_event_parse_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame"/>
- <function name="" link="gst-plugins-base-libs-gstvideofilter.html#idp23911216"/>
- <function name="struct GstVideoFilter" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct"/>
- <function name="struct GstVideoFilterClass" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass"/>
- <function name="" link="gst-plugins-base-libs-gstvideosink.html#idp27834272"/>
- <function name="struct GstVideoSink" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct"/>
- <function name="struct GstVideoSinkClass" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass"/>
- <function name="struct GstVideoRectangle" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle"/>
- <function name="GST_VIDEO_SINK_HEIGHT()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-HEIGHT:CAPS"/>
- <function name="GST_VIDEO_SINK_PAD()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-PAD:CAPS"/>
- <function name="GST_VIDEO_SINK_WIDTH()" link="gst-plugins-base-libs-gstvideosink.html#GST-VIDEO-SINK-WIDTH:CAPS"/>
- <function name="gst_video_sink_center_rect ()" link="gst-plugins-base-libs-gstvideosink.html#gst-video-sink-center-rect"/>
- <function name="The "show-preroll-frame" property" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame"/>
- </functions>
-</book>
<sub name="Audio Library" link="gstreamer-audio.html">
<sub name="gstaudio" link="gst-plugins-base-libs-gstaudio.html"/>
<sub name="gstaudioclock" link="gst-plugins-base-libs-gstaudioclock.html"/>
+ <sub name="gstaudiodecoder" link="gst-plugins-base-libs-gstaudiodecoder.html"/>
+ <sub name="gstaudioencoder" link="gst-plugins-base-libs-gstaudioencoder.html"/>
<sub name="gstaudiofilter" link="gst-plugins-base-libs-gstaudiofilter.html"/>
<sub name="gstaudiomixerutils" link="gst-plugins-base-libs-gstaudiomixerutils.html"/>
<sub name="gstaudiosink" link="gst-plugins-base-libs-gstaudiosink.html"/>
<sub name="gstbaseaudiosrc" link="gst-plugins-base-libs-gstbaseaudiosrc.html"/>
<sub name="gstmultichannel" link="gst-plugins-base-libs-gstmultichannel.html"/>
<sub name="gstringbuffer" link="gst-plugins-base-libs-gstringbuffer.html"/>
+ <sub name="gstaudioiec61937" link="gst-plugins-base-libs-gstaudioiec61937.html"/>
</sub>
<sub name="CDDA Library" link="gstreamer-cdda.html">
<sub name="gstcddabasesrc" link="gst-plugins-base-libs-gstcddabasesrc.html"/>
<sub name="gsttag" link="gst-plugins-base-libs-gsttag.html"/>
<sub name="gsttagvorbis" link="gst-plugins-base-libs-gsttagvorbis.html"/>
<sub name="gsttagid3" link="gst-plugins-base-libs-gsttagid3.html"/>
+ <sub name="gsttagexif" link="gst-plugins-base-libs-gsttagexif.html"/>
<sub name="gsttagxmp" link="gst-plugins-base-libs-gsttagxmp.html"/>
+ <sub name="gsttagxmpwriter" link="gst-plugins-base-libs-gsttagxmpwriter.html"/>
<sub name="gsttagdemux" link="gst-plugins-base-libs-gsttagdemux.html"/>
+ <sub name="gsttagmux" link="gst-plugins-base-libs-gsttagmux.html"/>
<sub name="gsttaglanguagecodes" link="gst-plugins-base-libs-gsttaglanguagecodes.html"/>
+ <sub name="gsttaglicenses" link="gst-plugins-base-libs-gsttaglicenses.html"/>
</sub>
<sub name="Base Utils Library" link="gstreamer-base-utils.html">
<sub name="gstpbutils" link="gst-plugins-base-libs-gstpbutils.html"/>
+ <sub name="gstpluginsbaseversion" link="gst-plugins-base-libs-gstpluginsbaseversion.html"/>
<sub name="gstpbutilscodecutils" link="gst-plugins-base-libs-gstpbutilscodecutils.html"/>
<sub name="gstpbutilsdescriptions" link="gst-plugins-base-libs-gstpbutilsdescriptions.html"/>
<sub name="gstpbutilsmissingplugins" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html"/>
</sub>
<sub name="Video Library" link="gstreamer-video.html">
<sub name="gstvideo" link="gst-plugins-base-libs-gstvideo.html"/>
+ <sub name="gstvideooverlaycomposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html"/>
<sub name="gstvideofilter" link="gst-plugins-base-libs-gstvideofilter.html"/>
<sub name="gstvideosink" link="gst-plugins-base-libs-gstvideosink.html"/>
</sub>
<sub name="Annotation Glossary" link="annotation-glossary.html"/>
</chapters>
<functions>
- <keyword type="struct" name="struct GstAppSrc" link="gst-plugins-base-libs-appsrc.html#GstAppSrc"/>
<keyword type="enum" name="enum GstAppStreamType" link="gst-plugins-base-libs-appsrc.html#GstAppStreamType"/>
<keyword type="function" name="gst_app_src_set_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps" since="0.10.22"/>
<keyword type="function" name="gst_app_src_get_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps" since="0.10.22"/>
<keyword type="function" name="gst_app_src_set_callbacks ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" since="0.10.23"/>
<keyword type="function" name="gst_app_src_push_buffer ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" since="0.10.22"/>
<keyword type="function" name="gst_app_src_end_of_stream ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" since="0.10.22"/>
- <keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-libs-appsink.html#GstAppSink"/>
<keyword type="function" name="gst_app_sink_set_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps" since="0.10.22"/>
<keyword type="function" name="gst_app_sink_get_caps ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps" since="0.10.22"/>
<keyword type="function" name="gst_app_sink_is_eos ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" since="0.10.22"/>
<keyword type="function" name="gst_app_sink_pull_buffer_list ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list"/>
<keyword type="struct" name="GstAppSinkCallbacks" link="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" since="0.10.23"/>
<keyword type="function" name="gst_app_sink_set_callbacks ()" link="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" since="0.10.23"/>
+ <keyword type="enum" name="enum GstAudioFlags" link="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" since="0.10.36"/>
+ <keyword type="enum" name="enum GstAudioFormat" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" since="0.10.36"/>
+ <keyword type="enum" name="enum GstAudioFormatFlags" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" since="0.10.36"/>
+ <keyword type="struct" name="struct GstAudioFormatInfo" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" since="0.10.36"/>
+ <keyword type="struct" name="struct GstAudioInfo" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_info_init ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init"/>
+ <keyword type="function" name="gst_audio_info_clear ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear"/>
+ <keyword type="function" name="gst_audio_info_copy ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy"/>
+ <keyword type="function" name="gst_audio_info_free ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free"/>
+ <keyword type="function" name="gst_audio_info_from_caps ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_info_to_caps ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_info_convert ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert"/>
+ <keyword type="function" name="gst_audio_format_get_info ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_DEPTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_ENDIANNESS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_FLAGS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_FORMAT()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_FLOAT()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_INTEGER()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_IS_SIGNED()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_NAME()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_FORMAT_INFO_WIDTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_BPF()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_BPS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_CHANNELS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_DEPTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_FLAGS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_FORMAT()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_NAME()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_POSITION()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_RATE()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS"/>
+ <keyword type="macro" name="GST_AUDIO_INFO_WIDTH()" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS"/>
<keyword type="enum" name="enum GstAudioFieldFlag" link="gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag" deprecated="use gst_structure_set() directly"/>
<keyword type="macro" name="GST_FRAMES_TO_CLOCK_TIME()" link="gst-plugins-base-libs-gstaudio.html#GST-FRAMES-TO-CLOCK-TIME:CAPS"/>
<keyword type="macro" name="GST_CLOCK_TIME_TO_FRAMES()" link="gst-plugins-base-libs-gstaudio.html#GST-CLOCK-TIME-TO-FRAMES:CAPS"/>
<keyword type="function" name="gst_audio_clock_get_time ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-get-time" since="0.10.23"/>
<keyword type="function" name="gst_audio_clock_reset ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset"/>
<keyword type="function" name="gst_audio_clock_invalidate ()" link="gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate" since="0.10.31"/>
+ <keyword type="struct" name="struct GstAudioDecoder" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct"/>
+ <keyword type="struct" name="struct GstAudioDecoderClass" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_DECODER_ERROR()" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_DECODER_SINK_NAME" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_DECODER_SINK_PAD()" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_DECODER_SRC_NAME" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_DECODER_SRC_PAD()" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_finish_frame ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_audio_info ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_byte_time ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_delay ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_drainable ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_max_errors ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_min_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_needs_format ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_parse_state ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_plc ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_plc_aware ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_get_tolerance ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_byte_time ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_drainable ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_max_errors ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_min_latency ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_needs_format ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_plc ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_plc_aware ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_decoder_set_tolerance ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance" since="0.10.36"/>
+ <keyword type="property" name="The "min-latency" property" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency"/>
+ <keyword type="property" name="The "plc" property" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc"/>
+ <keyword type="property" name="The "tolerance" property" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance"/>
+ <keyword type="struct" name="struct GstAudioEncoder" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct"/>
+ <keyword type="struct" name="struct GstAudioEncoderClass" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_ENCODER_SEGMENT()" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_ENCODER_SINK_NAME" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_ENCODER_SINK_PAD()" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_ENCODER_SRC_NAME" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS" since="0.10.36"/>
+ <keyword type="macro" name="GST_AUDIO_ENCODER_SRC_PAD()" link="gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_finish_frame ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_audio_info ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_drainable ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_frame_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_frame_samples_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_frame_samples_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max"/>
+ <keyword type="function" name="gst_audio_encoder_get_hard_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_hard_resync ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync"/>
+ <keyword type="function" name="gst_audio_encoder_get_latency ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_lookahead ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead"/>
+ <keyword type="function" name="gst_audio_encoder_get_mark_granule ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_perfect_timestamp ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_get_tolerance ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_proxy_getcaps ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_drainable ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_frame_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_frame_samples_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_frame_samples_max ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_hard_min ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_hard_resync ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync"/>
+ <keyword type="function" name="gst_audio_encoder_set_latency ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_lookahead ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_mark_granule ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_perfect_timestamp ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_encoder_set_tolerance ()" link="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance" since="0.10.36"/>
+ <keyword type="property" name="The "hard-resync" property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync"/>
+ <keyword type="property" name="The "mark-granule" property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule"/>
+ <keyword type="property" name="The "perfect-timestamp" property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp"/>
+ <keyword type="property" name="The "tolerance" property" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance"/>
<keyword type="struct" name="struct GstAudioFilter" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct"/>
<keyword type="struct" name="struct GstAudioFilterClass" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" since="0.10.12"/>
<keyword type="function" name="gst_audio_filter_class_add_pad_templates ()" link="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" since="0.10.12"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstaudiomixerutils.html#idp7862112"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstaudiomixerutils.html#idp8831744"/>
<keyword type="function" name="GstAudioMixerFilterFunc ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#GstAudioMixerFilterFunc"/>
<keyword type="function" name="gst_audio_default_registry_mixer_filter ()" link="gst-plugins-base-libs-gstaudiomixerutils.html#gst-audio-default-registry-mixer-filter" since="0.10.2"/>
<keyword type="struct" name="struct GstAudioSink" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct"/>
<keyword type="function" name="gst_base_audio_sink_get_slave_method ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-slave-method" since="0.10.16"/>
<keyword type="function" name="gst_base_audio_sink_get_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance" since="0.10.31"/>
<keyword type="function" name="gst_base_audio_sink_set_drift_tolerance ()" link="gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance" since="0.10.31"/>
+ <keyword type="property" name="The "alignment-threshold" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold"/>
<keyword type="property" name="The "buffer-time" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time"/>
<keyword type="property" name="The "can-activate-pull" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull"/>
+ <keyword type="property" name="The "discont-wait" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait"/>
<keyword type="property" name="The "drift-tolerance" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance"/>
<keyword type="property" name="The "latency-time" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time"/>
<keyword type="property" name="The "provide-clock" property" link="gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock"/>
<keyword type="function" name="gst_audio_set_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-channel-positions"/>
<keyword type="function" name="gst_audio_set_structure_channel_positions_list ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-structure-channel-positions-list"/>
<keyword type="function" name="gst_audio_check_channel_positions ()" link="gst-plugins-base-libs-gstmultichannel.html#gst-audio-check-channel-positions" since="0.10.20"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstringbuffer.html#idp11277488"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstringbuffer.html#idp12967152"/>
<keyword type="struct" name="struct GstRingBuffer" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBuffer-struct"/>
<keyword type="struct" name="struct GstRingBufferClass" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferClass"/>
<keyword type="struct" name="struct GstRingBufferSpec" link="gst-plugins-base-libs-gstringbuffer.html#GstRingBufferSpec"/>
<keyword type="function" name="gst_ring_buffer_may_start ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-may-start" since="0.10.6"/>
<keyword type="function" name="gst_ring_buffer_parse_caps ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-parse-caps"/>
<keyword type="function" name="gst_ring_buffer_set_flushing ()" link="gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-flushing"/>
- <keyword type="" name="Using GstCddaBaseSrc-based elements in applications" link="gst-plugins-base-libs-gstcddabasesrc.html#idp11424608"/>
+ <keyword type="function" name="gst_audio_iec61937_frame_size ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size" since="0.10.36"/>
+ <keyword type="function" name="gst_audio_iec61937_payload ()" link="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" since="0.10.36"/>
+ <keyword type="" name="Using GstCddaBaseSrc-based elements in applications" link="gst-plugins-base-libs-gstcddabasesrc.html#idp11955168"/>
<keyword type="struct" name="struct GstCddaBaseSrc" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc-struct"/>
<keyword type="struct" name="struct GstCddaBaseSrcClass" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcClass"/>
<keyword type="struct" name="struct GstCddaBaseSrcTrack" link="gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrcTrack"/>
<keyword type="function" name="gst_fft_f64_free ()" link="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free"/>
<keyword type="macro" name="gst_cast_double()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-double"/>
<keyword type="macro" name="gst_cast_float()" link="gst-plugins-base-libs-gstfloatcast.html#gst-cast-float"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp11606512"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalance.html#idp13682272"/>
<keyword type="struct" name="GstColorBalance" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-struct"/>
<keyword type="struct" name="struct GstColorBalanceClass" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceClass"/>
<keyword type="enum" name="enum GstColorBalanceType" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType"/>
<keyword type="function" name="gst_color_balance_value_changed ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-value-changed"/>
<keyword type="function" name="gst_color_balance_get_balance_type ()" link="gst-plugins-base-libs-gstcolorbalance.html#gst-color-balance-get-balance-type" since="0.10.24"/>
<keyword type="signal" name="The "value-changed" signal" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp8229152"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstcolorbalancechannel.html#idp13450016"/>
<keyword type="struct" name="struct GstColorBalanceChannel" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct"/>
<keyword type="struct" name="struct GstColorBalanceChannelClass" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass"/>
<keyword type="signal" name="The "value-changed" signal" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed"/>
<keyword type="function" name="gst_property_probe_probe_property ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property"/>
<keyword type="function" name="gst_property_probe_probe_property_name ()" link="gst-plugins-base-libs-gstpropertyprobe.html#gst-property-probe-probe-property-name"/>
<keyword type="signal" name="The "probe-needed" signal" link="gst-plugins-base-libs-gstpropertyprobe.html#GstPropertyProbe-probe-needed"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp13350128"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gststreamvolume.html#idp15191264"/>
<keyword type="struct" name="GstStreamVolume" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume-struct"/>
<keyword type="enum" name="enum GstStreamVolumeFormat" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" since="0.10.25"/>
<keyword type="function" name="gst_stream_volume_get_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume" since="0.10.25"/>
<keyword type="function" name="gst_stream_volume_convert_volume ()" link="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" since="0.10.25"/>
<keyword type="property" name="The "mute" property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--mute"/>
<keyword type="property" name="The "volume" property" link="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume--volume"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttuner.html#idp15075664"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttuner.html#idp17049216"/>
<keyword type="struct" name="GstTuner" link="gst-plugins-base-libs-gsttuner.html#GstTuner-struct"/>
<keyword type="struct" name="struct GstTunerClass" link="gst-plugins-base-libs-gsttuner.html#GstTunerClass"/>
<keyword type="function" name="gst_tuner_list_channels ()" link="gst-plugins-base-libs-gsttuner.html#gst-tuner-list-channels"/>
<keyword type="signal" name="The "frequency-changed" signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-frequency-changed"/>
<keyword type="signal" name="The "norm-changed" signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-norm-changed"/>
<keyword type="signal" name="The "signal-changed" signal" link="gst-plugins-base-libs-gsttuner.html#GstTuner-signal-changed"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttunerchannel.html#idp10457584"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttunerchannel.html#idp7342944"/>
<keyword type="struct" name="struct GstTunerChannel" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-struct"/>
<keyword type="enum" name="enum GstTunerChannelFlags" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannelFlags"/>
<keyword type="macro" name="GST_TUNER_CHANNEL_HAS_FLAG()" link="gst-plugins-base-libs-gsttunerchannel.html#GST-TUNER-CHANNEL-HAS-FLAG:CAPS"/>
<keyword type="signal" name="The "frequency-changed" signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-frequency-changed"/>
<keyword type="signal" name="The "signal-changed" signal" link="gst-plugins-base-libs-gsttunerchannel.html#GstTunerChannel-signal-changed"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttunernorm.html#idp9600144"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttunernorm.html#idp6264048"/>
<keyword type="struct" name="struct GstTunerNorm" link="gst-plugins-base-libs-gsttunernorm.html#GstTunerNorm-struct"/>
<keyword type="struct" name="GstVideoOrientation" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation-struct"/>
<keyword type="struct" name="struct GstVideoOrientationInterface" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface"/>
<keyword type="function" name="gst_video_orientation_set_hflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-hflip" since="0.10.11"/>
<keyword type="function" name="gst_video_orientation_set_vcenter ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vcenter" since="0.10.11"/>
<keyword type="function" name="gst_video_orientation_set_vflip ()" link="gst-plugins-base-libs-gstvideoorientation.html#gst-video-orientation-set-vflip" since="0.10.11"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstxoverlay.html#idp15827040"/>
- <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstxoverlay.html#idp15836384"/>
- <keyword type="" name="GstXOverlay and Gtk+" link="gst-plugins-base-libs-gstxoverlay.html#idp15848544"/>
- <keyword type="" name="GstXOverlay and Qt" link="gst-plugins-base-libs-gstxoverlay.html#idp15853312"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstxoverlay.html#idp17754944"/>
+ <keyword type="" name="Two basic usage scenarios" link="gst-plugins-base-libs-gstxoverlay.html#idp17764272"/>
+ <keyword type="" name="GstXOverlay and Gtk+" link="gst-plugins-base-libs-gstxoverlay.html#idp17776432"/>
+ <keyword type="" name="GstXOverlay and Qt" link="gst-plugins-base-libs-gstxoverlay.html#idp17781264"/>
<keyword type="struct" name="GstXOverlay" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlay-struct"/>
<keyword type="struct" name="struct GstXOverlayClass" link="gst-plugins-base-libs-gstxoverlay.html#GstXOverlayClass"/>
<keyword type="function" name="gst_x_overlay_set_xwindow_id ()" link="gst-plugins-base-libs-gstxoverlay.html#gst-x-overlay-set-xwindow-id" deprecated="Use gst_x_overlay_set_window_handle() instead."/>
<keyword type="function" name="gst_netaddress_set_address_bytes ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-set-address-bytes" since="0.10.22"/>
<keyword type="function" name="gst_netaddress_equal ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-equal" since="0.10.18"/>
<keyword type="function" name="gst_netaddress_to_string ()" link="gst-plugins-base-libs-gstnetbuffer.html#gst-netaddress-to-string" since="0.10.24"/>
- <keyword type="macro" name="GST_RIFF_00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS"/>
- <keyword type="macro" name="GST_RIFF_0021" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS"/>
- <keyword type="macro" name="GST_RIFF_0031" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS"/>
- <keyword type="macro" name="GST_RIFF_0032" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS"/>
- <keyword type="macro" name="GST_RIFF_00AM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS"/>
- <keyword type="macro" name="GST_RIFF_00__" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS"/>
- <keyword type="macro" name="GST_RIFF_00db" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00db"/>
- <keyword type="macro" name="GST_RIFF_00dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc"/>
- <keyword type="macro" name="GST_RIFF_00dx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx"/>
- <keyword type="macro" name="GST_RIFF_00id" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00id"/>
- <keyword type="macro" name="GST_RIFF_00iv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv"/>
- <keyword type="macro" name="GST_RIFF_00pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc"/>
- <keyword type="macro" name="GST_RIFF_00rt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt"/>
- <keyword type="macro" name="GST_RIFF_00vc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc"/>
- <keyword type="macro" name="GST_RIFF_00xm" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm"/>
- <keyword type="macro" name="GST_RIFF_00xx" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx"/>
- <keyword type="macro" name="GST_RIFF_01" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS"/>
- <keyword type="macro" name="GST_RIFF_01dc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc"/>
- <keyword type="macro" name="GST_RIFF_01pc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc"/>
- <keyword type="macro" name="GST_RIFF_01wb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb"/>
- <keyword type="macro" name="GST_RIFF_02" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS"/>
- <keyword type="macro" name="GST_RIFF_03" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS"/>
- <keyword type="macro" name="GST_RIFF_04" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS"/>
- <keyword type="macro" name="GST_RIFF_05" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS"/>
- <keyword type="macro" name="GST_RIFF_06" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS"/>
- <keyword type="macro" name="GST_RIFF_07" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS"/>
- <keyword type="macro" name="GST_RIFF_AURA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS"/>
- <keyword type="macro" name="GST_RIFF_BW10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS"/>
- <keyword type="macro" name="GST_RIFF_CCC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS"/>
- <keyword type="macro" name="GST_RIFF_CRAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS"/>
- <keyword type="macro" name="GST_RIFF_CVID" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS"/>
- <keyword type="macro" name="GST_RIFF_CYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS"/>
- <keyword type="macro" name="GST_RIFF_DIB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS"/>
- <keyword type="macro" name="GST_RIFF_DISP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS"/>
- <keyword type="macro" name="GST_RIFF_DIV3" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS"/>
- <keyword type="macro" name="GST_RIFF_DMB1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS"/>
- <keyword type="macro" name="GST_RIFF_FCCH_MSVC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS"/>
- <keyword type="macro" name="GST_RIFF_FCCH_RLE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS"/>
- <keyword type="macro" name="GST_RIFF_FCCH_msvc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc"/>
- <keyword type="macro" name="GST_RIFF_FCC_auds" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds"/>
- <keyword type="macro" name="GST_RIFF_FCC_iavs" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs"/>
- <keyword type="macro" name="GST_RIFF_FCC_pads" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads"/>
- <keyword type="macro" name="GST_RIFF_FCC_txts" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts"/>
- <keyword type="macro" name="GST_RIFF_FCC_vidc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc"/>
- <keyword type="macro" name="GST_RIFF_FCC_vids" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids"/>
- <keyword type="macro" name="GST_RIFF_FF00" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS"/>
- <keyword type="macro" name="GST_RIFF_H263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS"/>
- <keyword type="macro" name="GST_RIFF_I420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS"/>
- <keyword type="macro" name="GST_RIFF_IDIT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS"/>
- <keyword type="macro" name="GST_RIFF_IJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IARL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IART" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ICMS" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ICMT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ICOP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ICRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ICRP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IDIM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IDPI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IENG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IGNR" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IKEY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ILGT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IMED" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_INAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IPLT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_IPRD" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ISHP" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ISRC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ISRF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS"/>
- <keyword type="macro" name="GST_RIFF_INFO_ITCH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS"/>
- <keyword type="macro" name="GST_RIFF_ISBJ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS"/>
- <keyword type="macro" name="GST_RIFF_ISFT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS"/>
- <keyword type="macro" name="GST_RIFF_IV31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS"/>
- <keyword type="macro" name="GST_RIFF_IV32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS"/>
- <keyword type="macro" name="GST_RIFF_IV41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS"/>
- <keyword type="macro" name="GST_RIFF_IV50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS"/>
- <keyword type="macro" name="GST_RIFF_IYUV" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS"/>
- <keyword type="macro" name="GST_RIFF_JPEG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS"/>
- <keyword type="macro" name="GST_RIFF_L263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS"/>
- <keyword type="macro" name="GST_RIFF_LIST_AVIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS"/>
- <keyword type="macro" name="GST_RIFF_LIST_INFO" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS"/>
- <keyword type="macro" name="GST_RIFF_LIST_adtl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl"/>
- <keyword type="macro" name="GST_RIFF_LIST_hdrl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl"/>
- <keyword type="macro" name="GST_RIFF_LIST_movi" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi"/>
- <keyword type="macro" name="GST_RIFF_LIST_odml" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml"/>
- <keyword type="macro" name="GST_RIFF_LIST_strl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl"/>
- <keyword type="macro" name="GST_RIFF_M263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS"/>
- <keyword type="macro" name="GST_RIFF_MJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS"/>
- <keyword type="macro" name="GST_RIFF_MPIX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS"/>
- <keyword type="macro" name="GST_RIFF_MVI1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS"/>
- <keyword type="macro" name="GST_RIFF_NONE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS"/>
- <keyword type="macro" name="GST_RIFF_PACK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS"/>
- <keyword type="macro" name="GST_RIFF_Q1_0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RAW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RGB" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RIFF_AVI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RIFF_CDXA" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RIFF_WAVE" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RLE4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RLE8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS"/>
- <keyword type="macro" name="GST_RIFF_RT21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS"/>
- <keyword type="macro" name="GST_RIFF_SFMC" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_acid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid"/>
- <keyword type="macro" name="GST_RIFF_TAG_AVF0" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_BEXT" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_JUNK" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_JUNQ" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_LIST" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_RIFF" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_RIFX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS"/>
- <keyword type="macro" name="GST_RIFF_TAG_avih" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih"/>
- <keyword type="macro" name="GST_RIFF_TAG_bext" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext"/>
- <keyword type="macro" name="GST_RIFF_TAG_cue" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue"/>
- <keyword type="macro" name="GST_RIFF_TAG_data" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data"/>
- <keyword type="macro" name="GST_RIFF_TAG_dmlh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh"/>
- <keyword type="macro" name="GST_RIFF_TAG_fact" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact"/>
- <keyword type="macro" name="GST_RIFF_TAG_fmt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt"/>
- <keyword type="macro" name="GST_RIFF_TAG_idx1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1"/>
- <keyword type="macro" name="GST_RIFF_TAG_plst" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst"/>
- <keyword type="macro" name="GST_RIFF_TAG_strd" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd"/>
- <keyword type="macro" name="GST_RIFF_TAG_strf" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf"/>
- <keyword type="macro" name="GST_RIFF_TAG_strh" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh"/>
- <keyword type="macro" name="GST_RIFF_TAG_strn" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn"/>
- <keyword type="macro" name="GST_RIFF_TAG_vedt" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt"/>
- <keyword type="macro" name="GST_RIFF_TRAN" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS"/>
- <keyword type="macro" name="GST_RIFF_ULTI" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS"/>
- <keyword type="macro" name="GST_RIFF_V422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS"/>
- <keyword type="macro" name="GST_RIFF_VDOW" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS"/>
- <keyword type="macro" name="GST_RIFF_VIXL" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS"/>
- <keyword type="macro" name="GST_RIFF_VSSH" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS"/>
- <keyword type="macro" name="GST_RIFF_VYUY" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS"/>
- <keyword type="macro" name="GST_RIFF_WHAM" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS"/>
- <keyword type="macro" name="GST_RIFF_WINX" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS"/>
- <keyword type="macro" name="GST_RIFF_WPY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS"/>
- <keyword type="macro" name="GST_RIFF_XMPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS"/>
- <keyword type="macro" name="GST_RIFF_Y41P" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS"/>
- <keyword type="macro" name="GST_RIFF_YUV8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS"/>
- <keyword type="macro" name="GST_RIFF_YUV9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS"/>
- <keyword type="macro" name="GST_RIFF_YUY2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS"/>
- <keyword type="macro" name="GST_RIFF_YV12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS"/>
- <keyword type="macro" name="GST_RIFF_YVU9" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS"/>
- <keyword type="macro" name="GST_RIFF_azpr" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr"/>
- <keyword type="macro" name="GST_RIFF_bw10" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10"/>
- <keyword type="macro" name="GST_RIFF_ccc" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc"/>
- <keyword type="macro" name="GST_RIFF_cram" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cram"/>
- <keyword type="macro" name="GST_RIFF_cvid" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid"/>
- <keyword type="macro" name="GST_RIFF_cyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv"/>
- <keyword type="macro" name="GST_RIFF_dmb1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1"/>
- <keyword type="macro" name="GST_RIFF_h263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-h263"/>
- <keyword type="macro" name="GST_RIFF_i263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i263"/>
- <keyword type="macro" name="GST_RIFF_i420" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-i420"/>
- <keyword type="macro" name="GST_RIFF_iv31" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31"/>
- <keyword type="macro" name="GST_RIFF_iv32" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32"/>
- <keyword type="macro" name="GST_RIFF_iv41" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41"/>
- <keyword type="macro" name="GST_RIFF_iv50" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50"/>
- <keyword type="macro" name="GST_RIFF_iyuv" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv"/>
- <keyword type="macro" name="GST_RIFF_jpeg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg"/>
- <keyword type="macro" name="GST_RIFF_m263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-m263"/>
- <keyword type="macro" name="GST_RIFF_mJPG" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG"/>
- <keyword type="macro" name="GST_RIFF_mvi1" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1"/>
- <keyword type="macro" name="GST_RIFF_none" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-none"/>
- <keyword type="macro" name="GST_RIFF_pack" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-pack"/>
- <keyword type="macro" name="GST_RIFF_rec" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rec"/>
- <keyword type="macro" name="GST_RIFF_rgb" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb"/>
- <keyword type="macro" name="GST_RIFF_rle4" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4"/>
- <keyword type="macro" name="GST_RIFF_rle8" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8"/>
- <keyword type="macro" name="GST_RIFF_rpza" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza"/>
- <keyword type="macro" name="GST_RIFF_rt21" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21"/>
- <keyword type="macro" name="GST_RIFF_tran" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-tran"/>
- <keyword type="macro" name="GST_RIFF_ulti" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti"/>
- <keyword type="macro" name="GST_RIFF_v422" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-v422"/>
- <keyword type="macro" name="GST_RIFF_vixl" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl"/>
- <keyword type="macro" name="GST_RIFF_vyuy" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy"/>
- <keyword type="macro" name="GST_RIFF_wham" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-wham"/>
- <keyword type="macro" name="GST_RIFF_x263" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-x263"/>
- <keyword type="macro" name="GST_RIFF_xmpg" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg"/>
- <keyword type="macro" name="GST_RIFF_y41p" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p"/>
- <keyword type="macro" name="GST_RIFF_yuy2" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2"/>
- <keyword type="macro" name="GST_RIFF_yv12" link="gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12"/>
- <keyword type="struct" name="gst_riff_acid" link="gst-plugins-base-libs-gstriff.html#gst-riff-acid"/>
<keyword type="function" name="gst_riff_create_audio_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps"/>
<keyword type="function" name="gst_riff_create_audio_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps"/>
<keyword type="function" name="gst_riff_create_iavs_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps"/>
<keyword type="function" name="gst_riff_create_iavs_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps"/>
<keyword type="function" name="gst_riff_create_video_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps"/>
<keyword type="function" name="gst_riff_create_video_template_caps ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps"/>
- <keyword type="struct" name="gst_riff_dmlh" link="gst-plugins-base-libs-gstriff.html#gst-riff-dmlh"/>
- <keyword type="struct" name="gst_riff_index_entry" link="gst-plugins-base-libs-gstriff.html#gst-riff-index-entry"/>
<keyword type="function" name="gst_riff_init ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-init"/>
<keyword type="function" name="gst_riff_parse_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk"/>
<keyword type="function" name="gst_riff_parse_file_header ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header"/>
<keyword type="function" name="gst_riff_parse_strf_vids ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids"/>
<keyword type="function" name="gst_riff_parse_strh ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh"/>
<keyword type="function" name="gst_riff_read_chunk ()" link="gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk"/>
- <keyword type="struct" name="gst_riff_strf_auds" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds"/>
- <keyword type="struct" name="gst_riff_strf_iavs" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs"/>
- <keyword type="struct" name="gst_riff_strf_vids" link="gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids"/>
- <keyword type="struct" name="gst_riff_strh" link="gst-plugins-base-libs-gstriff.html#gst-riff-strh"/>
- <keyword type="" name="Usage" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#idp16015920"/>
+ <keyword type="" name="Usage" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#idp18656560"/>
<keyword type="struct" name="struct GstBaseRTPAudioPayload" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload-struct"/>
<keyword type="struct" name="struct GstBaseRTPAudioPayloadClass" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayloadClass"/>
<keyword type="function" name="gst_base_rtp_audio_payload_set_frame_based ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-frame-based"/>
<keyword type="function" name="gst_base_rtp_audio_payload_flush ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-flush" since="0.10.25"/>
<keyword type="function" name="gst_base_rtp_audio_payload_set_samplebits_options ()" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-base-rtp-audio-payload-set-samplebits-options" since="0.10.18"/>
<keyword type="property" name="The "buffer-list" property" link="gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload--buffer-list"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstbasertpdepayload.html#idp15451472"/>
<keyword type="struct" name="struct GstBaseRTPDepayload" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload-struct"/>
<keyword type="struct" name="struct GstBaseRTPDepayloadClass" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayloadClass"/>
<keyword type="macro" name="GST_BASE_RTP_DEPAYLOAD_SINKPAD()" link="gst-plugins-base-libs-gstbasertpdepayload.html#GST-BASE-RTP-DEPAYLOAD-SINKPAD:CAPS"/>
<keyword type="function" name="gst_base_rtp_depayload_push_ts ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-ts"/>
<keyword type="function" name="gst_base_rtp_depayload_push_list ()" link="gst-plugins-base-libs-gstbasertpdepayload.html#gst-base-rtp-depayload-push-list" since="0.10.32"/>
<keyword type="property" name="The "queue-delay" property" link="gst-plugins-base-libs-gstbasertpdepayload.html#GstBaseRTPDepayload--queue-delay"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstbasertppayload.html#idp17358176"/>
<keyword type="struct" name="struct GstBaseRTPPayload" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload-struct"/>
<keyword type="struct" name="struct GstBaseRTPPayloadClass" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayloadClass"/>
<keyword type="macro" name="GST_BASE_RTP_PAYLOAD_MTU()" link="gst-plugins-base-libs-gstbasertppayload.html#GST-BASE-RTP-PAYLOAD-MTU:CAPS"/>
<keyword type="property" name="The "ssrc" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--ssrc"/>
<keyword type="property" name="The "timestamp" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp"/>
<keyword type="property" name="The "timestamp-offset" property" link="gst-plugins-base-libs-gstbasertppayload.html#GstBaseRTPPayload--timestamp-offset"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp19435168"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtpbuffer.html#idp20554720"/>
<keyword type="macro" name="GST_RTP_VERSION" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-VERSION:CAPS"/>
<keyword type="function" name="gst_rtp_buffer_allocate_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-allocate-data"/>
<keyword type="function" name="gst_rtp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-new-take-data"/>
<keyword type="function" name="gst_rtp_buffer_list_get_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-get-extension-twobytes-header" since="0.10.31"/>
<keyword type="function" name="gst_rtp_buffer_list_add_extension_onebyte_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-onebyte-header" since="0.10.31"/>
<keyword type="function" name="gst_rtp_buffer_list_add_extension_twobytes_header ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-list-add-extension-twobytes-header" since="0.10.31"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp18698800"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtcpbuffer.html#idp19709744"/>
<keyword type="macro" name="GST_RTCP_VERSION" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VERSION:CAPS"/>
<keyword type="macro" name="GST_RTCP_MAX_SDES" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-SDES:CAPS"/>
<keyword type="macro" name="GST_RTCP_MAX_BYE_SSRC_COUNT" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"/>
<keyword type="function" name="gst_rtcp_unix_to_ntp ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-unix-to-ntp"/>
<keyword type="function" name="gst_rtcp_sdes_name_to_type ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-name-to-type" since="0.10.26"/>
<keyword type="function" name="gst_rtcp_sdes_type_to_name ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-sdes-type-to-name" since="0.10.26"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp17281392"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtppayloads.html#idp8311104"/>
<keyword type="enum" name="enum GstRTPPayload" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayload"/>
<keyword type="macro" name="GST_RTP_PAYLOAD_IS_DYNAMIC()" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"/>
<keyword type="struct" name="struct GstRTPPayloadInfo" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo"/>
<keyword type="function" name="gst_rtsp_watch_send_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message" since="0.10.25"/>
<keyword type="function" name="gst_rtsp_watch_write_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" since="0.10.25"/>
<keyword type="macro" name="GST_RTSP_CHECK()" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS"/>
+ <keyword type="macro" name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
<keyword type="enum" name="enum GstRTSPEvent" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent"/>
<keyword type="enum" name="enum GstRTSPResult" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult"/>
<keyword type="enum" name="enum GstRTSPFamily" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPFamily"/>
<keyword type="enum" name="enum GstRTSPVersion" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion"/>
<keyword type="enum" name="enum GstRTSPMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod"/>
<keyword type="enum" name="enum GstRTSPAuthMethod" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod"/>
- <keyword type="macro" name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
<keyword type="enum" name="enum GstRTSPHeaderField" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField"/>
<keyword type="enum" name="enum GstRTSPStatusCode" link="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode"/>
<keyword type="function" name="gst_rtsp_strresult ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult"/>
<keyword type="function" name="gst_rtsp_options_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" since="0.10.23"/>
<keyword type="function" name="gst_rtsp_find_header_field ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field"/>
<keyword type="function" name="gst_rtsp_find_method ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp11962528"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstrtspextension.html#idp11883136"/>
<keyword type="struct" name="GstRTSPExtension" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtension"/>
<keyword type="struct" name="struct GstRTSPExtensionInterface" link="gst-plugins-base-libs-gstrtspextension.html#GstRTSPExtensionInterface"/>
<keyword type="enum" name="enum GstRTSPMsgType" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType"/>
<keyword type="function" name="gst_rtsp_url_set_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-set-port"/>
<keyword type="function" name="gst_rtsp_url_get_port ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-get-port"/>
<keyword type="function" name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components" since="0.10.32"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp25276480"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstsdpmessage.html#idp26359712"/>
<keyword type="enum" name="enum GstSDPResult" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult"/>
<keyword type="struct" name="GstSDPOrigin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin"/>
<keyword type="struct" name="GstSDPConnection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection"/>
<keyword type="function" name="gst_sdp_media_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n"/>
<keyword type="function" name="gst_sdp_media_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute"/>
<keyword type="function" name="gst_sdp_media_as_text ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-as-text"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp24834784"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttag.html#idp26027584"/>
<keyword type="macro" name="GST_TAG_MUSICBRAINZ_TRACKID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-TRACKID:CAPS"/>
<keyword type="macro" name="GST_TAG_MUSICBRAINZ_ARTISTID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ARTISTID:CAPS"/>
<keyword type="macro" name="GST_TAG_MUSICBRAINZ_ALBUMID" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICBRAINZ-ALBUMID:CAPS"/>
<keyword type="macro" name="GST_TAG_CAPTURING_FLASH_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS" since="0.10.31"/>
<keyword type="macro" name="GST_TAG_CAPTURING_METERING_MODE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS" since="0.10.31"/>
<keyword type="macro" name="GST_TAG_CAPTURING_SOURCE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS" since="0.10.31"/>
+ <keyword type="macro" name="GST_TAG_CAPTURING_EXPOSURE_COMPENSATION" link="gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" since="0.10.33"/>
<keyword type="macro" name="GST_TAG_IMAGE_HORIZONTAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS" since="0.10.31"/>
<keyword type="macro" name="GST_TAG_IMAGE_VERTICAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS" since="0.10.31"/>
+ <keyword type="macro" name="GST_TAG_ID3V2_HEADER_SIZE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" since="0.10.36"/>
<keyword type="function" name="gst_tag_register_musicbrainz_tags ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags"/>
<keyword type="function" name="gst_tag_freeform_string_to_utf8 ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8" since="0.10.13"/>
<keyword type="function" name="gst_tag_parse_extended_comment ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment" since="0.10.10"/>
<keyword type="function" name="gst_tag_image_data_to_image_buffer ()" link="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-buffer" since="0.10.20"/>
<keyword type="enum" name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType" since="0.10.9"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp24832896"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttagvorbis.html#idp24787424"/>
<keyword type="function" name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
<keyword type="function" name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
<keyword type="function" name="gst_vorbis_tag_add ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-vorbis-tag-add"/>
<keyword type="function" name="gst_tag_to_vorbis_comments ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-comments"/>
<keyword type="function" name="gst_tag_list_from_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-from-vorbiscomment-buffer"/>
<keyword type="function" name="gst_tag_list_to_vorbiscomment_buffer ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-list-to-vorbiscomment-buffer"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp25099152"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttagid3.html#idp24766688"/>
<keyword type="function" name="gst_tag_id3_genre_count ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-count"/>
<keyword type="function" name="gst_tag_id3_genre_get ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-id3-genre-get"/>
<keyword type="function" name="gst_tag_list_new_from_id3v1 ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-new-from-id3v1"/>
<keyword type="function" name="gst_tag_from_id3_user_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag"/>
<keyword type="function" name="gst_tag_to_id3_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag"/>
<keyword type="function" name="gst_tag_list_add_id3_image ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image" since="0.10.20"/>
+ <keyword type="function" name="gst_tag_get_id3v2_tag_size ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_list_from_id3v2_tag ()" link="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_list_to_exif_buffer ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer" since="0.10.30"/>
+ <keyword type="function" name="gst_tag_list_to_exif_buffer_with_tiff_header ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header" since="0.10.30"/>
+ <keyword type="function" name="gst_tag_list_from_exif_buffer ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer" since="0.10.30"/>
+ <keyword type="function" name="gst_tag_list_from_exif_buffer_with_tiff_header ()" link="gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header" since="0.10.30"/>
<keyword type="function" name="gst_tag_list_from_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer" since="0.10.29"/>
<keyword type="function" name="gst_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer" since="0.10.29"/>
- <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp10464912"/>
+ <keyword type="function" name="gst_tag_list_to_xmp_buffer_full ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full" since="0.10.33"/>
+ <keyword type="function" name="gst_tag_xmp_list_schemas ()" link="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" since="0.10.33"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttagxmpwriter.html#idp24958400"/>
+ <keyword type="function" name="gst_tag_xmp_writer_add_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas" since="0.10.33"/>
+ <keyword type="function" name="gst_tag_xmp_writer_add_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema" since="0.10.33"/>
+ <keyword type="function" name="gst_tag_xmp_writer_has_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema" since="0.10.33"/>
+ <keyword type="function" name="gst_tag_xmp_writer_remove_schema ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema" since="0.10.33"/>
+ <keyword type="function" name="gst_tag_xmp_writer_remove_all_schemas ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas" since="0.10.33"/>
+ <keyword type="function" name="gst_tag_xmp_writer_tag_list_to_xmp_buffer ()" link="gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer"/>
+ <keyword type="" name="Deriving from GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#idp17345968"/>
<keyword type="struct" name="struct GstTagDemux" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux" since="0.10.15"/>
<keyword type="struct" name="struct GstTagDemuxClass" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass" since="0.10.15"/>
<keyword type="enum" name="enum GstTagDemuxResult" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxResult" since="0.10.15"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp24771488"/>
+ <keyword type="" name="Deriving from GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#idp15390752"/>
+ <keyword type="struct" name="struct GstTagMux" link="gst-plugins-base-libs-gsttagmux.html#GstTagMux" since="0.10.36"/>
+ <keyword type="struct" name="struct GstTagMuxClass" link="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" since="0.10.36"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gsttaglanguagecodes.html#idp25117840"/>
<keyword type="function" name="gst_tag_get_language_codes ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-codes" since="0.10.26"/>
<keyword type="function" name="gst_tag_get_language_name ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-name" since="0.10.26"/>
<keyword type="macro" name="gst_tag_get_language_code()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code" since="0.10.26"/>
<keyword type="function" name="gst_tag_get_language_code_iso_639_1 ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1" since="0.10.26"/>
<keyword type="function" name="gst_tag_get_language_code_iso_639_2B ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2B" since="0.10.26"/>
<keyword type="function" name="gst_tag_get_language_code_iso_639_2T ()" link="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2T" since="0.10.26"/>
- <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp19337104"/>
+ <keyword type="enum" name="enum GstTagLicenseFlags" link="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_get_license_flags ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_get_license_nick ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_get_license_title ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_get_license_description ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_get_license_jurisdiction ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_get_license_version ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version" since="0.10.36"/>
+ <keyword type="function" name="gst_tag_get_licenses ()" link="gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses" since="0.10.36"/>
+ <keyword type="" name="Linking to this library" link="gst-plugins-base-libs-gstpbutils.html#idp7121744"/>
<keyword type="function" name="gst_pb_utils_init ()" link="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" since="0.10.12"/>
- <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" since="0.10.31"/>
- <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" since="0.10.31"/>
- <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MICRO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" since="0.10.31"/>
- <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_NANO" link="gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" since="0.10.31"/>
- <keyword type="macro" name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
- <keyword type="function" name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version" since="0.10.31"/>
- <keyword type="function" name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string" since="0.10.31"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp24572928"/>
+ <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MAJOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" since="0.10.31"/>
+ <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MINOR" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS" since="0.10.31"/>
+ <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_MICRO" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS" since="0.10.31"/>
+ <keyword type="macro" name="GST_PLUGINS_BASE_VERSION_NANO" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS" since="0.10.31"/>
+ <keyword type="macro" name="GST_CHECK_PLUGINS_BASE_VERSION()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS"/>
+ <keyword type="function" name="gst_plugins_base_version ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" since="0.10.31"/>
+ <keyword type="function" name="gst_plugins_base_version_string ()" link="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string" since="0.10.31"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilscodecutils.html#idp27788672"/>
<keyword type="function" name="gst_codec_utils_aac_get_sample_rate_from_index ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_aac_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_h264_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_h264_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_h264_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile" since="0.10.31"/>
+ <keyword type="function" name="gst_codec_utils_h264_get_level_idc ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc" since="0.10.36"/>
<keyword type="function" name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" since="0.10.31"/>
<keyword type="function" name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile" since="0.10.31"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp23918896"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#idp25852032"/>
<keyword type="function" name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
<keyword type="function" name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
<keyword type="function" name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
<keyword type="function" name="gst_pb_utils_get_element_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-element-description"/>
<keyword type="function" name="gst_pb_utils_add_codec_description_to_tag_list ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list"/>
<keyword type="function" name="gst_pb_utils_get_codec_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-codec-description"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp26701328"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#idp28136352"/>
<keyword type="function" name="gst_missing_plugin_message_get_installer_detail ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail"/>
<keyword type="function" name="gst_missing_plugin_message_get_description ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description"/>
<keyword type="function" name="gst_is_missing_plugin_message ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-is-missing-plugin-message"/>
<keyword type="function" name="gst_missing_element_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-installer-detail-new" since="0.10.15"/>
<keyword type="function" name="gst_missing_decoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-installer-detail-new" since="0.10.15"/>
<keyword type="function" name="gst_missing_encoder_installer_detail_new ()" link="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-installer-detail-new" since="0.10.15"/>
- <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp23991312"/>
+ <keyword type="" name="Overview" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#idp25467280"/>
<keyword type="enum" name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" since="0.10.12"/>
<keyword type="function" name="GstInstallPluginsResultFunc ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" since="0.10.12"/>
<keyword type="function" name="gst_install_plugins_async ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" since="0.10.12"/>
<keyword type="struct" name="GstDiscovererContainerInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" since="0.10.31"/>
<keyword type="struct" name="GstDiscovererAudioInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" since="0.10.31"/>
<keyword type="struct" name="GstDiscovererVideoInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" since="0.10.31"/>
+ <keyword type="struct" name="GstDiscovererSubtitleInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" since="0.10.36"/>
<keyword type="function" name="gst_discoverer_stream_info_get_caps ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_stream_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_stream_info_get_next ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_info_get_audio_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_info_get_container_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams" since="0.10.31"/>
+ <keyword type="function" name="gst_discoverer_info_get_subtitle_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams" since="0.10.36"/>
<keyword type="function" name="gst_discoverer_info_get_video_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_audio_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_audio_info_get_channels ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_audio_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth" since="0.10.31"/>
+ <keyword type="function" name="gst_discoverer_audio_info_get_language ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language" since="0.10.36"/>
<keyword type="function" name="gst_discoverer_audio_info_get_max_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_audio_info_get_sample_rate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_container_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams" since="0.10.31"/>
+ <keyword type="function" name="gst_discoverer_subtitle_info_get_language ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language" since="0.10.36"/>
<keyword type="function" name="gst_discoverer_video_info_get_bitrate ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_video_info_get_depth ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth" since="0.10.31"/>
<keyword type="function" name="gst_discoverer_video_info_get_framerate_denom ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom" since="0.10.31"/>
<keyword type="signal" name="The "discovered" signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-discovered"/>
<keyword type="signal" name="The "finished" signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-finished"/>
<keyword type="signal" name="The "starting" signal" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-starting"/>
- <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp27641072"/>
- <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp27648640"/>
- <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp27651632"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-encoding-profile.html#idp29241168"/>
+ <keyword type="" name="Example: Creating a profile" link="gst-plugins-base-libs-encoding-profile.html#idp29248736"/>
+ <keyword type="" name="Example: Listing categories, targets and profiles" link="gst-plugins-base-libs-encoding-profile.html#idp29251728"/>
<keyword type="struct" name="GstEncodingProfile" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"/>
<keyword type="macro" name="gst_encoding_profile_unref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref" since="0.10.32"/>
<keyword type="macro" name="gst_encoding_profile_ref()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref" since="0.10.32"/>
<keyword type="function" name="gst_encoding_profile_find ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find" since="0.10.32"/>
+ <keyword type="function" name="gst_encoding_profile_from_discoverer ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer" since="0.10.36"/>
<keyword type="function" name="gst_encoding_profile_get_name ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name" since="0.10.32"/>
<keyword type="function" name="gst_encoding_profile_get_description ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description" since="0.10.32"/>
<keyword type="function" name="gst_encoding_profile_get_format ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format" since="0.10.32"/>
<keyword type="function" name="gst_encoding_target_load_from_file ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-target-load-from-file" since="0.10.32"/>
<keyword type="function" name="gst_encoding_list_all_targets ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets" since="0.10.32"/>
<keyword type="function" name="gst_encoding_list_available_categories ()" link="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories" since="0.10.32"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp28861408"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideo.html#idp29566608"/>
<keyword type="macro" name="GST_VIDEO_BLUE_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15:CAPS" deprecated=""/>
<keyword type="macro" name="GST_VIDEO_BLUE_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-15-INT:CAPS" deprecated=""/>
<keyword type="macro" name="GST_VIDEO_BLUE_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BLUE-MASK-16:CAPS" deprecated=""/>
<keyword type="macro" name="GST_VIDEO_CAPS_RGB8_PALETTED" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS" since="0.10.32"/>
<keyword type="macro" name="GST_VIDEO_CAPS_GRAY8" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS" since="0.10.29"/>
<keyword type="macro" name="GST_VIDEO_CAPS_GRAY16()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS" since="0.10.29"/>
+ <keyword type="macro" name="GST_VIDEO_CAPS_ARGB_64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_CAPS_r210" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210"/>
+ <keyword type="macro" name="GST_VIDEO_COMP1_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP1_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP1_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP1_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP2_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP2_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP2_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP2_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP3_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP3_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP3_MASK_16" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS"/>
+ <keyword type="macro" name="GST_VIDEO_COMP3_MASK_16_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS"/>
<keyword type="macro" name="GST_VIDEO_FPS_RANGE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS"/>
<keyword type="macro" name="GST_VIDEO_GREEN_MASK_15" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS" deprecated=""/>
<keyword type="macro" name="GST_VIDEO_GREEN_MASK_15_INT" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS" deprecated=""/>
<keyword type="macro" name="GST_VIDEO_BUFFER_TFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS" since="0.10.23"/>
<keyword type="macro" name="GST_VIDEO_BUFFER_RFF" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS" since="0.10.23"/>
<keyword type="macro" name="GST_VIDEO_BUFFER_ONEFIELD" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS" since="0.10.23"/>
+ <keyword type="macro" name="GST_VIDEO_BUFFER_PROGRESSIVE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" since="0.10.33"/>
<keyword type="enum" name="enum GstVideoFormat" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormat"/>
<keyword type="function" name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio" since="0.10.7"/>
<keyword type="function" name="gst_video_frame_rate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-frame-rate"/>
<keyword type="function" name="gst_video_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-get-size"/>
+ <keyword type="function" name="gst_video_get_size_from_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps" since="0.10.36"/>
<keyword type="function" name="gst_video_format_convert ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-convert" since="0.10.16"/>
<keyword type="function" name="gst_video_format_new_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps" since="0.10.16"/>
<keyword type="function" name="gst_video_format_new_caps_interlaced ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps-interlaced" since="0.10.23"/>
+ <keyword type="function" name="gst_video_format_new_template_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps" since="0.10.33"/>
<keyword type="function" name="gst_video_format_get_component_height ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height" since="0.10.16"/>
<keyword type="function" name="gst_video_format_get_component_offset ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-offset" since="0.10.16"/>
<keyword type="function" name="gst_video_format_get_component_width ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-width" since="0.10.16"/>
+ <keyword type="function" name="gst_video_format_get_component_depth ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth" since="0.10.33"/>
<keyword type="function" name="gst_video_format_get_pixel_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride" since="0.10.16"/>
<keyword type="function" name="gst_video_format_get_row_stride ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride" since="0.10.16"/>
<keyword type="function" name="gst_video_format_get_size ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-size" since="0.10.16"/>
<keyword type="function" name="gst_video_convert_frame_async ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame-async" since="0.10.31"/>
<keyword type="function" name="gst_video_event_new_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" since="0.10.26"/>
<keyword type="function" name="gst_video_event_parse_still_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" since="0.10.26"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp23911216"/>
+ <keyword type="function" name="gst_video_event_new_upstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" since="0.10.36"/>
+ <keyword type="function" name="gst_video_event_new_downstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" since="0.10.36"/>
+ <keyword type="function" name="gst_video_event_is_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit" since="0.10.36"/>
+ <keyword type="function" name="gst_video_event_parse_upstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit" since="0.10.36"/>
+ <keyword type="function" name="gst_video_event_parse_downstream_force_key_unit ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" since="0.10.36"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#idp30461952"/>
+ <keyword type="struct" name="GstVideoOverlayComposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" since="0.10.36"/>
+ <keyword type="struct" name="GstVideoOverlayCompositionClass" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass"/>
+ <keyword type="function" name="gst_video_overlay_composition_new ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_ref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_unref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_add_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_n_rectangles ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_get_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_get_seqnum ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_copy ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_make_writable ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_composition_blend ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" since="0.10.36"/>
+ <keyword type="function" name="gst_video_buffer_get_overlay_composition ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition" since="0.10.36"/>
+ <keyword type="function" name="gst_video_buffer_set_overlay_composition ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition" since="0.10.36"/>
+ <keyword type="enum" name="enum GstVideoOverlayFormatFlags" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" since="0.10.36"/>
+ <keyword type="struct" name="GstVideoOverlayRectangle" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" since="0.10.36"/>
+ <keyword type="struct" name="GstVideoOverlayRectangleClass" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_new_argb ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_ref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_unref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_get_pixels_argb ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_get_pixels_unscaled_argb ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_get_render_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_get_seqnum ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_set_render_rectangle ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle" since="0.10.36"/>
+ <keyword type="function" name="gst_video_overlay_rectangle_copy ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" since="0.10.36"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideofilter.html#idp8581264"/>
<keyword type="struct" name="struct GstVideoFilter" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct"/>
<keyword type="struct" name="struct GstVideoFilterClass" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass"/>
- <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp27834272"/>
+ <keyword type="" name="" link="gst-plugins-base-libs-gstvideosink.html#idp29609152"/>
<keyword type="struct" name="struct GstVideoSink" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct"/>
<keyword type="struct" name="struct GstVideoSinkClass" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass"/>
<keyword type="struct" name="struct GstVideoRectangle" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle"/>
<keyword type="constant" name="GST_APP_STREAM_TYPE_STREAM" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-STREAM:CAPS"/>
<keyword type="constant" name="GST_APP_STREAM_TYPE_SEEKABLE" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-SEEKABLE:CAPS"/>
<keyword type="constant" name="GST_APP_STREAM_TYPE_RANDOM_ACCESS" link="gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-RANDOM-ACCESS:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FLAG_NONE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-NONE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FLAG_DEFAULT_POSITIONS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_UNKNOWN" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S8" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S8:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U8" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U8:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S16LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S16BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U16LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U16BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S24_32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S24_32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U24_32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U24_32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S24LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S24BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U24LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U24BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S20LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S20BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U20LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U20BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S18LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S18BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U18LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U18BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_F32LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_F32BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_F64LE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64LE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_F64BE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64BE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S16" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U16" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S24_32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U24_32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S24" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U24" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S20" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U20" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_S18" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_U18" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_F32" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_F64" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_INTEGER" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_FLOAT" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_SIGNED" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_FORMAT_FLAG_COMPLEX" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS"/>
<keyword type="constant" name="GST_AUDIO_FIELD_RATE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-RATE:CAPS"/>
<keyword type="constant" name="GST_AUDIO_FIELD_CHANNELS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-CHANNELS:CAPS"/>
<keyword type="constant" name="GST_AUDIO_FIELD_ENDIANNESS" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-ENDIANNESS:CAPS"/>
<keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"/>
<keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"/>
<keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_NONE" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"/>
- <keyword type="constant" name="GST_AUDIO_CHANNEL_POSITION_NUM" link="gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NUM:CAPS"/>
<keyword type="constant" name="GST_SEGSTATE_INVALID" link="gst-plugins-base-libs-gstringbuffer.html#GST-SEGSTATE-INVALID:CAPS"/>
<keyword type="constant" name="GST_SEGSTATE_EMPTY" link="gst-plugins-base-libs-gstringbuffer.html#GST-SEGSTATE-EMPTY:CAPS"/>
<keyword type="constant" name="GST_SEGSTATE_FILLED" link="gst-plugins-base-libs-gstringbuffer.html#GST-SEGSTATE-FILLED:CAPS"/>
<keyword type="constant" name="GST_RING_BUFFER_STATE_STOPPED" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-STOPPED:CAPS"/>
<keyword type="constant" name="GST_RING_BUFFER_STATE_PAUSED" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-PAUSED:CAPS"/>
<keyword type="constant" name="GST_RING_BUFFER_STATE_STARTED" link="gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-STARTED:CAPS"/>
+ <keyword type="constant" name="GST_UNKNOWN" link="gst-plugins-base-libs-gstringbuffer.html#GST-UNKNOWN:CAPS"/>
+ <keyword type="constant" name="GST_S8" link="gst-plugins-base-libs-gstringbuffer.html#GST-S8:CAPS"/>
+ <keyword type="constant" name="GST_U8" link="gst-plugins-base-libs-gstringbuffer.html#GST-U8:CAPS"/>
+ <keyword type="constant" name="GST_S16_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S16-LE:CAPS"/>
+ <keyword type="constant" name="GST_S16_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S16-BE:CAPS"/>
+ <keyword type="constant" name="GST_U16_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U16-LE:CAPS"/>
+ <keyword type="constant" name="GST_U16_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U16-BE:CAPS"/>
+ <keyword type="constant" name="GST_S24_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-LE:CAPS"/>
+ <keyword type="constant" name="GST_S24_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-BE:CAPS"/>
+ <keyword type="constant" name="GST_U24_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-LE:CAPS"/>
+ <keyword type="constant" name="GST_U24_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-BE:CAPS"/>
+ <keyword type="constant" name="GST_S32_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S32-LE:CAPS"/>
+ <keyword type="constant" name="GST_S32_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S32-BE:CAPS"/>
+ <keyword type="constant" name="GST_U32_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U32-LE:CAPS"/>
+ <keyword type="constant" name="GST_U32_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U32-BE:CAPS"/>
+ <keyword type="constant" name="GST_S24_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-3LE:CAPS"/>
+ <keyword type="constant" name="GST_S24_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S24-3BE:CAPS"/>
+ <keyword type="constant" name="GST_U24_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-3LE:CAPS"/>
+ <keyword type="constant" name="GST_U24_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U24-3BE:CAPS"/>
+ <keyword type="constant" name="GST_S20_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S20-3LE:CAPS"/>
+ <keyword type="constant" name="GST_S20_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S20-3BE:CAPS"/>
+ <keyword type="constant" name="GST_U20_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U20-3LE:CAPS"/>
+ <keyword type="constant" name="GST_U20_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U20-3BE:CAPS"/>
+ <keyword type="constant" name="GST_S18_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S18-3LE:CAPS"/>
+ <keyword type="constant" name="GST_S18_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-S18-3BE:CAPS"/>
+ <keyword type="constant" name="GST_U18_3LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U18-3LE:CAPS"/>
+ <keyword type="constant" name="GST_U18_3BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-U18-3BE:CAPS"/>
+ <keyword type="constant" name="GST_FLOAT32_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-LE:CAPS"/>
+ <keyword type="constant" name="GST_FLOAT32_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-BE:CAPS"/>
+ <keyword type="constant" name="GST_FLOAT64_LE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-LE:CAPS"/>
+ <keyword type="constant" name="GST_FLOAT64_BE" link="gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-BE:CAPS"/>
+ <keyword type="constant" name="GST_MU_LAW" link="gst-plugins-base-libs-gstringbuffer.html#GST-MU-LAW:CAPS"/>
+ <keyword type="constant" name="GST_A_LAW" link="gst-plugins-base-libs-gstringbuffer.html#GST-A-LAW:CAPS"/>
+ <keyword type="constant" name="GST_IMA_ADPCM" link="gst-plugins-base-libs-gstringbuffer.html#GST-IMA-ADPCM:CAPS"/>
+ <keyword type="constant" name="GST_MPEG" link="gst-plugins-base-libs-gstringbuffer.html#GST-MPEG:CAPS"/>
+ <keyword type="constant" name="GST_GSM" link="gst-plugins-base-libs-gstringbuffer.html#GST-GSM:CAPS"/>
+ <keyword type="constant" name="GST_IEC958" link="gst-plugins-base-libs-gstringbuffer.html#GST-IEC958:CAPS"/>
+ <keyword type="constant" name="GST_AC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-AC3:CAPS"/>
+ <keyword type="constant" name="GST_EAC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-EAC3:CAPS"/>
+ <keyword type="constant" name="GST_DTS" link="gst-plugins-base-libs-gstringbuffer.html#GST-DTS:CAPS"/>
+ <keyword type="constant" name="GST_MPEG2_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-MPEG2-AAC:CAPS"/>
+ <keyword type="constant" name="GST_MPEG4_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-MPEG4-AAC:CAPS"/>
<keyword type="constant" name="GST_BUFTYPE_LINEAR" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-LINEAR:CAPS"/>
<keyword type="constant" name="GST_BUFTYPE_FLOAT" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-FLOAT:CAPS"/>
<keyword type="constant" name="GST_BUFTYPE_MU_LAW" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MU-LAW:CAPS"/>
<keyword type="constant" name="GST_BUFTYPE_AC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-AC3:CAPS"/>
<keyword type="constant" name="GST_BUFTYPE_EAC3" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-EAC3:CAPS"/>
<keyword type="constant" name="GST_BUFTYPE_DTS" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-DTS:CAPS"/>
+ <keyword type="constant" name="GST_BUFTYPE_MPEG2_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG2-AAC:CAPS"/>
+ <keyword type="constant" name="GST_BUFTYPE_MPEG4_AAC" link="gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG4-AAC:CAPS"/>
<keyword type="constant" name="GST_CDDA_BASE_SRC_MODE_NORMAL" link="gst-plugins-base-libs-gstcddabasesrc.html#GST-CDDA-BASE-SRC-MODE-NORMAL:CAPS"/>
<keyword type="constant" name="GST_CDDA_BASE_SRC_MODE_CONTINUOUS" link="gst-plugins-base-libs-gstcddabasesrc.html#GST-CDDA-BASE-SRC-MODE-CONTINUOUS:CAPS"/>
<keyword type="constant" name="GST_FFT_WINDOW_RECTANGULAR" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-RECTANGULAR:CAPS"/>
<keyword type="constant" name="GST_FFT_WINDOW_BLACKMAN" link="gst-plugins-base-libs-gstfft.html#GST-FFT-WINDOW-BLACKMAN:CAPS"/>
<keyword type="constant" name="GST_COLOR_BALANCE_HARDWARE" link="gst-plugins-base-libs-gstcolorbalance.html#GST-COLOR-BALANCE-HARDWARE:CAPS"/>
<keyword type="constant" name="GST_COLOR_BALANCE_SOFTWARE" link="gst-plugins-base-libs-gstcolorbalance.html#GST-COLOR-BALANCE-SOFTWARE:CAPS"/>
+ <keyword type="constant" name="GST_MIXER_HARDWARE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-HARDWARE:CAPS"/>
+ <keyword type="constant" name="GST_MIXER_SOFTWARE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-SOFTWARE:CAPS"/>
<keyword type="constant" name="GST_MIXER_FLAG_NONE" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-NONE:CAPS"/>
<keyword type="constant" name="GST_MIXER_FLAG_AUTO_NOTIFICATIONS" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS"/>
<keyword type="constant" name="GST_MIXER_FLAG_HAS_WHITELIST" link="gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-HAS-WHITELIST:CAPS"/>
<keyword type="constant" name="GST_NAVIGATION_MESSAGE_MOUSE_OVER" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"/>
<keyword type="constant" name="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"/>
<keyword type="constant" name="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"/>
+ <keyword type="constant" name="GST_NAVIGATION_QUERY_INVALID" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"/>
+ <keyword type="constant" name="GST_NAVIGATION_QUERY_COMMANDS" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-COMMANDS:CAPS"/>
+ <keyword type="constant" name="GST_NAVIGATION_QUERY_ANGLES" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-ANGLES:CAPS"/>
<keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_LINEAR" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-LINEAR:CAPS"/>
<keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_CUBIC" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-CUBIC:CAPS"/>
<keyword type="constant" name="GST_STREAM_VOLUME_FORMAT_DB" link="gst-plugins-base-libs-gststreamvolume.html#GST-STREAM-VOLUME-FORMAT-DB:CAPS"/>
<keyword type="constant" name="GST_RTCP_SDES_PRIV" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-SDES-PRIV:CAPS"/>
<keyword type="constant" name="GST_RTCP_FB_TYPE_INVALID" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-FB-TYPE-INVALID:CAPS"/>
<keyword type="constant" name="GST_RTCP_RTPFB_TYPE_NACK" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-NACK:CAPS"/>
+ <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_TMMBR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBR:CAPS"/>
+ <keyword type="constant" name="GST_RTCP_RTPFB_TYPE_TMMBN" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBN:CAPS"/>
<keyword type="constant" name="GST_RTCP_PSFB_TYPE_PLI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-PLI:CAPS"/>
<keyword type="constant" name="GST_RTCP_PSFB_TYPE_SLI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-SLI:CAPS"/>
<keyword type="constant" name="GST_RTCP_PSFB_TYPE_RPSI" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-RPSI:CAPS"/>
<keyword type="constant" name="GST_RTCP_PSFB_TYPE_AFB" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-AFB:CAPS"/>
+ <keyword type="constant" name="GST_RTCP_PSFB_TYPE_FIR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-FIR:CAPS"/>
+ <keyword type="constant" name="GST_RTCP_PSFB_TYPE_TSTR" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTR:CAPS"/>
+ <keyword type="constant" name="GST_RTCP_PSFB_TYPE_TSTN" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTN:CAPS"/>
+ <keyword type="constant" name="GST_RTCP_PSFB_TYPE_VBCN" link="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-VBCN:CAPS"/>
<keyword type="constant" name="GST_RTP_PAYLOAD_PCMU" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-PCMU:CAPS"/>
<keyword type="constant" name="GST_RTP_PAYLOAD_1016" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-1016:CAPS"/>
<keyword type="constant" name="GST_RTP_PAYLOAD_G721" link="gst-plugins-base-libs-gstrtppayloads.html#GST-RTP-PAYLOAD-G721:CAPS"/>
<keyword type="constant" name="GST_TAG_DEMUX_RESULT_BROKEN_TAG" link="gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-BROKEN-TAG:CAPS"/>
<keyword type="constant" name="GST_TAG_DEMUX_RESULT_AGAIN" link="gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-AGAIN:CAPS"/>
<keyword type="constant" name="GST_TAG_DEMUX_RESULT_OK" link="gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-OK:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_REPRODUCTION" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_DISTRIBUTION" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_PERMITS_SHARING" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-SHARING:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_NOTICE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_ATTRIBUTION" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_SOURCE_CODE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_COPYLEFT" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS"/>
+ <keyword type="constant" name="GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE" link="gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS"/>
<keyword type="constant" name="GST_INSTALL_PLUGINS_SUCCESS" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-SUCCESS:CAPS"/>
<keyword type="constant" name="GST_INSTALL_PLUGINS_NOT_FOUND" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-NOT-FOUND:CAPS"/>
<keyword type="constant" name="GST_INSTALL_PLUGINS_ERROR" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-ERROR:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_ARGB64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB64:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_AYUV64" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-AYUV64:CAPS"/>
<keyword type="constant" name="GST_VIDEO_FORMAT_r210" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-r210"/>
+ <keyword type="constant" name="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS"/>
</functions>
</book>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>App Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="compiling.html" title="Compiling">
<link rel="next" href="gst-plugins-base-libs-appsrc.html" title="appsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Audio Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-appsink.html" title="appsink">
<link rel="next" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
</dt>
<dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstringbuffer.html">gstringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+</dt>
</dl></div>
<p>
This library should be linked to by getting cflags and libs from
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Base Utils Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="gst-plugins-base-libs-gsttaglanguagecodes.html" title="gsttaglanguagecodes">
+<link rel="prev" href="gst-plugins-base-libs-gsttaglicenses.html" title="gsttaglicenses">
<link rel="next" href="gst-plugins-base-libs-gstpbutils.html" title="gstpbutils">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gsttaglanguagecodes.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gsttaglicenses.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
</dt>
<dt>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CDDA Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<link rel="prev" href="gst-plugins-base-libs-gstringbuffer.html" title="gstringbuffer">
+<link rel="prev" href="gst-plugins-base-libs-gstaudioiec61937.html" title="gstaudioiec61937">
<link rel="next" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
-<td><a accesskey="p" href="gst-plugins-base-libs-gstringbuffer.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-libs-gstaudioiec61937.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-plugins-base.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 0.10 Library Reference Manual</th>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FFT Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstcddabasesrc.html" title="gstcddabasesrc">
<link rel="next" href="gst-plugins-base-libs-gstfft.html" title="gstfft">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FloatCast Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstfftf64.html" title="gstfftf64">
<link rel="next" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Interfaces Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstfloatcast.html" title="gstfloatcast">
<link rel="next" href="gst-plugins-base-libs-gstcolorbalance.html" title="gstcolorbalance">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Part II. Object Hierarchy</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="prev" href="gst-plugins-base-libs-gstvideosink.html" title="gstvideosink">
<link rel="next" href="api-index-full.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+ <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
+ <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">GstAudioFilter</a>
<a class="link" href="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">GstVideoFilter</a>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Network Buffer Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstxoverlay.html" title="gstxoverlay">
<link rel="next" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Part I. GStreamer Base Plugins Libraries</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="prev" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="next" href="compiling.html" title="Compiling">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
</dt>
<dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstringbuffer.html">gstringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+</dt>
</dl></dd>
<dt><span class="chapter"><a href="gstreamer-cdda.html">CDDA Library</a></span></dt>
<dd><dl><dt>
dealing with ID3v1 and ID3v2 tags</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
+ dealing with exif tags</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
dealing with xmp packets</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
directly at the beginning or at the end of a file</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
+ directly at the beginning or at the end of a file</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+</dt>
</dl></dd>
<dt><span class="chapter"><a href="gstreamer-base-utils.html">Base Utils Library</a></span></dt>
<dd><dl>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
</dt>
<dt>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Riff Media Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstnetbuffer.html" title="gstnetbuffer">
<link rel="next" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RTP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstriff.html" title="gstriff">
<link rel="next" href="gst-plugins-base-libs-gstbasertpaudiopayload.html" title="gstbasertpaudiopayload">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RTSP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstrtppayloads.html" title="gstrtppayloads">
<link rel="next" href="gst-plugins-base-libs-gstrtspbase64.html" title="gstrtspbase64">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>SDP Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstrtspurl.html" title="gstrtspurl">
<link rel="next" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Tag Support Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-gstsdpmessage.html" title="gstsdpmessage">
<link rel="next" href="gst-plugins-base-libs-gsttag.html" title="gsttag">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
dealing with ID3v1 and ID3v2 tags</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
+ dealing with exif tags</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
dealing with xmp packets</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
directly at the beginning or at the end of a file</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
+ directly at the beginning or at the end of a file</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+</dt>
</dl></div>
<p>
This library should be linked to by getting cflags and libs from
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Video Library</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="up" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
<link rel="prev" href="gst-plugins-base-libs-encoding-profile.html" title="encoding-profile">
<link rel="next" href="gst-plugins-base-libs-gstvideo.html" title="gstvideo">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
</dt>
<dt>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GStreamer Base Plugins 0.10 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual">
<link rel="next" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 0.10 Library Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Base Library 0.10 (0.10.34)
+ for GStreamer Base Library 0.10 (0.10.36)
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
</p></div>
</div>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
</dt>
<dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstringbuffer.html">gstringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+</dt>
</dl></dd>
<dt><span class="chapter"><a href="gstreamer-cdda.html">CDDA Library</a></span></dt>
<dd><dl><dt>
dealing with ID3v1 and ID3v2 tags</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
+ dealing with exif tags</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
dealing with xmp packets</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
directly at the beginning or at the end of a file</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
+ directly at the beginning or at the end of a file</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+</dt>
</dl></dd>
<dt><span class="chapter"><a href="gstreamer-base-utils.html">Base Utils Library</a></span></dt>
<dd><dl>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
</dt>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
</dt>
<dt>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+</dt>
+<dt>
<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
</dt>
<dt>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<ANCHOR id="gst-plugins-base-libs-appsrc.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.synopsis">
<ANCHOR id="gst-plugins-base-libs-appsrc.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.description">
<ANCHOR id="gst-plugins-base-libs-appsrc.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#gst-plugins-base-libs-appsrc.details">
-<ANCHOR id="GstAppSrc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GstAppSrc">
<ANCHOR id="GstAppStreamType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GstAppStreamType">
<ANCHOR id="GST-APP-STREAM-TYPE-STREAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-STREAM:CAPS">
<ANCHOR id="GST-APP-STREAM-TYPE-SEEKABLE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsrc.html#GST-APP-STREAM-TYPE-SEEKABLE:CAPS">
<ANCHOR id="gst-plugins-base-libs-appsink.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.synopsis">
<ANCHOR id="gst-plugins-base-libs-appsink.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.description">
<ANCHOR id="gst-plugins-base-libs-appsink.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-plugins-base-libs-appsink.details">
-<ANCHOR id="GstAppSink" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#GstAppSink">
<ANCHOR id="gst-app-sink-set-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-app-sink-set-caps">
<ANCHOR id="gst-app-sink-get-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-app-sink-get-caps">
<ANCHOR id="gst-app-sink-is-eos" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos">
<ANCHOR id="gst-plugins-base-libs-gstaudio.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.synopsis">
<ANCHOR id="gst-plugins-base-libs-gstaudio.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.description">
<ANCHOR id="gst-plugins-base-libs-gstaudio.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-plugins-base-libs-gstaudio.details">
+<ANCHOR id="GstAudioFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFlags">
+<ANCHOR id="GST-AUDIO-FLAG-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-NONE:CAPS">
+<ANCHOR id="GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FLAG-DEFAULT-POSITIONS:CAPS">
+<ANCHOR id="GstAudioFormat" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFormat">
+<ANCHOR id="GST-AUDIO-FORMAT-UNKNOWN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-UNKNOWN:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S8:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U8:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S16LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S16BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U16LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U16BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24-32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24-32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24-32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24-32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S20LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S20BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U20LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U20BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S18LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S18BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U18LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U18BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F32LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F32BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F64LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64LE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F64BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64BE:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S16:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U16:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24-32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24-32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24-32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24-32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S24:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S24:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U24:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U24:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S20:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S20:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U20:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U20:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-S18:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-S18:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-U18:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-U18:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F32:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-F64:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-F64:CAPS">
+<ANCHOR id="GstAudioFormatFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS">
+<ANCHOR id="GstAudioFormatInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo">
+<ANCHOR id="GstAudioInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioInfo">
+<ANCHOR id="gst-audio-info-init" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-init">
+<ANCHOR id="gst-audio-info-clear" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-clear">
+<ANCHOR id="gst-audio-info-copy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy">
+<ANCHOR id="gst-audio-info-free" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-free">
+<ANCHOR id="gst-audio-info-from-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps">
+<ANCHOR id="gst-audio-info-to-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-to-caps">
+<ANCHOR id="gst-audio-info-convert" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-info-convert">
+<ANCHOR id="gst-audio-format-get-info" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#gst-audio-format-get-info">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-DEPTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-DEPTH:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-ENDIANNESS:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-FLAGS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FLAGS:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-FORMAT:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-FLOAT:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-INTEGER:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-BIG-ENDIAN:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-LITTLE-ENDIAN:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-IS-SIGNED:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-FORMAT-INFO-WIDTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMAT-INFO-WIDTH:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-BPF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPF:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-BPS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-BPS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-CHANNELS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-CHANNELS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-DEPTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-DEPTH:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-FLAGS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FLAGS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-FORMAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-FORMAT:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-HAS-DEFAULT-POSITIONS:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-POSITION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-POSITION:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-RATE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-RATE:CAPS">
+<ANCHOR id="GST-AUDIO-INFO-WIDTH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-INFO-WIDTH:CAPS">
<ANCHOR id="GstAudioFieldFlag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GstAudioFieldFlag">
<ANCHOR id="GST-AUDIO-FIELD-RATE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-RATE:CAPS">
<ANCHOR id="GST-AUDIO-FIELD-CHANNELS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FIELD-CHANNELS:CAPS">
<ANCHOR id="gst-audio-clock-reset" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-reset">
<ANCHOR id="gst-audio-clock-invalidate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioclock.html#gst-audio-clock-invalidate">
<ANCHOR id="gst-plugins-base-libs-gstaudioclock.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioclock.html#gst-plugins-base-libs-gstaudioclock.see-also">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.synopsis">
+<ANCHOR id="GstAudioDecoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.object-hierarchy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.object-hierarchy">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.properties" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.properties">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.details">
+<ANCHOR id="GstAudioDecoder-struct" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct">
+<ANCHOR id="GstAudioDecoderClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass">
+<ANCHOR id="GST-AUDIO-DECODER-ERROR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-ERROR:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SINK-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SINK-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-PAD:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SRC-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-DECODER-SRC-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SRC-PAD:CAPS">
+<ANCHOR id="gst-audio-decoder-finish-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame">
+<ANCHOR id="gst-audio-decoder-get-audio-info" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-audio-info">
+<ANCHOR id="gst-audio-decoder-get-byte-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-byte-time">
+<ANCHOR id="gst-audio-decoder-get-delay" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-delay">
+<ANCHOR id="gst-audio-decoder-get-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-drainable">
+<ANCHOR id="gst-audio-decoder-get-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-latency">
+<ANCHOR id="gst-audio-decoder-get-max-errors" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-max-errors">
+<ANCHOR id="gst-audio-decoder-get-min-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-min-latency">
+<ANCHOR id="gst-audio-decoder-get-needs-format" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-needs-format">
+<ANCHOR id="gst-audio-decoder-get-parse-state" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-parse-state">
+<ANCHOR id="gst-audio-decoder-get-plc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc">
+<ANCHOR id="gst-audio-decoder-get-plc-aware" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-plc-aware">
+<ANCHOR id="gst-audio-decoder-get-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-get-tolerance">
+<ANCHOR id="gst-audio-decoder-set-byte-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-byte-time">
+<ANCHOR id="gst-audio-decoder-set-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-drainable">
+<ANCHOR id="gst-audio-decoder-set-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-latency">
+<ANCHOR id="gst-audio-decoder-set-max-errors" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-max-errors">
+<ANCHOR id="gst-audio-decoder-set-min-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-min-latency">
+<ANCHOR id="gst-audio-decoder-set-needs-format" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-needs-format">
+<ANCHOR id="gst-audio-decoder-set-plc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc">
+<ANCHOR id="gst-audio-decoder-set-plc-aware" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware">
+<ANCHOR id="gst-audio-decoder-set-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.property-details">
+<ANCHOR id="GstAudioDecoder--min-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--min-latency">
+<ANCHOR id="GstAudioDecoder--plc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--plc">
+<ANCHOR id="GstAudioDecoder--tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudiodecoder.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiodecoder.html#gst-plugins-base-libs-gstaudiodecoder.see-also">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.synopsis">
+<ANCHOR id="GstAudioEncoder" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.object-hierarchy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.object-hierarchy">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.implemented-interfaces" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.implemented-interfaces">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.properties" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.properties">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.details">
+<ANCHOR id="GstAudioEncoder-struct" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder-struct">
+<ANCHOR id="GstAudioEncoderClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass">
+<ANCHOR id="GST-AUDIO-ENCODER-SEGMENT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SEGMENT:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SINK-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SINK-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SINK-PAD:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SRC-NAME:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-NAME:CAPS">
+<ANCHOR id="GST-AUDIO-ENCODER-SRC-PAD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GST-AUDIO-ENCODER-SRC-PAD:CAPS">
+<ANCHOR id="gst-audio-encoder-finish-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame">
+<ANCHOR id="gst-audio-encoder-get-audio-info" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-audio-info">
+<ANCHOR id="gst-audio-encoder-get-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-drainable">
+<ANCHOR id="gst-audio-encoder-get-frame-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-max">
+<ANCHOR id="gst-audio-encoder-get-frame-samples-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-min">
+<ANCHOR id="gst-audio-encoder-get-frame-samples-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-frame-samples-max">
+<ANCHOR id="gst-audio-encoder-get-hard-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-min">
+<ANCHOR id="gst-audio-encoder-get-hard-resync" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-hard-resync">
+<ANCHOR id="gst-audio-encoder-get-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-latency">
+<ANCHOR id="gst-audio-encoder-get-lookahead" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-lookahead">
+<ANCHOR id="gst-audio-encoder-get-mark-granule" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-mark-granule">
+<ANCHOR id="gst-audio-encoder-get-perfect-timestamp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-perfect-timestamp">
+<ANCHOR id="gst-audio-encoder-get-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-get-tolerance">
+<ANCHOR id="gst-audio-encoder-proxy-getcaps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-proxy-getcaps">
+<ANCHOR id="gst-audio-encoder-set-drainable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-drainable">
+<ANCHOR id="gst-audio-encoder-set-frame-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-max">
+<ANCHOR id="gst-audio-encoder-set-frame-samples-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min">
+<ANCHOR id="gst-audio-encoder-set-frame-samples-max" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max">
+<ANCHOR id="gst-audio-encoder-set-hard-min" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-min">
+<ANCHOR id="gst-audio-encoder-set-hard-resync" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-hard-resync">
+<ANCHOR id="gst-audio-encoder-set-latency" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-latency">
+<ANCHOR id="gst-audio-encoder-set-lookahead" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-lookahead">
+<ANCHOR id="gst-audio-encoder-set-mark-granule" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-mark-granule">
+<ANCHOR id="gst-audio-encoder-set-perfect-timestamp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-perfect-timestamp">
+<ANCHOR id="gst-audio-encoder-set-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.property-details">
+<ANCHOR id="GstAudioEncoder--hard-resync" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync">
+<ANCHOR id="GstAudioEncoder--mark-granule" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--mark-granule">
+<ANCHOR id="GstAudioEncoder--perfect-timestamp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp">
+<ANCHOR id="GstAudioEncoder--tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance">
+<ANCHOR id="gst-plugins-base-libs-gstaudioencoder.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioencoder.html#gst-plugins-base-libs-gstaudioencoder.see-also">
<ANCHOR id="gst-plugins-base-libs-gstaudiofilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiofilter.html">
<ANCHOR id="gst-plugins-base-libs-gstaudiofilter.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiofilter.html#gst-plugins-base-libs-gstaudiofilter.synopsis">
<ANCHOR id="GstAudioFilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter">
<ANCHOR id="gst-base-audio-sink-get-drift-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-get-drift-tolerance">
<ANCHOR id="gst-base-audio-sink-set-drift-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#gst-base-audio-sink-set-drift-tolerance">
<ANCHOR id="gst-plugins-base-libs-gstbaseaudiosink.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#gst-plugins-base-libs-gstbaseaudiosink.property-details">
+<ANCHOR id="GstBaseAudioSink--alignment-threshold" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--alignment-threshold">
<ANCHOR id="GstBaseAudioSink--buffer-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--buffer-time">
<ANCHOR id="GstBaseAudioSink--can-activate-pull" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--can-activate-pull">
+<ANCHOR id="GstBaseAudioSink--discont-wait" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--discont-wait">
<ANCHOR id="GstBaseAudioSink--drift-tolerance" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--drift-tolerance">
<ANCHOR id="GstBaseAudioSink--latency-time" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--latency-time">
<ANCHOR id="GstBaseAudioSink--provide-clock" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbaseaudiosink.html#GstBaseAudioSink--provide-clock">
<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS">
<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS">
<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NONE:CAPS">
-<ANCHOR id="GST-AUDIO-CHANNEL-POSITION-NUM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#GST-AUDIO-CHANNEL-POSITION-NUM:CAPS">
<ANCHOR id="gst-audio-fixate-channel-positions" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#gst-audio-fixate-channel-positions">
<ANCHOR id="gst-audio-get-channel-positions" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#gst-audio-get-channel-positions">
<ANCHOR id="gst-audio-set-caps-channel-positions-list" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmultichannel.html#gst-audio-set-caps-channel-positions-list">
<ANCHOR id="GST-RING-BUFFER-STATE-PAUSED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-PAUSED:CAPS">
<ANCHOR id="GST-RING-BUFFER-STATE-STARTED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-STATE-STARTED:CAPS">
<ANCHOR id="GstBufferFormat" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GstBufferFormat">
+<ANCHOR id="GST-UNKNOWN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-UNKNOWN:CAPS">
+<ANCHOR id="GST-S8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S8:CAPS">
+<ANCHOR id="GST-U8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U8:CAPS">
+<ANCHOR id="GST-S16-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S16-LE:CAPS">
+<ANCHOR id="GST-S16-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S16-BE:CAPS">
+<ANCHOR id="GST-U16-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U16-LE:CAPS">
+<ANCHOR id="GST-U16-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U16-BE:CAPS">
+<ANCHOR id="GST-S24-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-LE:CAPS">
+<ANCHOR id="GST-S24-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-BE:CAPS">
+<ANCHOR id="GST-U24-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-LE:CAPS">
+<ANCHOR id="GST-U24-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-BE:CAPS">
+<ANCHOR id="GST-S32-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S32-LE:CAPS">
+<ANCHOR id="GST-S32-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S32-BE:CAPS">
+<ANCHOR id="GST-U32-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U32-LE:CAPS">
+<ANCHOR id="GST-U32-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U32-BE:CAPS">
+<ANCHOR id="GST-S24-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-3LE:CAPS">
+<ANCHOR id="GST-S24-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S24-3BE:CAPS">
+<ANCHOR id="GST-U24-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-3LE:CAPS">
+<ANCHOR id="GST-U24-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U24-3BE:CAPS">
+<ANCHOR id="GST-S20-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S20-3LE:CAPS">
+<ANCHOR id="GST-S20-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S20-3BE:CAPS">
+<ANCHOR id="GST-U20-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U20-3LE:CAPS">
+<ANCHOR id="GST-U20-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U20-3BE:CAPS">
+<ANCHOR id="GST-S18-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S18-3LE:CAPS">
+<ANCHOR id="GST-S18-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-S18-3BE:CAPS">
+<ANCHOR id="GST-U18-3LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U18-3LE:CAPS">
+<ANCHOR id="GST-U18-3BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-U18-3BE:CAPS">
+<ANCHOR id="GST-FLOAT32-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-LE:CAPS">
+<ANCHOR id="GST-FLOAT32-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT32-BE:CAPS">
+<ANCHOR id="GST-FLOAT64-LE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-LE:CAPS">
+<ANCHOR id="GST-FLOAT64-BE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-FLOAT64-BE:CAPS">
+<ANCHOR id="GST-MU-LAW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MU-LAW:CAPS">
+<ANCHOR id="GST-A-LAW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-A-LAW:CAPS">
+<ANCHOR id="GST-IMA-ADPCM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-IMA-ADPCM:CAPS">
+<ANCHOR id="GST-MPEG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MPEG:CAPS">
+<ANCHOR id="GST-GSM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-GSM:CAPS">
+<ANCHOR id="GST-IEC958:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-IEC958:CAPS">
+<ANCHOR id="GST-AC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-AC3:CAPS">
+<ANCHOR id="GST-EAC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-EAC3:CAPS">
+<ANCHOR id="GST-DTS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-DTS:CAPS">
+<ANCHOR id="GST-MPEG2-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MPEG2-AAC:CAPS">
+<ANCHOR id="GST-MPEG4-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-MPEG4-AAC:CAPS">
<ANCHOR id="GstBufferFormatType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GstBufferFormatType">
<ANCHOR id="GST-BUFTYPE-LINEAR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-LINEAR:CAPS">
<ANCHOR id="GST-BUFTYPE-FLOAT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-FLOAT:CAPS">
<ANCHOR id="GST-BUFTYPE-AC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-AC3:CAPS">
<ANCHOR id="GST-BUFTYPE-EAC3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-EAC3:CAPS">
<ANCHOR id="GST-BUFTYPE-DTS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-DTS:CAPS">
+<ANCHOR id="GST-BUFTYPE-MPEG2-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG2-AAC:CAPS">
+<ANCHOR id="GST-BUFTYPE-MPEG4-AAC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-BUFTYPE-MPEG4-AAC:CAPS">
<ANCHOR id="GST-RING-BUFFER-BROADCAST:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-BROADCAST:CAPS">
<ANCHOR id="GST-RING-BUFFER-GET-COND:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-GET-COND:CAPS">
<ANCHOR id="GST-RING-BUFFER-SIGNAL:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#GST-RING-BUFFER-SIGNAL:CAPS">
<ANCHOR id="gst-ring-buffer-parse-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-parse-caps">
<ANCHOR id="gst-ring-buffer-set-flushing" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#gst-ring-buffer-set-flushing">
<ANCHOR id="gst-plugins-base-libs-gstringbuffer.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstringbuffer.html#gst-plugins-base-libs-gstringbuffer.see-also">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.description">
+<ANCHOR id="gst-plugins-base-libs-gstaudioiec61937.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-plugins-base-libs-gstaudioiec61937.details">
+<ANCHOR id="gst-audio-iec61937-frame-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-frame-size">
+<ANCHOR id="gst-audio-iec61937-payload" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload">
<ANCHOR id="gst-plugins-base-libs-gstcddabasesrc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstcddabasesrc.html">
<ANCHOR id="gst-plugins-base-libs-gstcddabasesrc.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstcddabasesrc.html#gst-plugins-base-libs-gstcddabasesrc.synopsis">
<ANCHOR id="GstCddaBaseSrc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstcddabasesrc.html#GstCddaBaseSrc">
<ANCHOR id="gst-plugins-base-libs-gstmixer.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#gst-plugins-base-libs-gstmixer.details">
<ANCHOR id="GstMixer-struct" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GstMixer-struct">
<ANCHOR id="GstMixerType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GstMixerType">
+<ANCHOR id="GST-MIXER-HARDWARE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-HARDWARE:CAPS">
+<ANCHOR id="GST-MIXER-SOFTWARE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-SOFTWARE:CAPS">
<ANCHOR id="GstMixerFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GstMixerFlags">
<ANCHOR id="GST-MIXER-FLAG-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-NONE:CAPS">
<ANCHOR id="GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstmixer.html#GST-MIXER-FLAG-AUTO-NOTIFICATIONS:CAPS">
<ANCHOR id="GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS">
<ANCHOR id="GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS">
<ANCHOR id="GstNavigationQueryType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType">
+<ANCHOR id="GST-NAVIGATION-QUERY-INVALID:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS">
+<ANCHOR id="GST-NAVIGATION-QUERY-COMMANDS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-COMMANDS:CAPS">
+<ANCHOR id="GST-NAVIGATION-QUERY-ANGLES:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-ANGLES:CAPS">
<ANCHOR id="gst-navigation-send-event" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-event">
<ANCHOR id="gst-navigation-send-key-event" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-key-event">
<ANCHOR id="gst-navigation-send-mouse-event" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstnavigation.html#gst-navigation-send-mouse-event">
<ANCHOR id="gst-plugins-base-libs-gstriff.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.synopsis">
<ANCHOR id="gst-plugins-base-libs-gstriff.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.description">
<ANCHOR id="gst-plugins-base-libs-gstriff.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-plugins-base-libs-gstriff.details">
-<ANCHOR id="GST-RIFF-00:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00:CAPS">
-<ANCHOR id="GST-RIFF-0021:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-0021:CAPS">
-<ANCHOR id="GST-RIFF-0031:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-0031:CAPS">
-<ANCHOR id="GST-RIFF-0032:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-0032:CAPS">
-<ANCHOR id="GST-RIFF-00AM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00AM:CAPS">
-<ANCHOR id="GST-RIFF-00--:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00--:CAPS">
-<ANCHOR id="GST-RIFF-00db" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00db">
-<ANCHOR id="GST-RIFF-00dc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00dc">
-<ANCHOR id="GST-RIFF-00dx" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00dx">
-<ANCHOR id="GST-RIFF-00id" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00id">
-<ANCHOR id="GST-RIFF-00iv" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00iv">
-<ANCHOR id="GST-RIFF-00pc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00pc">
-<ANCHOR id="GST-RIFF-00rt" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00rt">
-<ANCHOR id="GST-RIFF-00vc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00vc">
-<ANCHOR id="GST-RIFF-00xm" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00xm">
-<ANCHOR id="GST-RIFF-00xx" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-00xx">
-<ANCHOR id="GST-RIFF-01:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01:CAPS">
-<ANCHOR id="GST-RIFF-01dc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01dc">
-<ANCHOR id="GST-RIFF-01pc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01pc">
-<ANCHOR id="GST-RIFF-01wb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-01wb">
-<ANCHOR id="GST-RIFF-02:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-02:CAPS">
-<ANCHOR id="GST-RIFF-03:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-03:CAPS">
-<ANCHOR id="GST-RIFF-04:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-04:CAPS">
-<ANCHOR id="GST-RIFF-05:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-05:CAPS">
-<ANCHOR id="GST-RIFF-06:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-06:CAPS">
-<ANCHOR id="GST-RIFF-07:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-07:CAPS">
-<ANCHOR id="GST-RIFF-AURA:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-AURA:CAPS">
-<ANCHOR id="GST-RIFF-BW10:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-BW10:CAPS">
-<ANCHOR id="GST-RIFF-CCC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CCC:CAPS">
-<ANCHOR id="GST-RIFF-CRAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CRAM:CAPS">
-<ANCHOR id="GST-RIFF-CVID:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CVID:CAPS">
-<ANCHOR id="GST-RIFF-CYUV:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-CYUV:CAPS">
-<ANCHOR id="GST-RIFF-DIB:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DIB:CAPS">
-<ANCHOR id="GST-RIFF-DISP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DISP:CAPS">
-<ANCHOR id="GST-RIFF-DIV3:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DIV3:CAPS">
-<ANCHOR id="GST-RIFF-DMB1:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-DMB1:CAPS">
-<ANCHOR id="GST-RIFF-FCCH-MSVC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-MSVC:CAPS">
-<ANCHOR id="GST-RIFF-FCCH-RLE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-RLE:CAPS">
-<ANCHOR id="GST-RIFF-FCCH-msvc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCCH-msvc">
-<ANCHOR id="GST-RIFF-FCC-auds" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-auds">
-<ANCHOR id="GST-RIFF-FCC-iavs" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-iavs">
-<ANCHOR id="GST-RIFF-FCC-pads" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-pads">
-<ANCHOR id="GST-RIFF-FCC-txts" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-txts">
-<ANCHOR id="GST-RIFF-FCC-vidc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vidc">
-<ANCHOR id="GST-RIFF-FCC-vids" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FCC-vids">
-<ANCHOR id="GST-RIFF-FF00:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-FF00:CAPS">
-<ANCHOR id="GST-RIFF-H263:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-H263:CAPS">
-<ANCHOR id="GST-RIFF-I420:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-I420:CAPS">
-<ANCHOR id="GST-RIFF-IDIT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IDIT:CAPS">
-<ANCHOR id="GST-RIFF-IJPG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IJPG:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IARL:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IARL:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IART:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IART:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICMS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMS:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICMT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICMT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICOP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICOP:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICRD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRD:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ICRP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ICRP:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IDIM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDIM:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IDPI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IDPI:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IENG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IENG:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IGNR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IGNR:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IKEY:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IKEY:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ILGT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ILGT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IMED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IMED:CAPS">
-<ANCHOR id="GST-RIFF-INFO-INAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-INAM:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IPLT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPLT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-IPRD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-IPRD:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISBJ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISBJ:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISFT:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISHP:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISHP:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISRC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRC:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ISRF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ISRF:CAPS">
-<ANCHOR id="GST-RIFF-INFO-ITCH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-INFO-ITCH:CAPS">
-<ANCHOR id="GST-RIFF-ISBJ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ISBJ:CAPS">
-<ANCHOR id="GST-RIFF-ISFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ISFT:CAPS">
-<ANCHOR id="GST-RIFF-IV31:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV31:CAPS">
-<ANCHOR id="GST-RIFF-IV32:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV32:CAPS">
-<ANCHOR id="GST-RIFF-IV41:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV41:CAPS">
-<ANCHOR id="GST-RIFF-IV50:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IV50:CAPS">
-<ANCHOR id="GST-RIFF-IYUV:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-IYUV:CAPS">
-<ANCHOR id="GST-RIFF-JPEG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-JPEG:CAPS">
-<ANCHOR id="GST-RIFF-L263:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-L263:CAPS">
-<ANCHOR id="GST-RIFF-LIST-AVIX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-AVIX:CAPS">
-<ANCHOR id="GST-RIFF-LIST-INFO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-INFO:CAPS">
-<ANCHOR id="GST-RIFF-LIST-adtl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-adtl">
-<ANCHOR id="GST-RIFF-LIST-hdrl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-hdrl">
-<ANCHOR id="GST-RIFF-LIST-movi" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-movi">
-<ANCHOR id="GST-RIFF-LIST-odml" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-odml">
-<ANCHOR id="GST-RIFF-LIST-strl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-LIST-strl">
-<ANCHOR id="GST-RIFF-M263:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-M263:CAPS">
-<ANCHOR id="GST-RIFF-MJPG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-MJPG:CAPS">
-<ANCHOR id="GST-RIFF-MPIX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-MPIX:CAPS">
-<ANCHOR id="GST-RIFF-MVI1:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-MVI1:CAPS">
-<ANCHOR id="GST-RIFF-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-NONE:CAPS">
-<ANCHOR id="GST-RIFF-PACK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-PACK:CAPS">
-<ANCHOR id="GST-RIFF-Q1-0:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-Q1-0:CAPS">
-<ANCHOR id="GST-RIFF-RAW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RAW:CAPS">
-<ANCHOR id="GST-RIFF-RGB:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RGB:CAPS">
-<ANCHOR id="GST-RIFF-RIFF-AVI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-AVI:CAPS">
-<ANCHOR id="GST-RIFF-RIFF-CDXA:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-CDXA:CAPS">
-<ANCHOR id="GST-RIFF-RIFF-WAVE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RIFF-WAVE:CAPS">
-<ANCHOR id="GST-RIFF-RLE4:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE4:CAPS">
-<ANCHOR id="GST-RIFF-RLE8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RLE8:CAPS">
-<ANCHOR id="GST-RIFF-RT21:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-RT21:CAPS">
-<ANCHOR id="GST-RIFF-SFMC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-SFMC:CAPS">
-<ANCHOR id="GST-RIFF-TAG-acid" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-acid">
-<ANCHOR id="GST-RIFF-TAG-AVF0:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-AVF0:CAPS">
-<ANCHOR id="GST-RIFF-TAG-BEXT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-BEXT:CAPS">
-<ANCHOR id="GST-RIFF-TAG-JUNK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNK:CAPS">
-<ANCHOR id="GST-RIFF-TAG-JUNQ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-JUNQ:CAPS">
-<ANCHOR id="GST-RIFF-TAG-LIST:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-LIST:CAPS">
-<ANCHOR id="GST-RIFF-TAG-RIFF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFF:CAPS">
-<ANCHOR id="GST-RIFF-TAG-RIFX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-RIFX:CAPS">
-<ANCHOR id="GST-RIFF-TAG-avih" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-avih">
-<ANCHOR id="GST-RIFF-TAG-bext" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-bext">
-<ANCHOR id="GST-RIFF-TAG-cue" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-cue">
-<ANCHOR id="GST-RIFF-TAG-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-data">
-<ANCHOR id="GST-RIFF-TAG-dmlh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-dmlh">
-<ANCHOR id="GST-RIFF-TAG-fact" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fact">
-<ANCHOR id="GST-RIFF-TAG-fmt" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-fmt">
-<ANCHOR id="GST-RIFF-TAG-idx1" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-idx1">
-<ANCHOR id="GST-RIFF-TAG-plst" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-plst">
-<ANCHOR id="GST-RIFF-TAG-strd" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strd">
-<ANCHOR id="GST-RIFF-TAG-strf" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strf">
-<ANCHOR id="GST-RIFF-TAG-strh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strh">
-<ANCHOR id="GST-RIFF-TAG-strn" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-strn">
-<ANCHOR id="GST-RIFF-TAG-vedt" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TAG-vedt">
-<ANCHOR id="GST-RIFF-TRAN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-TRAN:CAPS">
-<ANCHOR id="GST-RIFF-ULTI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ULTI:CAPS">
-<ANCHOR id="GST-RIFF-V422:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-V422:CAPS">
-<ANCHOR id="GST-RIFF-VDOW:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VDOW:CAPS">
-<ANCHOR id="GST-RIFF-VIXL:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VIXL:CAPS">
-<ANCHOR id="GST-RIFF-VSSH:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VSSH:CAPS">
-<ANCHOR id="GST-RIFF-VYUY:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-VYUY:CAPS">
-<ANCHOR id="GST-RIFF-WHAM:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-WHAM:CAPS">
-<ANCHOR id="GST-RIFF-WINX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-WINX:CAPS">
-<ANCHOR id="GST-RIFF-WPY2:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-WPY2:CAPS">
-<ANCHOR id="GST-RIFF-XMPG:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-XMPG:CAPS">
-<ANCHOR id="GST-RIFF-Y41P:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-Y41P:CAPS">
-<ANCHOR id="GST-RIFF-YUV8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV8:CAPS">
-<ANCHOR id="GST-RIFF-YUV9:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YUV9:CAPS">
-<ANCHOR id="GST-RIFF-YUY2:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YUY2:CAPS">
-<ANCHOR id="GST-RIFF-YV12:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YV12:CAPS">
-<ANCHOR id="GST-RIFF-YVU9:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-YVU9:CAPS">
-<ANCHOR id="GST-RIFF-azpr" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-azpr">
-<ANCHOR id="GST-RIFF-bw10" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-bw10">
-<ANCHOR id="GST-RIFF-ccc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ccc">
-<ANCHOR id="GST-RIFF-cram" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-cram">
-<ANCHOR id="GST-RIFF-cvid" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-cvid">
-<ANCHOR id="GST-RIFF-cyuv" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-cyuv">
-<ANCHOR id="GST-RIFF-dmb1" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-dmb1">
-<ANCHOR id="GST-RIFF-h263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-h263">
-<ANCHOR id="GST-RIFF-i263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-i263">
-<ANCHOR id="GST-RIFF-i420" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-i420">
-<ANCHOR id="GST-RIFF-iv31" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv31">
-<ANCHOR id="GST-RIFF-iv32" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv32">
-<ANCHOR id="GST-RIFF-iv41" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv41">
-<ANCHOR id="GST-RIFF-iv50" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iv50">
-<ANCHOR id="GST-RIFF-iyuv" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-iyuv">
-<ANCHOR id="GST-RIFF-jpeg" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-jpeg">
-<ANCHOR id="GST-RIFF-m263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-m263">
-<ANCHOR id="GST-RIFF-mJPG" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-mJPG">
-<ANCHOR id="GST-RIFF-mvi1" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-mvi1">
-<ANCHOR id="GST-RIFF-none" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-none">
-<ANCHOR id="GST-RIFF-pack" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-pack">
-<ANCHOR id="GST-RIFF-rec" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rec">
-<ANCHOR id="GST-RIFF-rgb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rgb">
-<ANCHOR id="GST-RIFF-rle4" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rle4">
-<ANCHOR id="GST-RIFF-rle8" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rle8">
-<ANCHOR id="GST-RIFF-rpza" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rpza">
-<ANCHOR id="GST-RIFF-rt21" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-rt21">
-<ANCHOR id="GST-RIFF-tran" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-tran">
-<ANCHOR id="GST-RIFF-ulti" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-ulti">
-<ANCHOR id="GST-RIFF-v422" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-v422">
-<ANCHOR id="GST-RIFF-vixl" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-vixl">
-<ANCHOR id="GST-RIFF-vyuy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-vyuy">
-<ANCHOR id="GST-RIFF-wham" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-wham">
-<ANCHOR id="GST-RIFF-x263" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-x263">
-<ANCHOR id="GST-RIFF-xmpg" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-xmpg">
-<ANCHOR id="GST-RIFF-y41p" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-y41p">
-<ANCHOR id="GST-RIFF-yuy2" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-yuy2">
-<ANCHOR id="GST-RIFF-yv12" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#GST-RIFF-yv12">
-<ANCHOR id="gst-riff-acid" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-acid">
<ANCHOR id="gst-riff-create-audio-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-caps">
<ANCHOR id="gst-riff-create-audio-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-audio-template-caps">
<ANCHOR id="gst-riff-create-iavs-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-caps">
<ANCHOR id="gst-riff-create-iavs-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-iavs-template-caps">
<ANCHOR id="gst-riff-create-video-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-video-caps">
<ANCHOR id="gst-riff-create-video-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-create-video-template-caps">
-<ANCHOR id="gst-riff-dmlh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-dmlh">
-<ANCHOR id="gst-riff-index-entry" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-index-entry">
<ANCHOR id="gst-riff-init" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-init">
<ANCHOR id="gst-riff-parse-chunk" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-chunk">
<ANCHOR id="gst-riff-parse-file-header" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-file-header">
<ANCHOR id="gst-riff-parse-strf-vids" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-strf-vids">
<ANCHOR id="gst-riff-parse-strh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-parse-strh">
<ANCHOR id="gst-riff-read-chunk" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-read-chunk">
-<ANCHOR id="gst-riff-strf-auds" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strf-auds">
-<ANCHOR id="gst-riff-strf-iavs" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strf-iavs">
-<ANCHOR id="gst-riff-strf-vids" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strf-vids">
-<ANCHOR id="gst-riff-strh" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstriff.html#gst-riff-strh">
<ANCHOR id="gst-plugins-base-libs-gstbasertpaudiopayload" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbasertpaudiopayload.html">
<ANCHOR id="gst-plugins-base-libs-gstbasertpaudiopayload.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbasertpaudiopayload.html#gst-plugins-base-libs-gstbasertpaudiopayload.synopsis">
<ANCHOR id="GstBaseRTPAudioPayload" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstbasertpaudiopayload.html#GstBaseRTPAudioPayload">
<ANCHOR id="GstRTCPFBType" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType">
<ANCHOR id="GST-RTCP-FB-TYPE-INVALID:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-FB-TYPE-INVALID:CAPS">
<ANCHOR id="GST-RTCP-RTPFB-TYPE-NACK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-NACK:CAPS">
+<ANCHOR id="GST-RTCP-RTPFB-TYPE-TMMBR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBR:CAPS">
+<ANCHOR id="GST-RTCP-RTPFB-TYPE-TMMBN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-RTPFB-TYPE-TMMBN:CAPS">
<ANCHOR id="GST-RTCP-PSFB-TYPE-PLI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-PLI:CAPS">
<ANCHOR id="GST-RTCP-PSFB-TYPE-SLI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-SLI:CAPS">
<ANCHOR id="GST-RTCP-PSFB-TYPE-RPSI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-RPSI:CAPS">
<ANCHOR id="GST-RTCP-PSFB-TYPE-AFB:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-AFB:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-FIR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-FIR:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-TSTR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTR:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-TSTN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-TSTN:CAPS">
+<ANCHOR id="GST-RTCP-PSFB-TYPE-VBCN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-PSFB-TYPE-VBCN:CAPS">
<ANCHOR id="gst-rtcp-buffer-new-take-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data">
<ANCHOR id="gst-rtcp-buffer-new-copy-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data">
<ANCHOR id="gst-rtcp-buffer-validate-data" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data">
<ANCHOR id="gst-plugins-base-libs-gstrtspdefs.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.description">
<ANCHOR id="gst-plugins-base-libs-gstrtspdefs.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#gst-plugins-base-libs-gstrtspdefs.details">
<ANCHOR id="GST-RTSP-CHECK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-CHECK:CAPS">
+<ANCHOR id="GST-RTSP-AUTH-MAX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS">
<ANCHOR id="GstRTSPEvent" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent">
<ANCHOR id="GST-RTSP-EV-READ:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EV-READ:CAPS">
<ANCHOR id="GST-RTSP-EV-WRITE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EV-WRITE:CAPS">
<ANCHOR id="GST-RTSP-AUTH-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-NONE:CAPS">
<ANCHOR id="GST-RTSP-AUTH-BASIC:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-BASIC:CAPS">
<ANCHOR id="GST-RTSP-AUTH-DIGEST:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-DIGEST:CAPS">
-<ANCHOR id="GST-RTSP-AUTH-MAX:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS">
<ANCHOR id="GstRTSPHeaderField" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField">
<ANCHOR id="GstRTSPStatusCode" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode">
<ANCHOR id="gst-rtsp-strresult" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-strresult">
<ANCHOR id="GST-TAG-CAPTURING-FLASH-MODE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-FLASH-MODE:CAPS">
<ANCHOR id="GST-TAG-CAPTURING-METERING-MODE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-METERING-MODE:CAPS">
<ANCHOR id="GST-TAG-CAPTURING-SOURCE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-SOURCE:CAPS">
+<ANCHOR id="GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS">
<ANCHOR id="GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS">
<ANCHOR id="GST-TAG-IMAGE-VERTICAL-PPI:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS">
+<ANCHOR id="GST-TAG-ID3V2-HEADER-SIZE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS">
<ANCHOR id="gst-tag-register-musicbrainz-tags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#gst-tag-register-musicbrainz-tags">
<ANCHOR id="gst-tag-freeform-string-to-utf8" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#gst-tag-freeform-string-to-utf8">
<ANCHOR id="gst-tag-parse-extended-comment" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttag.html#gst-tag-parse-extended-comment">
<ANCHOR id="gst-tag-from-id3-user-tag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-from-id3-user-tag">
<ANCHOR id="gst-tag-to-id3-tag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-to-id3-tag">
<ANCHOR id="gst-tag-list-add-id3-image" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-list-add-id3-image">
+<ANCHOR id="gst-tag-get-id3v2-tag-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size">
+<ANCHOR id="gst-tag-list-from-id3v2-tag" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag">
<ANCHOR id="gst-plugins-base-libs-gsttagid3.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagid3.html#gst-plugins-base-libs-gsttagid3.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.description">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.details">
+<ANCHOR id="gst-tag-list-to-exif-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer">
+<ANCHOR id="gst-tag-list-to-exif-buffer-with-tiff-header" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-to-exif-buffer-with-tiff-header">
+<ANCHOR id="gst-tag-list-from-exif-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer">
+<ANCHOR id="gst-tag-list-from-exif-buffer-with-tiff-header" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-tag-list-from-exif-buffer-with-tiff-header">
+<ANCHOR id="gst-plugins-base-libs-gsttagexif.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagexif.html#gst-plugins-base-libs-gsttagexif.see-also">
<ANCHOR id="gst-plugins-base-libs-gsttagxmp" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html">
<ANCHOR id="gst-plugins-base-libs-gsttagxmp.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.synopsis">
<ANCHOR id="gst-plugins-base-libs-gsttagxmp.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.description">
<ANCHOR id="gst-plugins-base-libs-gsttagxmp.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.details">
<ANCHOR id="gst-tag-list-from-xmp-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-from-xmp-buffer">
<ANCHOR id="gst-tag-list-to-xmp-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer">
+<ANCHOR id="gst-tag-list-to-xmp-buffer-full" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-list-to-xmp-buffer-full">
+<ANCHOR id="gst-tag-xmp-list-schemas" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas">
<ANCHOR id="gst-plugins-base-libs-gsttagxmp.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmp.html#gst-plugins-base-libs-gsttagxmp.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.description">
+<ANCHOR id="gst-plugins-base-libs-gsttagxmpwriter.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-plugins-base-libs-gsttagxmpwriter.details">
+<ANCHOR id="gst-tag-xmp-writer-add-all-schemas" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-all-schemas">
+<ANCHOR id="gst-tag-xmp-writer-add-schema" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-add-schema">
+<ANCHOR id="gst-tag-xmp-writer-has-schema" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-has-schema">
+<ANCHOR id="gst-tag-xmp-writer-remove-schema" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-schema">
+<ANCHOR id="gst-tag-xmp-writer-remove-all-schemas" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-remove-all-schemas">
+<ANCHOR id="gst-tag-xmp-writer-tag-list-to-xmp-buffer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagxmpwriter.html#gst-tag-xmp-writer-tag-list-to-xmp-buffer">
<ANCHOR id="gst-plugins-base-libs-gsttagdemux" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html">
<ANCHOR id="gst-plugins-base-libs-gsttagdemux.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.synopsis">
<ANCHOR id="gst-plugins-base-libs-gsttagdemux.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.description">
<ANCHOR id="GST-TAG-DEMUX-RESULT-AGAIN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-AGAIN:CAPS">
<ANCHOR id="GST-TAG-DEMUX-RESULT-OK:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#GST-TAG-DEMUX-RESULT-OK:CAPS">
<ANCHOR id="gst-plugins-base-libs-gsttagdemux.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagdemux.html#gst-plugins-base-libs-gsttagdemux.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.description">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.details">
+<ANCHOR id="GstTagMux" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#GstTagMux">
+<ANCHOR id="GstTagMuxClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass">
+<ANCHOR id="gst-plugins-base-libs-gsttagmux.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttagmux.html#gst-plugins-base-libs-gsttagmux.see-also">
<ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html">
<ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.synopsis">
<ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.description">
<ANCHOR id="gst-tag-get-language-code-iso-639-2B" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2B">
<ANCHOR id="gst-tag-get-language-code-iso-639-2T" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-2T">
<ANCHOR id="gst-plugins-base-libs-gsttaglanguagecodes.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglanguagecodes.html#gst-plugins-base-libs-gsttaglanguagecodes.see-also">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.description">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.details">
+<ANCHOR id="GstTagLicenseFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PERMITS-SHARING:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PERMITS-SHARING:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS">
+<ANCHOR id="GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS">
+<ANCHOR id="gst-tag-get-license-flags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-flags">
+<ANCHOR id="gst-tag-get-license-nick" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-nick">
+<ANCHOR id="gst-tag-get-license-title" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-title">
+<ANCHOR id="gst-tag-get-license-description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-description">
+<ANCHOR id="gst-tag-get-license-jurisdiction" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-jurisdiction">
+<ANCHOR id="gst-tag-get-license-version" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-license-version">
+<ANCHOR id="gst-tag-get-licenses" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-tag-get-licenses">
+<ANCHOR id="gst-plugins-base-libs-gsttaglicenses.see-also" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gsttaglicenses.html#gst-plugins-base-libs-gsttaglicenses.see-also">
<ANCHOR id="gst-plugins-base-libs-gstpbutils" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html">
<ANCHOR id="gst-plugins-base-libs-gstpbutils.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.synopsis">
<ANCHOR id="gst-plugins-base-libs-gstpbutils.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.description">
<ANCHOR id="gst-plugins-base-libs-gstpbutils.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-libs-gstpbutils.details">
<ANCHOR id="gst-pb-utils-init" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-MINOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-MICRO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS">
-<ANCHOR id="GST-PLUGINS-BASE-VERSION-NANO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS">
-<ANCHOR id="GST-CHECK-PLUGINS-BASE-VERSION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS">
-<ANCHOR id="gst-plugins-base-version" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version">
-<ANCHOR id="gst-plugins-base-version-string" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutils.html#gst-plugins-base-version-string">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.description">
+<ANCHOR id="gst-plugins-base-libs-gstpluginsbaseversion.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-libs-gstpluginsbaseversion.details">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MAJOR:CAPS">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-MINOR:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MINOR:CAPS">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-MICRO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-MICRO:CAPS">
+<ANCHOR id="GST-PLUGINS-BASE-VERSION-NANO:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-PLUGINS-BASE-VERSION-NANO:CAPS">
+<ANCHOR id="GST-CHECK-PLUGINS-BASE-VERSION:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#GST-CHECK-PLUGINS-BASE-VERSION:CAPS">
+<ANCHOR id="gst-plugins-base-version" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version">
+<ANCHOR id="gst-plugins-base-version-string" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version-string">
<ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html">
<ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.synopsis">
<ANCHOR id="gst-plugins-base-libs-gstpbutilscodecutils.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-plugins-base-libs-gstpbutilscodecutils.description">
<ANCHOR id="gst-codec-utils-h264-get-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile">
<ANCHOR id="gst-codec-utils-h264-get-level" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level">
<ANCHOR id="gst-codec-utils-h264-caps-set-level-and-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-caps-set-level-and-profile">
+<ANCHOR id="gst-codec-utils-h264-get-level-idc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level-idc">
<ANCHOR id="gst-codec-utils-mpeg4video-get-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile">
<ANCHOR id="gst-codec-utils-mpeg4video-get-level" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level">
<ANCHOR id="gst-codec-utils-mpeg4video-caps-set-level-and-profile" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile">
<ANCHOR id="GstDiscovererContainerInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo">
<ANCHOR id="GstDiscovererAudioInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo">
<ANCHOR id="GstDiscovererVideoInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo">
+<ANCHOR id="GstDiscovererSubtitleInfo" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo">
<ANCHOR id="gst-discoverer-stream-info-get-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps">
<ANCHOR id="gst-discoverer-stream-info-get-misc" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc">
<ANCHOR id="gst-discoverer-stream-info-get-next" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next">
<ANCHOR id="gst-discoverer-info-get-audio-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams">
<ANCHOR id="gst-discoverer-info-get-container-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams">
<ANCHOR id="gst-discoverer-info-get-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams">
+<ANCHOR id="gst-discoverer-info-get-subtitle-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-subtitle-streams">
<ANCHOR id="gst-discoverer-info-get-video-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-video-streams">
<ANCHOR id="gst-discoverer-audio-info-get-bitrate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-bitrate">
<ANCHOR id="gst-discoverer-audio-info-get-channels" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-channels">
<ANCHOR id="gst-discoverer-audio-info-get-depth" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-depth">
+<ANCHOR id="gst-discoverer-audio-info-get-language" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-language">
<ANCHOR id="gst-discoverer-audio-info-get-max-bitrate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-max-bitrate">
<ANCHOR id="gst-discoverer-audio-info-get-sample-rate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-audio-info-get-sample-rate">
<ANCHOR id="gst-discoverer-container-info-get-streams" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-container-info-get-streams">
+<ANCHOR id="gst-discoverer-subtitle-info-get-language" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-subtitle-info-get-language">
<ANCHOR id="gst-discoverer-video-info-get-bitrate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-bitrate">
<ANCHOR id="gst-discoverer-video-info-get-depth" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-depth">
<ANCHOR id="gst-discoverer-video-info-get-framerate-denom" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-video-info-get-framerate-denom">
<ANCHOR id="gst-encoding-profile-unref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-unref">
<ANCHOR id="gst-encoding-profile-ref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-ref">
<ANCHOR id="gst-encoding-profile-find" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-find">
+<ANCHOR id="gst-encoding-profile-from-discoverer" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-from-discoverer">
<ANCHOR id="gst-encoding-profile-get-name" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-name">
<ANCHOR id="gst-encoding-profile-get-description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-description">
<ANCHOR id="gst-encoding-profile-get-format" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-format">
<ANCHOR id="GST-VIDEO-CAPS-RGB8-PALETTED:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-RGB8-PALETTED:CAPS">
<ANCHOR id="GST-VIDEO-CAPS-GRAY8:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY8:CAPS">
<ANCHOR id="GST-VIDEO-CAPS-GRAY16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-GRAY16:CAPS">
+<ANCHOR id="GST-VIDEO-CAPS-ARGB-64:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-ARGB-64:CAPS">
+<ANCHOR id="GST-VIDEO-CAPS-r210" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-r210">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15:CAPS">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-15-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16:CAPS">
+<ANCHOR id="GST-VIDEO-COMP1-MASK-16-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP1-MASK-16-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-15-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16:CAPS">
+<ANCHOR id="GST-VIDEO-COMP2-MASK-16-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP2-MASK-16-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-15-INT:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-16:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16:CAPS">
+<ANCHOR id="GST-VIDEO-COMP3-MASK-16-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-COMP3-MASK-16-INT:CAPS">
<ANCHOR id="GST-VIDEO-FPS-RANGE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FPS-RANGE:CAPS">
<ANCHOR id="GST-VIDEO-GREEN-MASK-15:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15:CAPS">
<ANCHOR id="GST-VIDEO-GREEN-MASK-15-INT:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-GREEN-MASK-15-INT:CAPS">
<ANCHOR id="GST-VIDEO-BUFFER-TFF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-TFF:CAPS">
<ANCHOR id="GST-VIDEO-BUFFER-RFF:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-RFF:CAPS">
<ANCHOR id="GST-VIDEO-BUFFER-ONEFIELD:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-ONEFIELD:CAPS">
+<ANCHOR id="GST-VIDEO-BUFFER-PROGRESSIVE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-BUFFER-PROGRESSIVE:CAPS">
<ANCHOR id="GstVideoFormat" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GstVideoFormat">
<ANCHOR id="GST-VIDEO-FORMAT-UNKNOWN:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS">
<ANCHOR id="GST-VIDEO-FORMAT-I420:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-I420:CAPS">
<ANCHOR id="gst-video-calculate-display-ratio" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio">
<ANCHOR id="gst-video-frame-rate" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-frame-rate">
<ANCHOR id="gst-video-get-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-get-size">
+<ANCHOR id="gst-video-get-size-from-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-get-size-from-caps">
<ANCHOR id="gst-video-format-convert" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-convert">
<ANCHOR id="gst-video-format-new-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps">
<ANCHOR id="gst-video-format-new-caps-interlaced" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-new-caps-interlaced">
+<ANCHOR id="gst-video-format-new-template-caps" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-new-template-caps">
<ANCHOR id="gst-video-format-get-component-height" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-height">
<ANCHOR id="gst-video-format-get-component-offset" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-offset">
<ANCHOR id="gst-video-format-get-component-width" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-width">
+<ANCHOR id="gst-video-format-get-component-depth" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-component-depth">
<ANCHOR id="gst-video-format-get-pixel-stride" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-pixel-stride">
<ANCHOR id="gst-video-format-get-row-stride" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-row-stride">
<ANCHOR id="gst-video-format-get-size" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-format-get-size">
<ANCHOR id="gst-video-convert-frame-async" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-convert-frame-async">
<ANCHOR id="gst-video-event-new-still-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame">
<ANCHOR id="gst-video-event-parse-still-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame">
+<ANCHOR id="gst-video-event-new-upstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit">
+<ANCHOR id="gst-video-event-new-downstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit">
+<ANCHOR id="gst-video-event-is-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-is-force-key-unit">
+<ANCHOR id="gst-video-event-parse-upstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-upstream-force-key-unit">
+<ANCHOR id="gst-video-event-parse-downstream-force-key-unit" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.synopsis">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.description" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.description">
+<ANCHOR id="gst-plugins-base-libs-gstvideooverlaycomposition.details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-plugins-base-libs-gstvideooverlaycomposition.details">
+<ANCHOR id="GstVideoOverlayComposition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition">
+<ANCHOR id="GstVideoOverlayCompositionClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionClass">
+<ANCHOR id="gst-video-overlay-composition-new" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new">
+<ANCHOR id="gst-video-overlay-composition-ref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref">
+<ANCHOR id="gst-video-overlay-composition-unref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref">
+<ANCHOR id="gst-video-overlay-composition-add-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-add-rectangle">
+<ANCHOR id="gst-video-overlay-composition-n-rectangles" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-n-rectangles">
+<ANCHOR id="gst-video-overlay-composition-get-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-rectangle">
+<ANCHOR id="gst-video-overlay-composition-get-seqnum" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-get-seqnum">
+<ANCHOR id="gst-video-overlay-composition-copy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy">
+<ANCHOR id="gst-video-overlay-composition-make-writable" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable">
+<ANCHOR id="gst-video-overlay-composition-blend" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend">
+<ANCHOR id="gst-video-buffer-get-overlay-composition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-get-overlay-composition">
+<ANCHOR id="gst-video-buffer-set-overlay-composition" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-buffer-set-overlay-composition">
+<ANCHOR id="GstVideoOverlayFormatFlags" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags">
+<ANCHOR id="GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS">
+<ANCHOR id="GstVideoOverlayRectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle">
+<ANCHOR id="GstVideoOverlayRectangleClass" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangleClass">
+<ANCHOR id="gst-video-overlay-rectangle-new-argb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-new-argb">
+<ANCHOR id="gst-video-overlay-rectangle-ref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref">
+<ANCHOR id="gst-video-overlay-rectangle-unref" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref">
+<ANCHOR id="gst-video-overlay-rectangle-get-pixels-argb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-argb">
+<ANCHOR id="gst-video-overlay-rectangle-get-pixels-unscaled-argb" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-pixels-unscaled-argb">
+<ANCHOR id="gst-video-overlay-rectangle-get-render-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle">
+<ANCHOR id="gst-video-overlay-rectangle-get-seqnum" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-seqnum">
+<ANCHOR id="gst-video-overlay-rectangle-set-render-rectangle" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-render-rectangle">
+<ANCHOR id="gst-video-overlay-rectangle-copy" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy">
<ANCHOR id="gst-plugins-base-libs-gstvideofilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideofilter.html">
<ANCHOR id="gst-plugins-base-libs-gstvideofilter.synopsis" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideofilter.html#gst-plugins-base-libs-gstvideofilter.synopsis">
<ANCHOR id="GstVideoFilter" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter">
<ANCHOR id="gst-plugins-base-libs-gstvideosink.property-details" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideosink.html#gst-plugins-base-libs-gstvideosink.property-details">
<ANCHOR id="GstVideoSink--show-preroll-frame" href="gst-plugins-base-libs-0.10/gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame">
<ANCHOR id="annotation-glossterm-out" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-out">
-<ANCHOR id="annotation-glossterm-allow-none" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-allow-none">
<ANCHOR id="annotation-glossterm-scope async" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-scope async">
+<ANCHOR id="annotation-glossterm-allow-none" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-allow-none">
<ANCHOR id="annotation-glossterm-closure" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-closure">
<ANCHOR id="annotation-glossterm-transfer none" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-transfer none">
<ANCHOR id="annotation-glossterm-element-type" href="gst-plugins-base-libs-0.10/annotation-glossary.html#annotation-glossterm-element-type">
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=
--extra-dir=$(datadir)/gtk-doc/html
# Used for dependencies.
-HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.h
-CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.c
-
-# 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
# Header files to ignore when scanning.
IGNORE_HFILES = avcodec.h gstffmpegcodecmap.h dsputil.h arch.h speex_resampler.h speex_resampler_wrapper.h fixed_arm4.h fixed_arm5e.h fixed_bfin.h fixed_debug.h fixed_generic.h resample_sse.h
# 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) -I$(top_builddir)/gst-libs
-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)
# If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES =
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
include $(top_srcdir)/common/gtk-doc-plugins.mak
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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 =
# Used for dependencies.
-HFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.h
-CFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.c
-
-# 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
# Header files to ignore when scanning.
IGNORE_HFILES = avcodec.h gstffmpegcodecmap.h dsputil.h arch.h speex_resampler.h speex_resampler_wrapper.h fixed_arm4.h fixed_arm5e.h fixed_bfin.h fixed_debug.h fixed_generic.h resample_sse.h
# 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) -I$(top_builddir)/gst-libs
-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)
# If you need to override some of the declarations, place them in this file
-# and uncomment this line.
-#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
-DOC_OVERRIDES =
+DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt
# We set GPATH here; this gives us semantics for GNU make
# which are more like other make's VPATH, when it comes to
# 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
$(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
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
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:
@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 \
### 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
@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 ; \
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:
$(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; \
--- /dev/null
+<STRUCT>
+<NAME>GstDecodeBin</NAME>
+struct _GstDecodeBin {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstDecodeBin2</NAME>
+struct _GstDecodeBin2 {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstPlayBaseBin</NAME>
+struct _GstPlayBaseBin {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstPlayBin</NAME>
+struct _GstPlayBin {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstPlayBin2</NAME>
+struct _GstPlayBin2 {
+};
+</STRUCT>
+<STRUCT>
+<NAME>GstURIDecodeBin</NAME>
+struct _GstURIDecodeBin {
+};
+</STRUCT>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Synchronous</NICK>
-<BLURB>When enabled, runs the X display in synchronous mode. (used only for debugging).</BLURB>
+<BLURB>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Synchronous</NICK>
-<BLURB>When enabled, runs the X display in synchronous mode. (used only for debugging).</BLURB>
+<BLURB>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GstMultiFdSink::buffers-max</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Buffers max</NICK>
<BLURB>max number of buffers to queue for a client (-1 = no limit).</BLURB>
<ARG>
<NAME>GstMultiFdSink::buffers-soft-max</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Buffers soft max</NICK>
<BLURB>Recover client when going over this limit (-1 = no limit).</BLURB>
<ARG>
<NAME>GstMultiFdSink::buffers-min</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Buffers min</NICK>
<BLURB>min number of buffers to queue (-1 = as few as possible).</BLURB>
<ARG>
<NAME>GstMultiFdSink::bytes-min</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Bytes min</NICK>
<BLURB>min number of bytes to queue (-1 = as little as possible).</BLURB>
<ARG>
<NAME>GstMultiFdSink::time-min</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Time min</NICK>
<BLURB>min number of time to queue (-1 = as little as possible).</BLURB>
<ARG>
<NAME>GstMultiFdSink::units-max</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Units max</NICK>
<BLURB>max number of units to queue (-1 = no limit).</BLURB>
<ARG>
<NAME>GstMultiFdSink::units-soft-max</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Units soft max</NICK>
<BLURB>Recover client when going over this limit (-1 = no limit).</BLURB>
<ARG>
<NAME>GstMultiFdSink::qos-dscp</NAME>
<TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,63]</RANGE>
+<RANGE>[-1,63]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>QoS diff srv code point</NICK>
<BLURB>Quality of Service, differentiated services code point (-1 default).</BLURB>
<ARG>
<NAME>GstVorbisEnc::bitrate</NAME>
<TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,250001]</RANGE>
+<RANGE>[-1,250001]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Target Bitrate</NICK>
<BLURB>Attempt to encode at a bitrate averaging this (in bps). This uses the bitrate management engine, and is not recommended for most users. Quality is a better alternative. (-1 == disabled).</BLURB>
<ARG>
<NAME>GstVorbisEnc::max-bitrate</NAME>
<TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,250001]</RANGE>
+<RANGE>[-1,250001]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Maximum Bitrate</NICK>
<BLURB>Specify a maximum bitrate (in bps). Useful for streaming applications. (-1 == disabled).</BLURB>
<ARG>
<NAME>GstVorbisEnc::min-bitrate</NAME>
<TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,250001]</RANGE>
+<RANGE>[-1,250001]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Minimum Bitrate</NICK>
<BLURB>Specify a minimum bitrate (in bps). Useful for encoding for a fixed-size channel. (-1 == disabled).</BLURB>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
-<NICK>VP3 Compatible</NICK>
+<NICK>Cap Overflow</NICK>
<BLURB>Enable capping of bit reservoir overflows.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
-<NICK>VP3 Compatible</NICK>
+<NICK>Cap Underflow</NICK>
<BLURB>Enable capping of bit reservoir underflows.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
-<NICK>VP3 Compatible</NICK>
+<NICK>Drop Frames</NICK>
<BLURB>Allow or disallow frame dropping.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
</ARG>
<ARG>
+<NAME>GstOggMux::max-tolerance</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max time tolerance</NICK>
+<BLURB>Maximum timestamp difference for maintaining perfect granules.</BLURB>
+<DEFAULT>40000000</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstOggMux::skeleton</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Skeleton</NICK>
+<BLURB>Whether to include a Skeleton track.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
<NAME>GstAlsaSrc::device</NAME>
<TYPE>gchar*</TYPE>
<RANGE></RANGE>
</ARG>
<ARG>
+<NAME>GstVideoScale::dither</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Dither</NICK>
+<BLURB>Add dither (only used for Lanczos method).</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoScale::envelope</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,5]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Envelope</NICK>
+<BLURB>Size of filter envelope.</BLURB>
+<DEFAULT>2</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoScale::sharpen</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,1]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Sharpen</NICK>
+<BLURB>Sharpening.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoScale::sharpness</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,2]</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Sharpness</NICK>
+<BLURB>Sharpness of filter.</BLURB>
+<DEFAULT>1</DEFAULT>
+</ARG>
+
+<ARG>
<NAME>GstVideoRate::drop</NAME>
<TYPE>guint64</TYPE>
<RANGE></RANGE>
</ARG>
<ARG>
+<NAME>GstVideoRate::average-period</NAME>
+<TYPE>guint64</TYPE>
+<RANGE><= G_MAXINT64</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Period over which to average</NICK>
+<BLURB>Period over which to average the framerate (in ns) (0 = disabled).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoRate::drop-only</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Only Drop</NICK>
+<BLURB>Only drop frames, no duplicates are produced.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoRate::force-fps</NAME>
+<TYPE>GstFraction</TYPE>
+<RANGE></RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>Force output framerate</NICK>
+<BLURB>Force output framerate (negative means negotiate via caps).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstVideoRate::max-rate</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 1</RANGE>
+<FLAGS>rwx</FLAGS>
+<NICK>maximum framerate</NICK>
+<BLURB>Maximum framerate allowed to pass through (in frames per second, implies drop-only).</BLURB>
+<DEFAULT>2147483647</DEFAULT>
+</ARG>
+
+<ARG>
<NAME>GstAudioRate::add</NAME>
<TYPE>guint64</TYPE>
<RANGE></RANGE>
</ARG>
<ARG>
+<NAME>GstTextOverlay::outline-color</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Text Outline Color</NICK>
+<BLURB>Color to use for outline the text (big-endian ARGB).</BLURB>
+<DEFAULT>4278190080</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstTextOverlay::shadow</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>create shadow of text</NICK>
+<BLURB>Whether to create a shadow of the letters under the text.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
<NAME>CDParanoia::abort-on-skip</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<ARG>
<NAME>GstCdParanoiaSrc::read-speed</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Read speed</NICK>
<BLURB>Read from device at specified speed.</BLURB>
<ARG>
<NAME>GstCdParanoiaSrc::search-overlap</NAME>
<TYPE>gint</TYPE>
-<RANGE>[G_MAXULONG,75]</RANGE>
+<RANGE>[-1,75]</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Search overlap</NICK>
<BLURB>Force minimum overlap search during verification to n sectors.</BLURB>
<ARG>
<NAME>GstCdParanoiaSrc::cache-size</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Cache size</NICK>
<BLURB>Set CD cache size to n sectors (-1 = auto).</BLURB>
<ARG>
<NAME>GstURIDecodeBin::buffer-duration</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Buffer duration (ns)</NICK>
<BLURB>Buffer duration when buffering streams (-1 default value).</BLURB>
<ARG>
<NAME>GstURIDecodeBin::buffer-size</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Buffer size (bytes)</NICK>
<BLURB>Buffer size when buffering streams (-1 default value).</BLURB>
<ARG>
<NAME>GstPlayBin2::current-audio</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Current audio</NICK>
<BLURB>Currently playing audio stream (-1 = auto).</BLURB>
<ARG>
<NAME>GstPlayBin2::current-text</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Current Text</NICK>
<BLURB>Currently playing text stream (-1 = auto).</BLURB>
<ARG>
<NAME>GstPlayBin2::current-video</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Current Video</NICK>
<BLURB>Currently playing video stream (-1 = auto).</BLURB>
<ARG>
<NAME>GstPlayBin2::buffer-duration</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Buffer duration (ns)</NICK>
<BLURB>Buffer duration when buffering network streams.</BLURB>
<ARG>
<NAME>GstPlayBin2::buffer-size</NAME>
<TYPE>gint</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Buffer size (bytes)</NICK>
<BLURB>Buffer size when buffering network streams.</BLURB>
<ARG>
<NAME>GstAppSrc::max-latency</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Max Latency</NICK>
<BLURB>The maximum latency (-1 = unlimited).</BLURB>
<ARG>
<NAME>GstAppSrc::min-latency</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Min Latency</NICK>
<BLURB>The minimum latency (-1 = default).</BLURB>
<ARG>
<NAME>GstAppSrc::size</NAME>
<TYPE>gint64</TYPE>
-<RANGE>>= G_MAXULONG</RANGE>
+<RANGE>>= -1</RANGE>
<FLAGS>rw</FLAGS>
<NICK>Size</NICK>
<BLURB>The size of the data stream in bytes (-1 if unknown).</BLURB>
</ARG>
<ARG>
+<NAME>GstPlaySink::audio-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Audio Sink</NICK>
+<BLURB>the audio output element to use (NULL = default sink).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlaySink::text-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Text sink</NICK>
+<BLURB>the text output element to use (NULL = default textoverlay).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlaySink::video-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Video Sink</NICK>
+<BLURB>the video output element to use (NULL = default sink).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
<NAME>GstSubtitleOverlay::font-desc</NAME>
<TYPE>gchar*</TYPE>
<RANGE></RANGE>
<DEFAULT>1000000000</DEFAULT>
</ARG>
+<ARG>
+<NAME>GstEncodeBin::flags</NAME>
+<TYPE>GstEncFlags</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Flags</NICK>
+<BLURB>Flags to control behaviour.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
--- /dev/null
+GObject
+ GInputStream
+ GOutputStream
+ GstColorBalanceChannel
+ GstMixerTrack
+ GstMixerOptions
+ GstObject
+ GstBus
+ GstClock
+ GstSystemClock
+ GstAudioClock
+ GstElement
+ GstAdder
+ GstAlsaMixerElement
+ GstAudioDecoder
+ GstVorbisDec
+ GstAudioEncoder
+ GstVorbisEnc
+ GstAudioRate
+ GstBaseSink
+ GstAppSink
+ GstBaseAudioSink
+ GstAudioSink
+ GstAlsaSink
+ GstGioBaseSink
+ GstGioSink
+ GstGioStreamSink
+ GstGnomeVFSSink
+ GstMultiFdSink
+ GstTCPServerSink
+ GstTCPClientSink
+ GstVideoSink
+ GstXImageSink
+ GstXvImageSink
+ GstBaseSrc
+ GstAppSrc
+ GstAudioTestSrc
+ GstGioBaseSrc
+ GstGioSrc
+ GstGioStreamSrc
+ GstGnomeVFSSrc
+ GstPushSrc
+ GstBaseAudioSrc
+ GstAudioSrc
+ GstAlsaSrc
+ GstCddaBaseSrc
+ GstCdParanoiaSrc
+ GstTCPClientSrc
+ GstTCPServerSrc
+ GstVideoTestSrc
+ GstBaseTransform
+ GstAudioConvert
+ GstAudioFilter
+ GstVolume
+ GstAudioResample
+ GstVideoFilter
+ GstFFMpegCsp
+ GstVideoScale
+ GstVideoRate
+ GstBin
+ GstDecodeBin
+ GstDecodeBin2
+ GstEncodeBin
+ GstPipeline
+ GstPlayBaseBin
+ GstPlayBin
+ GstPlayBin2
+ GstPlaySink
+ GstSubtitleOverlay
+ GstURIDecodeBin
+ GstGDPDepay
+ GstGDPPay
+ GstOggAviParse
+ GstOggDemux
+ GstOggMux
+ GstOggParse
+ GstOgmParse
+ GstOgmAudioParse
+ GstOgmTextParse
+ GstOgmVideoParse
+ GstSsaParse
+ GstStreamSelector
+ GstSubParse
+ GstTextOverlay
+ GstClockOverlay
+ GstTimeOverlay
+ GstTextRender
+ GstTheoraDec
+ GstTheoraEnc
+ GstTheoraParse
+ GstVisual
+ GstVisualbumpscope
+ GstVisualcorona
+ GstVisualinfinite
+ GstVisualjakdaw
+ GstVisualjess
+ GstVisuallv_analyzer
+ GstVisuallv_scope
+ GstVisualoinksie
+ GstVorbisParse
+ GstVorbisTag
+ GstPad
+ GstPadTemplate
+ GstPlugin
+ GstPluginFeature
+ GstElementFactory
+ GstIndexFactory
+ GstTypeFindFactory
+ GstRegistry
+ GstRingBuffer
+ GstAudioSinkRingBuffer
+ GstAudioSrcRingBuffer
+ GstTask
+ GstTaskPool
+ GstSignalObject
+ GstStreamInfo
+ PangoContext
+ PangoFontMap
+ PangoFcFontMap
+ PangoCairoFcFontMap
+GInterface
+ GFile
+ GTypePlugin
+ GstChildProxy
+ GstColorBalance
+ GstImplementsInterface
+ GstMixer
+ GstNavigation
+ GstPreset
+ GstPropertyProbe
+ GstStreamVolume
+ GstTagSetter
+ GstURIHandler
+ GstXOverlay
+ PangoCairoFontMap
+GstAlsaMixerElement GstImplementsInterface GstMixer GstPropertyProbe
+GstAlsaSink GstPropertyProbe
+GstAlsaSrc GstImplementsInterface GstMixer GstPropertyProbe
+GstAppSink GstURIHandler
+GstAppSrc GstURIHandler
+GstAudioEncoder GstPreset
GstBin GstChildProxy
+GstCdParanoiaSrc GstURIHandler
+GstCddaBaseSrc GstURIHandler
+GstDecodeBin GstChildProxy
+GstDecodeBin2 GstChildProxy
+GstEncodeBin GstChildProxy
+GstGioSink GstURIHandler
+GstGioSrc GstURIHandler
+GstGnomeVFSSink GstURIHandler
+GstGnomeVFSSrc GstURIHandler
+GstOggMux GstPreset
GstPipeline GstChildProxy
GstPlayBaseBin GstChildProxy
GstPlayBin GstChildProxy
GstPlayBin2 GstChildProxy GstStreamVolume
-GstDecodeBin2 GstChildProxy
-GstURIDecodeBin GstChildProxy
-GstDecodeBin GstChildProxy
GstPlaySink GstChildProxy
GstSubtitleOverlay GstChildProxy
-GstEncodeBin GstChildProxy
+GstTheoraEnc GstPreset
+GstURIDecodeBin GstChildProxy
+GstV4lElement GstImplementsInterface GstTuner GstXOverlay GstColorBalance GstPropertyProbe
+GstV4lSrc GstImplementsInterface GstTuner GstXOverlay GstColorBalance GstPropertyProbe
+GstVolume GstImplementsInterface GstMixer GstStreamVolume
+GstVorbisEnc GstPreset GstTagSetter
GstVorbisEnc GstTagSetter GstPreset
GstVorbisTag GstTagSetter
-GstCddaBaseSrc GstURIHandler
-GstCdParanoiaSrc GstURIHandler
-GstAlsaSrc GstImplementsInterface GstMixer GstPropertyProbe
-GstGioSrc GstURIHandler
-GstGnomeVFSSrc GstURIHandler
-GstAppSrc GstURIHandler
-GstGioSink GstURIHandler
-GstAlsaSink GstPropertyProbe
-GstGnomeVFSSink GstURIHandler
GstXImageSink GstImplementsInterface GstNavigation GstXOverlay
GstXvImageSink GstImplementsInterface GstNavigation GstXOverlay GstColorBalance GstPropertyProbe
-GstAppSink GstURIHandler
-GstAlsaMixerElement GstImplementsInterface GstMixer GstPropertyProbe
-GstTheoraEnc GstPreset
-GstOggMux GstPreset
-GstVolume GstImplementsInterface GstMixer GstStreamVolume
PangoCairoFcFontMap PangoCairoFontMap
+GFile GObject
GstChildProxy GstObject
-GstTagSetter GstElement
+GstColorBalance GstImplementsInterface GstElement
GstImplementsInterface GstElement
GstMixer GstImplementsInterface GstElement
-GstXOverlay GstImplementsInterface GstElement
-GstColorBalance GstImplementsInterface GstElement
GstStreamVolume GObject
+GstTagSetter GstElement
+GstTuner GstImplementsInterface GstElement
+GstXOverlay GstImplementsInterface GstElement
PangoCairoFontMap PangoFontMap
-GFile GObject
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GstPlayBaseBin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch03.html" title="gst-plugins-base Classes">
<link rel="prev" href="ch03.html" title="gst-plugins-base Classes">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--current-text" title='The "current-text" property'>current-text</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--current-video" title='The "current-video" property'>current-video</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--nstreams" title='The "nstreams" property'>nstreams</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read
- "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-min-threshold" title='The "queue-min-threshold" property'>queue-min-threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
- "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-size" title='The "queue-size" property'>queue-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
- "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-threshold" title='The "queue-threshold" property'>queue-threshold</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-min-threshold" title='The "queue-min-threshold" property'>queue-min-threshold</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-size" title='The "queue-size" property'>queue-size</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--queue-threshold" title='The "queue-threshold" property'>queue-threshold</a>" <span class="type">guint64</span> : Read / Write
"<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--source" title='The "source" property'>source</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>* : Read
"<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--stream-info" title='The "stream-info" property'>stream-info</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> : Read
"<a class="link" href="GstPlayBaseBin.html#GstPlayBaseBin--stream-info-value-array" title='The "stream-info-value-array" property'>stream-info-value-array</a>" <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a>* : Read
<hr>
<div class="refsect2">
<a name="GstPlayBaseBin--queue-min-threshold"></a><h3>The <code class="literal">"queue-min-threshold"</code> property</h3>
-<pre class="programlisting"> "queue-min-threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "queue-min-threshold" <span class="type">guint64</span> : Read / Write</pre>
<p>Buffering low threshold of internal queues in nanoseconds.</p>
<p>Allowed values: <= G_MAXINT64</p>
<p>Default value: 900000000</p>
<hr>
<div class="refsect2">
<a name="GstPlayBaseBin--queue-size"></a><h3>The <code class="literal">"queue-size"</code> property</h3>
-<pre class="programlisting"> "queue-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "queue-size" <span class="type">guint64</span> : Read / Write</pre>
<p>Size of internal queues in nanoseconds.</p>
<p>Allowed values: <= G_MAXINT64</p>
<p>Default value: 3000000000</p>
<hr>
<div class="refsect2">
<a name="GstPlayBaseBin--queue-threshold"></a><h3>The <code class="literal">"queue-threshold"</code> property</h3>
-<pre class="programlisting"> "queue-threshold" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "queue-threshold" <span class="type">guint64</span> : Read / Write</pre>
<p>Buffering threshold of internal queues in nanoseconds.</p>
<p>Allowed values: <= G_MAXINT64</p>
<p>Default value: 2850000000</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gst-plugins-base Elements</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="prev" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="next" href="gst-plugins-base-plugins-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp153664"></a>gst-plugins-base Elements</h2></div></div></div>
+<a name="idp154560"></a>gst-plugins-base Elements</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-plugins-adder.html">adder</a></span><span class="refpurpose"> — Add N audio channels together</span>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gst-plugins-base Plugins</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="prev" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
<link rel="next" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp73952"></a>gst-plugins-base Plugins</h2></div></div></div>
+<a name="idp73680"></a>gst-plugins-base Plugins</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="gst-plugins-base-plugins-plugin-adder.html">adder</a></span><span class="refpurpose"> — <a name="plugin-adder"></a>Adds multiple streams</span>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gst-plugins-base Classes</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="prev" href="gst-plugins-base-plugins-plugin-xvimagesink.html" title="xvimagesink">
<link rel="next" href="GstPlayBaseBin.html" title="GstPlayBaseBin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp4769232"></a>gst-plugins-base Classes</h2></div></div></div>
+<a name="idp4768528"></a>gst-plugins-base Classes</h2></div></div></div>
<div class="toc"><dl><dt>
<span class="refentrytitle"><a href="GstPlayBaseBin.html">GstPlayBaseBin</a></span><span class="refpurpose"></span>
</dt></dl></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>adder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="ch01.html" title="gst-plugins-base Elements">
<link rel="next" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp4775216"></a><h3>Example launch line</h3>
+<a name="idm11744"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp4772432"></a><h3>Element Information</h3>
+<a name="idm14528"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp7769952"></a><h3>Element Pads</h3>
+<a name="idp7769280"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>alsamixer</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-appsink.html" title="appsink">
<link rel="next" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-alsamixer.description"></a><h2>Description</h2>
-<p>
-This element controls various aspects such as the volume and balance
-of an audio device using the ALSA api.
-</p>
-<p>
-The application should query and use the interfaces provided by this
-element to control the device.
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9594784"></a><h3>Element Information</h3>
+<a name="idp7095728"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp9602240"></a><h3>Element Pads</h3>
+<a name="idp7103184"></a><h3>Element Pads</h3>
</div>
</div>
<p>
<a name="GstAlsaMixerElement-struct"></a><h3>struct GstAlsaMixerElement</h3>
<pre class="programlisting">struct GstAlsaMixerElement;</pre>
<p>
-Opaque datastructure.
</p>
</div>
</div>
<p>Default value: ""</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsamixer.see-also"></a><h2>See Also</h2>
-alsasink, alsasrc
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>alsasink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-alsamixer.html" title="alsamixer">
<link rel="next" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-alsasink.description"></a><h2>Description</h2>
-<p>
-This element renders raw audio samples using the ALSA api.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6507408"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> alsasink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Play an Ogg/Vorbis file.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7524000"></a><h3>Element Information</h3>
+<a name="idp6692992"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp7531456"></a><h3>Element Pads</h3>
+<a name="idp9721504"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstAlsaSink-struct"></a><h3>struct GstAlsaSink</h3>
<pre class="programlisting">struct GstAlsaSink;</pre>
<p>
-Opaque data structure
</p>
</div>
</div>
<p>Default value: ""</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsasink.see-also"></a><h2>See Also</h2>
-alsasrc, alsamixer
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>alsasrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
<link rel="next" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-alsasrc.description"></a><h2>Description</h2>
-<p>
-This element reads data from an audio card using the ALSA API.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp8699328"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v alsasrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>alsasrc<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Record from a sound card using ALSA and encode to Ogg/Vorbis.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8702512"></a><h3>Element Information</h3>
+<a name="idp4783184"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp9886976"></a><h3>Element Pads</h3>
+<a name="idp9856432"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstAlsaSrc-struct"></a><h3>struct GstAlsaSrc</h3>
<pre class="programlisting">struct GstAlsaSrc;</pre>
<p>
-Opaque data structure
</p>
</div>
</div>
<p>Default value: ""</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-alsasrc.see-also"></a><h2>See Also</h2>
-alsasink, alsamixer
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>appsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
<link rel="next" href="gst-plugins-base-plugins-alsamixer.html" title="alsamixer">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9669776"></a><h3>Element Information</h3>
+<a name="idp9575968"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp9677184"></a><h3>Element Pads</h3>
+<a name="idp9583376"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="gst-plugins-base-plugins-appsink.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GstAppSink-eos"></a><h3>The <code class="literal">"eos"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal that the end-of-stream has been reached. This signal is emited from
-the steaming thread.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSink-new-buffer"></a><h3>The <code class="literal">"new-buffer"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal that a new buffer is available.
-</p>
-<p>
-This signal is emited from the steaming thread and only when the
-"emit-signals" property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
-</p>
-<p>
-The new buffer can be retrieved with the "pull-buffer" action
-signal or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer"><code class="function">gst_app_sink_pull_buffer()</code></a> either from this signal callback
-or from any other thread.
-</p>
-<p>
-Note that this signal is only emited when the "emit-signals" property is
-set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, which it is not by default for performance reasons.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSink-new-preroll"></a><h3>The <code class="literal">"new-preroll"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Signal that a new preroll buffer is available.
-</p>
-<p>
-This signal is emited from the steaming thread and only when the
-"emit-signals" property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
-</p>
-<p>
-The new preroll buffer can be retrieved with the "pull-preroll" action
-signal or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll"><code class="function">gst_app_sink_pull_preroll()</code></a> either from this signal callback
-or from any other thread.
-</p>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Note that this signal is only emited when the "emit-signals" property is
-set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, which it is not by default for performance reasons.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSink-pull-buffer"></a><h3>The <code class="literal">"pull-buffer"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
-<p>
-This function blocks until a buffer or EOS becomes available or the appsink
-element is set to the READY/NULL state.
-</p>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
-This function will only return buffers when the appsink is in the PLAYING
-state. All rendered buffers will be put in a queue so that the application
-can pull buffers at its own rate.
-</p>
-<p>
-Note that when the application does not pull buffers fast enough, the
-queued buffers could consume a lot of memory, especially when dealing with
-raw video frames. It's possible to control the behaviour of the queue with
-the "drop" and "max-buffers" properties.
-</p>
-<p>
-If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element to emit this signal on</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> or NULL when the appsink is stopped or EOS.</td>
-</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstAppSink-pull-preroll"></a><h3>The <code class="literal">"pull-preroll"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
-<p>
-Get the last preroll buffer in <em class="parameter"><code>appsink</code></em>. This was the buffer that caused the
-appsink to preroll in the PAUSED state. This buffer can be pulled many times
-and remains available to the application even after EOS.
-</p>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="returnvalue">GstBuffer</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
-This function is typically used when dealing with a pipeline in the PAUSED
-state. Calling this function after doing a seek will give the buffer right
-after the seek position.
-</p>
-<p>
-Note that the preroll buffer will also be returned as the first buffer
-when calling <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer"><code class="function">gst_app_sink_pull_buffer()</code></a> or the "pull-buffer" action signal.
-</p>
-<p>
-If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
-</p>
-<p>
-This function blocks until a preroll buffer or EOS is received or the appsink
-element is set to the READY/NULL state.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element to emit this signal on</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> or NULL when the appsink is stopped or EOS.</td>
-</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstAppSink-new-buffer-list"></a><h3>The <code class="literal">"new-buffer-list"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
-<p>
-Signal that a new bufferlist is available.
-</p>
-<p>
-This signal is emited from the steaming thread and only when the
-"emit-signals" property is <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
-</p>
-<p>
-The new buffer can be retrieved with the "pull-buffer-list" action
-signal or <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-pull-buffer-list"><code class="function">gst_app_sink_pull_buffer_list()</code></a> either from this signal callback
-or from any other thread.
-</p>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Note that this signal is only emited when the "emit-signals" property is
-set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, which it is not by default for performance reasons.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSink-pull-buffer-list"></a><h3>The <code class="literal">"pull-buffer-list"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *appsink,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="returnvalue">GstBufferList</span></a>* user_function (<a class="link" href="gst-plugins-base-plugins-appsink.html#GstAppSink"><span class="type">GstAppSink</span></a> *gstappsink,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
-This function blocks until a buffer list or EOS becomes available or the appsink
-element is set to the READY/NULL state.
-</p>
-<p>
-This function will only return bufferlists when the appsink is in the PLAYING
-state. All rendered bufferlists will be put in a queue so that the application
-can pull bufferlists at its own rate.
-</p>
-<p>
-Note that when the application does not pull bufferlists fast enough, the
-queued bufferlists could consume a lot of memory, especially when dealing with
-raw video frames. It's possible to control the behaviour of the queue with
-the "drop" and "max-buffers" properties.
-</p>
-<p>
-If an EOS event was received before any buffers, this function returns
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsink</code></em> :</span></p></td>
-<td>the appsink element to emit this signal on</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferList.html#GstBufferList"><span class="type">GstBufferList</span></a> or NULL when the appsink is stopped or EOS.</td>
-</tr>
</tbody>
</table></div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>appsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-adder.html" title="adder">
<link rel="next" href="gst-plugins-base-plugins-appsink.html" title="appsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps" title='The "caps" property'>caps</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--format" title='The "format" property'>format</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--is-live" title='The "is-live" property'>is-live</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-bytes" title='The "max-bytes" property'>max-bytes</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-latency" title='The "max-latency" property'>max-latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-latency" title='The "min-latency" property'>min-latency</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size" title='The "size" property'>size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-bytes" title='The "max-bytes" property'>max-bytes</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-latency" title='The "max-latency" property'>max-latency</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-latency" title='The "min-latency" property'>min-latency</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size" title='The "size" property'>size</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type" title='The "stream-type" property'>stream-type</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-appsrc.html#GstAppStreamType"><span class="type">GstAppStreamType</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals" title='The "emit-signals" property'>emit-signals</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent" title='The "min-percent" property'>min-percent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp5517840"></a><h3>Element Information</h3>
+<a name="idp8801728"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp5525328"></a><h3>Element Pads</h3>
+<a name="idp8809136"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="GstAppSrc--max-bytes"></a><h3>The <code class="literal">"max-bytes"</code> property</h3>
-<pre class="programlisting"> "max-bytes" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "max-bytes" <span class="type">guint64</span> : Read / Write</pre>
<p>The maximum number of bytes to queue internally (0 = unlimited).</p>
<p>Default value: 200000</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAppSrc--max-latency"></a><h3>The <code class="literal">"max-latency"</code> property</h3>
-<pre class="programlisting"> "max-latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "max-latency" <span class="type">gint64</span> : Read / Write</pre>
<p>The maximum latency (-1 = unlimited).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<hr>
<div class="refsect2">
<a name="GstAppSrc--min-latency"></a><h3>The <code class="literal">"min-latency"</code> property</h3>
-<pre class="programlisting"> "min-latency" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "min-latency" <span class="type">gint64</span> : Read / Write</pre>
<p>The minimum latency (-1 = default).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<hr>
<div class="refsect2">
<a name="GstAppSrc--size"></a><h3>The <code class="literal">"size"</code> property</h3>
-<pre class="programlisting"> "size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "size" <span class="type">gint64</span> : Read / Write</pre>
<p>The size of the data stream in bytes (-1 if unknown).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<a name="gst-plugins-base-plugins-appsrc.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GstAppSrc-end-of-stream"></a><h3>The <code class="literal">"end-of-stream"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
-Notify <em class="parameter"><code>appsrc</code></em> that no more buffer are available.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSrc-enough-data"></a><h3>The <code class="literal">"enough-data"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal that the source has enough data. It is recommended that the
-application stops calling push-buffer until the need-data signal is
-emited again to avoid excessive buffer queueing.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc element that emited the signal</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSrc-need-data"></a><h3>The <code class="literal">"need-data"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> length,
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> arg1,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Signal that the source needs more data. In the callback or from another
-thread you should call push-buffer or end-of-stream.
-</p>
-<p>
-<em class="parameter"><code>length</code></em> is just a hint and when it is set to -1, any number of bytes can be
-pushed into <em class="parameter"><code>appsrc</code></em>.
-</p>
-<p>
-You can call push-buffer multiple times until the enough-data signal is
-fired.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc element that emited the signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>length</code></em> :</span></p></td>
-<td>the amount of bytes needed.</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSrc-push-buffer"></a><h3>The <code class="literal">"push-buffer"</code> signal</h3>
-<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
- <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *buffer,
+<pre class="programlisting"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
+ <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#GstBuffer"><span class="type">GstBuffer</span></a> *arg1,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
-Adds a buffer to the queue of buffers that the appsrc element will
-push to its source pad. This function does not take ownership of the
-buffer so the buffer needs to be unreffed after calling this function.
-</p>
-<p>
-When the block property is TRUE, this function can block until free space
-becomes available in the queue.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>buffer</code></em> :</span></p></td>
-<td>a buffer to push</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstAppSrc-seek-data"></a><h3>The <code class="literal">"seek-data"</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *appsrc,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> offset,
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc"><span class="type">GstAppSrc</span></a> *gstappsrc,
+ <span class="type">guint64</span> arg1,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-Seek to the given offset. The next push-buffer should produce buffers from
-the new <em class="parameter"><code>offset</code></em>.
-This callback is only called for seekable stream types.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>appsrc</code></em> :</span></p></td>
-<td>the appsrc element that emited the signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>offset</code></em> :</span></p></td>
-<td>the offset to seek to</td>
+<td><p><span class="term"><em class="parameter"><code>gstappsrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the seek succeeded.</td>
-</tr>
</tbody>
</table></div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audioconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
<link rel="next" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp9937248"></a><h3>Example launch line</h3>
+<a name="idp9950880"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7421920"></a><h3>Element Information</h3>
+<a name="idp6613792"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp7007232"></a><h3>Element Pads</h3>
+<a name="idp5527392"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="GstAudioConvertDithering"></a><h3>enum GstAudioConvertDithering</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
DITHER_NONE = 0,
DITHER_RPDF,
DITHER_TPDF,
<hr>
<div class="refsect2">
<a name="GstAudioConvertNoiseShaping"></a><h3>enum GstAudioConvertNoiseShaping</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
NOISE_SHAPING_NONE = 0,
NOISE_SHAPING_ERROR_FEEDBACK,
NOISE_SHAPING_SIMPLE,
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audiorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
<link rel="next" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect1">
<a name="gst-plugins-base-plugins-audiorate.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add" title='The "add" property'>add</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop" title='The "drop" property'>drop</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--in" title='The "in" property'>in</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--out" title='The "out" property'>out</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
+ "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add" title='The "add" property'>add</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop" title='The "drop" property'>drop</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--in" title='The "in" property'>in</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--out" title='The "out" property'>out</a>" <span class="type">guint64</span> : Read
"<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent" title='The "silent" property'>silent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance" title='The "tolerance" property'>tolerance</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance" title='The "tolerance" property'>tolerance</a>" <span class="type">guint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first" title='The "skip-to-first" property'>skip-to-first</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
</pre>
</div>
<p>
</p>
<div class="refsect2">
-<a name="idp10131792"></a><h3>Example pipelines</h3>
+<a name="idp10065952"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10134512"></a><h3>Element Information</h3>
+<a name="idp10068672"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp10141968"></a><h3>Element Pads</h3>
+<a name="idp10076128"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="gst-plugins-base-plugins-audiorate.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstAudioRate--add"></a><h3>The <code class="literal">"add"</code> property</h3>
-<pre class="programlisting"> "add" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "add" <span class="type">guint64</span> : Read</pre>
<p>Number of added samples.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioRate--drop"></a><h3>The <code class="literal">"drop"</code> property</h3>
-<pre class="programlisting"> "drop" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "drop" <span class="type">guint64</span> : Read</pre>
<p>Number of dropped samples.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioRate--in"></a><h3>The <code class="literal">"in"</code> property</h3>
-<pre class="programlisting"> "in" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "in" <span class="type">guint64</span> : Read</pre>
<p>Number of input samples.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioRate--out"></a><h3>The <code class="literal">"out"</code> property</h3>
-<pre class="programlisting"> "out" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "out" <span class="type">guint64</span> : Read</pre>
<p>Number of output samples.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioRate--tolerance"></a><h3>The <code class="literal">"tolerance"</code> property</h3>
-<pre class="programlisting"> "tolerance" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "tolerance" <span class="type">guint64</span> : Read / Write</pre>
<p>
The difference between incoming timestamp and next timestamp must exceed
the given value for audiorate to add or drop samples.
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audioresample</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
<link rel="next" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp9934288"></a><h3>Example launch line</h3>
+<a name="idp8557472"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9932064"></a><h3>Element Information</h3>
+<a name="idp8555248"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp7787632"></a><h3>Element Pads</h3>
+<a name="idp6067952"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<div class="refsect2">
<a name="GstAudioResample--filter-length"></a><h3>The <code class="literal">"filter-length"</code> property</h3>
<pre class="programlisting"> "filter-length" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre>
+<div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
+<h3 class="title">Warning</h3>
+<p><code class="literal">GstAudioResample:filter-length</code> is deprecated and should not be used in newly-written code. Use <a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality" title='The "quality" property'><span class="type">"quality"</span></a> property instead</p>
+</div>
<p>
Length of the resample filter
</p>
-<p>
-Deprectated: Use <a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality" title='The "quality" property'><span class="type">"quality"</span></a> property instead
-</p>
<p>Allowed values: >= 0</p>
<p>Default value: 64</p>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audiotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-audioresample.html" title="audioresample">
<link rel="next" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq" title='The "freq" property'>freq</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--is-live" title='The "is-live" property'>is-live</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--samplesperbuffer" title='The "samplesperbuffer" property'>samplesperbuffer</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--volume" title='The "volume" property'>volume</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave" title='The "wave" property'>wave</a>" <a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave" title="enum GstAudioTestSrcWave"><span class="type">GstAudioTestSrcWave</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull" title='The "can-activate-pull" property'>can-activate-pull</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
<p>
</p>
<div class="refsect2">
-<a name="idp10290800"></a><h3>Example launch line</h3>
+<a name="idp10528400"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10294688"></a><h3>Element Information</h3>
+<a name="idp10222736"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp10302144"></a><h3>Element Pads</h3>
+<a name="idp10230192"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE,
GST_AUDIO_TEST_SRC_WAVE_SINE_TAB,
GST_AUDIO_TEST_SRC_WAVE_TICKS,
- GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE
-} GstAudioTestSrcWave;
+ GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE,
+ GST_AUDIO_TEST_SRC_WAVE_RED_NOISE,
+ GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE,
+ GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE
+} GstAudioTestSrcWave;
</pre>
<p>
Different types of supported sound waves.
<td>white (zero mean) Gaussian noise; volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.
</td>
</tr>
+<tr>
+<td><p><a name="GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_TEST_SRC_WAVE_RED_NOISE</code></span></p></td>
+<td>red (brownian) noise
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE</code></span></p></td>
+<td>spectraly inverted pink noise
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE</code></span></p></td>
+<td>spectraly inverted red (brownian) noise
+</td>
+</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioTestSrc--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3>
-<pre class="programlisting"> "timestamp-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "timestamp-offset" <span class="type">gint64</span> : Read / Write</pre>
<p>An offset added to timestamps set on buffers (in ns).</p>
<p>Default value: 0</p>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>cdparanoiasrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
<link rel="next" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10403712"></a><h3>Element Information</h3>
+<a name="idp10447776"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp10411120"></a><h3>Element Pads</h3>
+<a name="idp10455184"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstCdParanoiaSrc-struct"></a><h3>struct GstCdParanoiaSrc</h3>
<pre class="programlisting">struct GstCdParanoiaSrc;</pre>
<p>
-The cdparanoia object structure.
</p>
</div>
</div>
<div class="refsect2">
<a name="GstCdParanoiaSrc--cache-size"></a><h3>The <code class="literal">"cache-size"</code> property</h3>
<pre class="programlisting"> "cache-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre>
-<p>
-Set CD cache size to n sectors (-1 = auto)
-</p>
+<p>Set CD cache size to n sectors (-1 = auto).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
-<p class="since">Since 0.10.24</p>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-cdparanoiasrc.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GstCdParanoiaSrc-transport-error"></a><h3>The <code class="literal">"transport-error"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *cdparanoia,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sector,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg1,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-This signal is emitted whenever an error occurs while reading.
-CdParanoia will attempt to recover the data.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>cdparanoia</code></em> :</span></p></td>
-<td>The CdParanoia instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sector</code></em> :</span></p></td>
-<td>The sector number at which the error was encountered.</td>
+<td><p><span class="term"><em class="parameter"><code>gstcdparanoiasrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<hr>
<div class="refsect2">
<a name="GstCdParanoiaSrc-uncorrected-error"></a><h3>The <code class="literal">"uncorrected-error"</code> signal</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *cdparanoia,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> sector,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
+<pre class="programlisting"><span class="returnvalue">void</span> user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> arg1,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-This signal is emitted whenever an uncorrectable error occurs while
-reading. The data could not be read.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>cdparanoia</code></em> :</span></p></td>
-<td>The CdParanoia instance</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>sector</code></em> :</span></p></td>
-<td>The sector number at which the error was encountered.</td>
+<td><p><span class="term"><em class="parameter"><code>gstcdparanoiasrc</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>clockoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-cdparanoiasrc.html" title="cdparanoiasrc">
<link rel="next" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-clockoverlay.description"></a><h2>Description</h2>
-<p>
-This element overlays the current clock time on top of a video
-stream. You can position the text and configure the font details
-using the properties of the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a> class. By default, the
-time is displayed in the top left corner of the picture, with some
-padding to the left and to the top.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6583856"></a><h3>Example launch lines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> clockoverlay <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Display the current time in the top left corner of the video picture
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> clockoverlay halign<span class="gtkdoc opt">=</span>right valign<span class="gtkdoc opt">=</span>bottom text<span class="gtkdoc opt">=</span><span class="string">"Edge City"</span> shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> ximagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Another pipeline that displays the current time with some leading
-text in the bottom right corner of the video picture, with the background
-of the text being shaded in order to make it more legible on top of a
-bright video background.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6581168"></a><h3>Element Information</h3>
+<a name="idp10410336"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp6573712"></a><h3>Element Pads</h3>
+<a name="idp10403552"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
<td> 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 ]</td>
</tr>
<tr>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
<td> 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 ]</td>
</tr>
<tr>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
<a name="GstClockOverlay-struct"></a><h3>struct GstClockOverlay</h3>
<pre class="programlisting">struct GstClockOverlay;</pre>
<p>
-Opaque clockoverlay data structure.
</p>
</div>
</div>
<p>Default value: "%H:%M:%S"</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-clockoverlay.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay"><span class="type">GstTimeOverlay</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>decodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-clockoverlay.html" title="clockoverlay">
<link rel="next" href="gst-plugins-base-plugins-decodebin2.html" title="decodebin2">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp5296880"></a><h3>Element Information</h3>
+<a name="idp10626496"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp5304336"></a><h3>Element Pads</h3>
+<a name="idp10633952"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>decodebin2</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-decodebin.html" title="decodebin">
<link rel="next" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--low-percent" title='The "low-percent" property'>low-percent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-buffers" title='The "max-size-buffers" property'>max-size-buffers</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-bytes" title='The "max-size-bytes" property'>max-size-bytes</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-time" title='The "max-size-time" property'>max-size-time</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-time" title='The "max-size-time" property'>max-size-time</a>" <span class="type">guint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--use-buffering" title='The "use-buffering" property'>use-buffering</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--post-stream-topology" title='The "post-stream-topology" property'>post-stream-topology</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--expose-all-streams" title='The "expose-all-streams" property'>expose-all-streams</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10887472"></a><h3>Element Information</h3>
+<a name="idp10756320"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp10894992"></a><h3>Element Pads</h3>
+<a name="idp10763840"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="GstDecodeBin2--max-size-time"></a><h3>The <code class="literal">"max-size-time"</code> property</h3>
-<pre class="programlisting"> "max-size-time" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "max-size-time" <span class="type">guint64</span> : Read / Write</pre>
<p>Max. amount of data in the queue (in ns, 0=automatic).</p>
<p>Default value: 0</p>
</div>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
Once decodebin2 has found the possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects to try
-for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emited. The purpose of the signal is for
+for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emitted. The purpose of the signal is for
the application to perform additional sorting or filtering on the element
factory array.
</p>
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-This function is emited when an array of possible factories for <em class="parameter"><code>caps</code></em> on
+This function is emitted when an array of possible factories for <em class="parameter"><code>caps</code></em> on
<em class="parameter"><code>pad</code></em> is needed. Decodebin2 will by default return an array with all
compatible factories, sorted by rank.
</p>
<p>
This signal is emitted once decodebin2 has found all the possible
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> that can be used to handle the given <em class="parameter"><code>caps</code></em>. For each of
-those factories, this signal is emited.
+those factories, this signal is emitted.
</p>
<p>
The signal handler should return a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> enum
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>encodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-decodebin2.html" title="decodebin2">
<link rel="next" href="gst-plugins-base-plugins-ffmpegcolorspace.html" title="ffmpegcolorspace">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect1">
<a name="gst-plugins-base-plugins-encodebin.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance" title='The "audio-jitter-tolerance" property'>audio-jitter-tolerance</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance" title='The "audio-jitter-tolerance" property'>audio-jitter-tolerance</a>" <span class="type">guint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding" title='The "avoid-reencoding" property'>avoid-reencoding</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile" title='The "profile" property'>profile</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>* : Read / Write
"<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max" title='The "queue-buffers-max" property'>queue-buffers-max</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max" title='The "queue-bytes-max" property'>queue-bytes-max</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max" title='The "queue-time-max" property'>queue-time-max</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max" title='The "queue-time-max" property'>queue-time-max</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags" title='The "flags" property'>flags</a>" <span class="type">GstEncFlags</span> : Read / Write
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp6809216"></a><h3>Features</h3>
+<a name="idp7547488"></a><h3>Features</h3>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Automatic encoder and muxer selection based on elements available on the
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11211984"></a><h3>Element Information</h3>
+<a name="idp5633232"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp11219392"></a><h3>Element Pads</h3>
+<a name="idp5640640"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="gst-plugins-base-plugins-encodebin.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstEncodeBin--audio-jitter-tolerance"></a><h3>The <code class="literal">"audio-jitter-tolerance"</code> property</h3>
-<pre class="programlisting"> "audio-jitter-tolerance" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "audio-jitter-tolerance" <span class="type">guint64</span> : Read / Write</pre>
<p>Amount of timestamp jitter/imperfection to allow on audio streams before inserting/dropping samples (ns).</p>
<p>Default value: 20000000</p>
</div>
<hr>
<div class="refsect2">
<a name="GstEncodeBin--queue-time-max"></a><h3>The <code class="literal">"queue-time-max"</code> property</h3>
-<pre class="programlisting"> "queue-time-max" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "queue-time-max" <span class="type">guint64</span> : Read / Write</pre>
<p>Max. amount of data in the queue (in ns, 0=disable).</p>
<p>Default value: 1000000000</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstEncodeBin--flags"></a><h3>The <code class="literal">"flags"</code> property</h3>
+<pre class="programlisting"> "flags" <span class="type">GstEncFlags</span> : Read / Write</pre>
+<p>
+Control the behaviour of encodebin.
+</p>
+</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-encodebin.signal-details"></a><h2>Signal Details</h2>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ffmpegcolorspace</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-encodebin.html" title="encodebin">
<link rel="next" href="gst-plugins-base-plugins-gdpdepay.html" title="gdpdepay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp10768768"></a><h3>Example launch line</h3>
+<a name="idp8758528"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10766048"></a><h3>Element Information</h3>
+<a name="idp8756320"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp10758336"></a><h3>Element Pads</h3>
+<a name="idp8748608"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gdpdepay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-ffmpegcolorspace.html" title="ffmpegcolorspace">
<link rel="next" href="gst-plugins-base-plugins-gdppay.html" title="gdppay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp7288064"></a><div class="informalexample">
+<a name="idp5432624"></a><div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6887008"></a><h3>Element Information</h3>
+<a name="idp9410320"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp6465872"></a><h3>Element Pads</h3>
+<a name="idp8532512"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gdppay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-gdpdepay.html" title="gdpdepay">
<link rel="next" href="gst-plugins-base-plugins-giosink.html" title="giosink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp7837536"></a><div class="informalexample">
+<a name="idp9711888"></a><div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6322768"></a><h3>Element Information</h3>
+<a name="idp7115488"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp11401568"></a><h3>Element Pads</h3>
+<a name="idp11021744"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>giosink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-gdppay.html" title="gdppay">
<link rel="next" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-giosink.description"></a><h2>Description</h2>
-<p>
-This plugin writes incoming data to a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GIO library or it's VFS backends. Common protocols are 'file', 'ftp',
-or 'smb'.
-</p>
-<p>
-If the URI or <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> already exists giosink will post a message of
-type <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><code class="literal">GST_MESSAGE_ELEMENT</code></a> with name "file-exists" on the bus. The message
-also contains the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
-Applications can use the "file-exists" message to notify the user about
-the problem and to set a different target location or to remove the
-existing file. Note that right after the "file-exists" message a normal
-error message is posted on the bus which should be ignored if "file-exists"
-is handled by the application, for example by calling
-gst_bus_set_flushing(bus, TRUE) after the "file-exists" message was
-received and gst_bus_set_flushing(bus, FALSE) after the problem is
-resolved.
-</p>
-<p>
-Similar to the "file-exist" message a "not-mounted" message is posted
-on the bus if the target location is not mounted yet and needs to be
-mounted. This message can be used by application to mount the location
-and retry after the location was mounted successfully.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11111376"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>input<span class="gtkdoc opt">.</span>xyz <span class="gtkdoc opt">!</span> giosink location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/out.xyz</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will simply copy a local file. Instead of giosink,
-we could just as well have used the filesink element here.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> mad <span class="gtkdoc opt">!</span> flacenc <span class="gtkdoc opt">!</span> giosink location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.flac</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will re-encode an mp3 file into FLAC format and store
-it on a remote host using the Samba protocol.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> giosink location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/foo/bar.ogg</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will encode a 440Hz sine wave to Ogg Vorbis and stores
-it in the home directory of user foo.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10531904"></a><h3>Element Information</h3>
+<a name="idp11203328"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp10539424"></a><h3>Element Pads</h3>
+<a name="idp11489664"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstGioSink-struct"></a><h3>struct GstGioSink</h3>
<pre class="programlisting">struct GstGioSink;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
<div class="refsect2">
<a name="GstGioSink--file"></a><h3>The <code class="literal">"file"</code> property</h3>
<pre class="programlisting"> "file" <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a>* : Read / Write</pre>
-<p>
-<a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to write to.
-</p>
-<p class="since">Since 0.10.20</p>
+<p>GFile to write to.</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-giosink.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a>, <a class="link" href="gst-plugins-base-plugins-giosrc.html#GstGioSrc"><span class="type">GstGioSrc</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>giosrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-giosink.html" title="giosink">
<link rel="next" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-giosrc.description"></a><h2>Description</h2>
-<p>
-This plugin reads data from a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GIO library or it's VFS backends. Common protocols are 'file', 'http',
-'ftp', or 'smb'.
-</p>
-<p>
-If an URI or <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> is not mounted giosrc will post a message of type
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><code class="literal">GST_MESSAGE_ELEMENT</code></a> with name "not-mounted" on the bus. The message
-also contains the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a> and the corresponding URI.
-Applications can use the "not-mounted" message to mount the <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a>
-by calling <a href="http://library.gnome.org/devel/gio/unstable/GFile.html#g-file-mount-enclosing-volume"><code class="function">g_file_mount_enclosing_volume()</code></a> and then restart the
-pipeline after the mounting has succeeded. Note that right after the
-"not-mounted" message a normal error message is posted on the bus which
-should be ignored if "not-mounted" is handled by the application, for
-example by calling gst_bus_set_flushing(bus, TRUE) after the "not-mounted"
-message was received and gst_bus_set_flushing(bus, FALSE) after the
-mounting was successful.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11463456"></a><h3>Example launch lines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v giosrc location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/foo.xyz ! fakesink</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will simply read a local file and do nothing with the
-data read. Instead of giosrc, we could just as well have used the
-filesrc element here.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v giosrc location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.xyz ! filesink location=/home/joe/foo.xyz</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will copy a file from a remote host to the local file
-system using the Samba protocol.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v giosrc location<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//music.foobar.com/demo.mp3 ! mad ! audioconvert ! audioresample ! alsasink</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will read and decode and play an mp3 file from a
-web server using the http protocol.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11468304"></a><h3>Element Information</h3>
+<a name="idp11039536"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp11475824"></a><h3>Element Pads</h3>
+<a name="idp11093520"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstGioSrc-struct"></a><h3>struct GstGioSrc</h3>
<pre class="programlisting">struct GstGioSrc;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
<div class="refsect2">
<a name="GstGioSrc--file"></a><h3>The <code class="literal">"file"</code> property</h3>
<pre class="programlisting"> "file" <a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><span class="type">GFile</span></a>* : Read / Write</pre>
-<p>
-<a href="http://library.gnome.org/devel/gio/unstable/GFile.html"><code class="literal">GFile</code></a> to read from.
-</p>
-<p class="since">Since 0.10.20</p>
+<p>GFile to read from.</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-giosrc.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc"><span class="type">GstGnomeVFSSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-giosink.html#GstGioSink"><span class="type">GstGioSink</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>giostreamsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-giosrc.html" title="giosrc">
<link rel="next" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-giostreamsink.description"></a><h2>Description</h2>
-<p>
-This plugin writes incoming data to a custom GIO <a href="http://library.gnome.org/devel/gio/unstable/GOutputStream.html"><span class="type">GOutputStream</span></a>.
-</p>
-<p>
-It can, for example, be used to write a stream to memory with a
-<span class="type">GMemoryOuputStream</span> or to write to a file with a <span class="type">GFileOuputStream</span>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11498976"></a><h3>Example code</h3>
-<p>
-The following example writes the received data to a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html"><span class="type">GMemoryOutputStream</span></a>.
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include <gst/gst.h></span>
-<span class="gtkdoc ppc">#include <gio/gio.h></span>
-
-<span class="gtkdoc opt">...</span>
-
-GstElement <span class="gtkdoc opt">*</span>sink<span class="gtkdoc opt">;</span>
-GMemoryOuputStream <span class="gtkdoc opt">*</span>stream<span class="gtkdoc opt">;</span>
-<span class="gtkdoc slc">// out_data will contain the received data</span>
-guint8 <span class="gtkdoc opt">*</span>out_data<span class="gtkdoc opt">;</span>
-
-<span class="gtkdoc opt">...</span>
-
-stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_OUTPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GMemoryOutputStream.html#g-memory-output-stream-new">g_memory_output_stream_new</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span>
- <span class="gtkdoc opt">(</span>GReallocFunc<span class="gtkdoc opt">)</span> g_realloc<span class="gtkdoc opt">, (</span>GDestroyNotify<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">));</span>
-sink <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">"giostreamsink"</span><span class="gtkdoc opt">,</span> <span class="string">"sink"</span><span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> <span class="string">"stream"</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-
-<span class="gtkdoc opt">...</span>
-
-<span class="gtkdoc slc">// after processing get the written data</span>
-out_data <span class="gtkdoc opt">=</span> <span class="function">g_memory_ouput_stream_get_data</span> <span class="gtkdoc opt">(</span><span class="function">G_MEMORY_OUTPUT_STREAM</span> <span class="gtkdoc opt">(</span>stream<span class="gtkdoc opt">));</span>
-
-<span class="gtkdoc opt">...</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11503440"></a><h3>Element Information</h3>
+<a name="idp11743776"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp11510848"></a><h3>Element Pads</h3>
+<a name="idp11046784"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstGioStreamSink-struct"></a><h3>struct GstGioStreamSink</h3>
<pre class="programlisting">struct GstGioStreamSink;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>giostreamsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-giostreamsink.html" title="giostreamsink">
<link rel="next" href="gst-plugins-base-plugins-gnomevfssink.html" title="gnomevfssink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-giostreamsrc.description"></a><h2>Description</h2>
-<p>
-This plugin reads data from a custom GIO <a href="http://library.gnome.org/devel/gio/unstable/GInputStream.html"><span class="type">GInputStream</span></a>.
-</p>
-<p>
-It can, for example, be used to read data from memory with a
-<a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a> or to read from a file with a
-<a href="http://library.gnome.org/devel/gio/unstable/GFileInputStream.html"><span class="type">GFileInputStream</span></a>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11630736"></a><h3>Example code</h3>
-<p>
-The following example reads data from a <a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html"><span class="type">GMemoryInputStream</span></a>.
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include <gst/gst.h></span>
-<span class="gtkdoc ppc">#include <gio/gio.h></span>
-
-<span class="gtkdoc opt">...</span>
-
-GstElement <span class="gtkdoc opt">*</span>src<span class="gtkdoc opt">;</span>
-GMemoryInputStream <span class="gtkdoc opt">*</span>stream<span class="gtkdoc opt">;</span>
-<span class="gtkdoc slc">// in_data will contain the data to send</span>
-guint8 <span class="gtkdoc opt">*</span>in_data<span class="gtkdoc opt">;</span>
-gint i<span class="gtkdoc opt">;</span>
-
-<span class="gtkdoc opt">...</span>
-in_data <span class="gtkdoc opt">=</span> <span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-new">g_new</a></span> <span class="gtkdoc opt">(</span>guint8<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">);</span>
-<span class="keyword">for</span> <span class="gtkdoc opt">(</span>i <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> i <span class="gtkdoc opt"><</span> <span class="number">512</span><span class="gtkdoc opt">;</span> i<span class="gtkdoc opt">++)</span>
- in_data<span class="gtkdoc opt">[</span>i<span class="gtkdoc opt">] =</span> i <span class="gtkdoc opt">%</span> <span class="number">256</span><span class="gtkdoc opt">;</span>
-
-stream <span class="gtkdoc opt">=</span> <span class="function">G_MEMORY_INPUT_STREAM</span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gio/unstable/GMemoryInputStream.html#g-memory-input-stream-new-from-data">g_memory_input_stream_new_from_data</a></span> <span class="gtkdoc opt">(</span>in_data<span class="gtkdoc opt">,</span> <span class="number">512</span><span class="gtkdoc opt">,</span>
- <span class="gtkdoc opt">(</span>GDestroyNotify<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">));</span>
-src <span class="gtkdoc opt">=</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">"giostreamsrc"</span><span class="gtkdoc opt">,</span> <span class="string">"src"</span><span class="gtkdoc opt">);</span>
-<span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">),</span> <span class="string">"stream"</span><span class="gtkdoc opt">,</span> stream<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-
-<span class="gtkdoc opt">...</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11635136"></a><h3>Element Information</h3>
+<a name="idp5514880"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp11537408"></a><h3>Element Pads</h3>
+<a name="idp10976752"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstGioStreamSrc-struct"></a><h3>struct GstGioStreamSrc</h3>
<pre class="programlisting">struct GstGioStreamSrc;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gnomevfssink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-giostreamsrc.html" title="giostreamsrc">
<link rel="next" href="gst-plugins-base-plugins-gnomevfssrc.html" title="gnomevfssrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-gnomevfssink.description"></a><h2>Description</h2>
-<p>
-This plugin writes incoming data to a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GnomeVFS library. Common protocols are 'file', 'ftp', or 'smb'.
-</p>
-<p>
-Applications can connect to the <a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite" title='The "allow-overwrite" signal'><span class="type">"allow-overwrite"</span></a> signal to
-receive a callback when an existing file will be overwritten. The return
-value of the signal will determine if gnomevfssink will overwrite the
-resource or abort with an error.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11679088"></a><h3>Example launch lines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>input<span class="gtkdoc opt">.</span>xyz <span class="gtkdoc opt">!</span> gnomevfssink location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/out.xyz</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will simply copy a local file. Instead of gnomevfssink,
-we could just as well have used the filesink element here.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> mad <span class="gtkdoc opt">!</span> flacenc <span class="gtkdoc opt">!</span> gnomevfssink location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.flac</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will re-encode an mp3 file into FLAC format and store
-it on a remote host using the Samba protocol.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-02-28 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11683472"></a><h3>Element Information</h3>
+<a name="idp11435584"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp11690928"></a><h3>Element Pads</h3>
+<a name="idp11710784"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstGnomeVFSSink-struct"></a><h3>struct GstGnomeVFSSink</h3>
<pre class="programlisting">struct GstGnomeVFSSink;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
<a name="gst-plugins-base-plugins-gnomevfssink.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GstGnomeVFSSink-allow-overwrite"></a><h3>The <code class="literal">"allow-overwrite"</code> signal</h3>
-<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a> *sink,
- <a href="/usr/share/gtk-doc/html/gnome-vfs-2.0/gnome-vfs-2.0-gnome-vfs-uri.html#GnomeVFSURI"><span class="type">GnomeVFSURI</span></a> *uri,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Cleanup</pre>
+<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> user_function (<a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a> *gstgnomevfssink,
+ <a href="/usr/share/gtk-doc/html/gnome-vfs-2.0/gnome-vfs-2.0-gnome-vfs-uri.html#GnomeVFSURI"><span class="type">GnomeVFSURI</span></a> *arg1,
+ <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : Cleanup</pre>
<p>
-This signal is fired when gnomevfssink is about to overwrite an
-existing resource. The application can connect to this signal and ask
-the user if the resource may be overwritten.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>sink</code></em> :</span></p></td>
-<td>the object which received the signal</td>
-</tr>
-<tr>
-<td><p><span class="term"><em class="parameter"><code>uri</code></em> :</span></p></td>
-<td>the URI to be overwritten</td>
+<td><p><span class="term"><em class="parameter"><code>gstgnomevfssink</code></em> :</span></p></td>
+<td>the object which received the signal.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
<td>user data set when the signal handler was connected.</td>
</tr>
-<tr>
-<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>A boolean indicating that the resource may be overwritten.</td>
-</tr>
</tbody>
</table></div>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-gnomevfssink.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesink.html#GstFileSink"><span class="type">GstFileSink</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc"><span class="type">GstGnomeVFSSrc</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gnomevfssrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-gnomevfssink.html" title="gnomevfssink">
<link rel="next" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-gnomevfssrc.description"></a><h2>Description</h2>
-<p>
-This plugin reads data from a local or remote location specified
-by an URI. This location can be specified using any protocol supported by
-the GnomeVFS library. Common protocols are 'file', 'http', 'ftp', or 'smb'.
-</p>
-<p>
-In case the <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-mode" title='The "iradio-mode" property'><span class="type">"iradio-mode"</span></a> property is set and the
-location is a http resource, gnomevfssrc will send special icecast http
-headers to the server to request additional icecast metainformation. If
-the server is not an icecast server, it will display the same behaviour
-as if the <a class="link" href="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-mode" title='The "iradio-mode" property'><span class="type">"iradio-mode"</span></a> property was not set. However,
-if the server is in fact an icecast server, gnomevfssrc will output
-data with a media type of application/x-icy, in which case you will
-need to use the <span class="type">GstICYDemux</span> element as follow-up element to extract
-the icecast meta data and to determine the underlying media type.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11778080"></a><h3>Example launch lines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v gnomevfssrc location<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/joe/foo.xyz ! fakesink</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will simply read a local file and do nothing with the
-data read. Instead of gnomevfssrc, we could just as well have used the
-filesrc element here.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v gnomevfssrc location<span class="gtkdoc opt">=</span>smb<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//othercomputer/foo.xyz ! filesink location=/home/joe/foo.xyz</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will copy a file from a remote host to the local file
-system using the Samba protocol.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v gnomevfssrc location<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//music.foobar.com/demo.mp3 ! mad ! audioconvert ! audioresample ! alsasink</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- The above pipeline will read and decode and play an mp3 file from a
-web server using the http protocol.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11782928"></a><h3>Element Information</h3>
+<a name="idp11375920"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp11790448"></a><h3>Element Pads</h3>
+<a name="idp11650544"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstGnomeVFSSrc-struct"></a><h3>struct GstGnomeVFSSrc</h3>
<pre class="programlisting">struct GstGnomeVFSSrc;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
<p>Default value: FALSE</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-gnomevfssrc.see-also"></a><h2>See Also</h2>
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/gstreamer-plugins-filesrc.html#GstFileSrc"><span class="type">GstFileSrc</span></a>, <a class="link" href="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink"><span class="type">GstGnomeVFSSink</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>multifdsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-gnomevfssrc.html" title="gnomevfssrc">
<link rel="next" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-max" title='The "buffers-max" property'>buffers-max</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-queued" title='The "buffers-queued" property'>buffers-queued</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-soft-max" title='The "buffers-soft-max" property'>buffers-soft-max</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-served" title='The "bytes-served" property'>bytes-served</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-to-serve" title='The "bytes-to-serve" property'>bytes-to-serve</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
+ "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-served" title='The "bytes-served" property'>bytes-served</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-to-serve" title='The "bytes-to-serve" property'>bytes-to-serve</a>" <span class="type">guint64</span> : Read
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--mode" title='The "mode" property'>mode</a>" <span class="type">GstFDSetMode</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--protocol" title='The "protocol" property'>protocol</a>" <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol" title="enum GstTCPProtocol"><span class="type">GstTCPProtocol</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--recover-policy" title='The "recover-policy" property'>recover-policy</a>" <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy" title="enum GstRecoverPolicy"><span class="type">GstRecoverPolicy</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-clients" title='The "sync-clients" property'>sync-clients</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-method" title='The "sync-method" property'>sync-method</a>" <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod"><span class="type">GstSyncMethod</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--timeout" title='The "timeout" property'>timeout</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--timeout" title='The "timeout" property'>timeout</a>" <span class="type">guint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-min" title='The "buffers-min" property'>buffers-min</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-unit" title='The "burst-unit" property'>burst-unit</a>" <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-value" title='The "burst-value" property'>burst-value</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-value" title='The "burst-value" property'>burst-value</a>" <span class="type">guint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min" title='The "bytes-min" property'>bytes-min</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min" title='The "time-min" property'>time-min</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min" title='The "time-min" property'>time-min</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--unit-type" title='The "unit-type" property'>unit-type</a>" <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-max" title='The "units-max" property'>units-max</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-soft-max" title='The "units-soft-max" property'>units-soft-max</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-max" title='The "units-max" property'>units-max</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-soft-max" title='The "units-soft-max" property'>units-soft-max</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--qos-dscp" title='The "qos-dscp" property'>qos-dscp</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--handle-read" title='The "handle-read" property'>handle-read</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--resend-streamheader" title='The "resend-streamheader" property'>resend-streamheader</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
</p>
<p>
Multifdsink can be instructed to keep at least a minimum amount of data
-expressed in time or byte units in its internal queues with the the
+expressed in time or byte units in its internal queues with the
<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min" title='The "time-min" property'><span class="type">"time-min"</span></a> and <a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min" title='The "bytes-min" property'><span class="type">"bytes-min"</span></a> properties respectively.
These properties are useful if the application adds clients with the
<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full" title='The "add-full" signal'><span class="type">"add-full"</span></a> signal to make sure that a burst connect can
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp12152560"></a><h3>Element Information</h3>
+<a name="idp12022864"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp12159968"></a><h3>Element Pads</h3>
+<a name="idp12030272"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="GstRecoverPolicy"></a><h3>enum GstRecoverPolicy</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_RECOVER_POLICY_NONE,
GST_RECOVER_POLICY_RESYNC_LATEST,
GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT,
<hr>
<div class="refsect2">
<a name="GstSyncMethod"></a><h3>enum GstSyncMethod</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_SYNC_METHOD_LATEST,
GST_SYNC_METHOD_NEXT_KEYFRAME,
GST_SYNC_METHOD_LATEST_KEYFRAME,
<hr>
<div class="refsect2">
<a name="GstClientStatus"></a><h3>enum GstClientStatus</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_CLIENT_STATUS_OK = 0,
GST_CLIENT_STATUS_CLOSED = 1,
GST_CLIENT_STATUS_REMOVED = 2,
<hr>
<div class="refsect2">
<a name="GstTCPProtocol"></a><h3>enum GstTCPProtocol</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_TCP_PROTOCOL_NONE,
GST_TCP_PROTOCOL_GDP
} GstTCPProtocol;
<hr>
<div class="refsect2">
<a name="GstTCPUnitType"></a><h3>enum GstTCPUnitType</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
GST_TCP_UNIT_TYPE_UNDEFINED,
GST_TCP_UNIT_TYPE_BUFFERS,
GST_TCP_UNIT_TYPE_TIME,
<hr>
<div class="refsect2">
<a name="GstMultiFdSink--bytes-served"></a><h3>The <code class="literal">"bytes-served"</code> property</h3>
-<pre class="programlisting"> "bytes-served" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "bytes-served" <span class="type">guint64</span> : Read</pre>
<p>Total number of bytes send to all clients.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstMultiFdSink--bytes-to-serve"></a><h3>The <code class="literal">"bytes-to-serve"</code> property</h3>
-<pre class="programlisting"> "bytes-to-serve" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "bytes-to-serve" <span class="type">guint64</span> : Read</pre>
<p>Number of bytes received to serve to clients.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstMultiFdSink--timeout"></a><h3>The <code class="literal">"timeout"</code> property</h3>
-<pre class="programlisting"> "timeout" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "timeout" <span class="type">guint64</span> : Read / Write</pre>
<p>Maximum inactivity timeout in nanoseconds for a client (0 = no limit).</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstMultiFdSink--burst-value"></a><h3>The <code class="literal">"burst-value"</code> property</h3>
-<pre class="programlisting"> "burst-value" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "burst-value" <span class="type">guint64</span> : Read / Write</pre>
<p>The amount of burst expressed in burst-unit.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstMultiFdSink--time-min"></a><h3>The <code class="literal">"time-min"</code> property</h3>
-<pre class="programlisting"> "time-min" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "time-min" <span class="type">gint64</span> : Read / Write</pre>
<p>min number of time to queue (-1 = as little as possible).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<hr>
<div class="refsect2">
<a name="GstMultiFdSink--units-max"></a><h3>The <code class="literal">"units-max"</code> property</h3>
-<pre class="programlisting"> "units-max" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "units-max" <span class="type">gint64</span> : Read / Write</pre>
<p>max number of units to queue (-1 = no limit).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<hr>
<div class="refsect2">
<a name="GstMultiFdSink--units-soft-max"></a><h3>The <code class="literal">"units-soft-max"</code> property</h3>
-<pre class="programlisting"> "units-soft-max" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "units-soft-max" <span class="type">gint64</span> : Read / Write</pre>
<p>Recover client when going over this limit (-1 = no limit).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> fd,
<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod"><span class="type">GstSyncMethod</span></a> sync,
<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a> unit_type_min,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value_min,
+ <span class="type">guint64</span> value_min,
<a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType" title="enum GstTCPUnitType"><span class="type">GstTCPUnitType</span></a> unit_type_max,
- <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> value_max,
+ <span class="type">guint64</span> value_max,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS"><code class="literal">Action</code></a></pre>
<p>
Hand the given open file descriptor to multifdsink to write to and
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>oggdemux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-multifdsink.html" title="multifdsink">
<link rel="next" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-oggdemux.description"></a><h2>Description</h2>
-<p>
-This element demuxes ogg files into their encoded audio and video components.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9282128"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Decodes the vorbis audio stored inside an ogg container.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-12-30 (0.10.5)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7461456"></a><h3>Element Information</h3>
+<a name="idp5542432"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp5045200"></a><h3>Element Pads</h3>
+<a name="idp10334672"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstOggDemux-struct"></a><h3>struct GstOggDemux</h3>
<pre class="programlisting">struct GstOggDemux;</pre>
<p>
-The ogg demuxer object structure.
</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-oggdemux.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">oggmux</a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>oggmux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">
<link rel="next" href="gst-plugins-base-plugins-playbin.html" title="playbin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="refsect1">
<a name="gst-plugins-base-plugins-oggmux.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay" title='The "max-delay" property'>max-delay</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay" title='The "max-page-delay" property'>max-page-delay</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay" title='The "max-delay" property'>max-delay</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay" title='The "max-page-delay" property'>max-page-delay</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance" title='The "max-tolerance" property'>max-tolerance</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton" title='The "skeleton" property'>skeleton</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-oggmux.description"></a><h2>Description</h2>
-<p>
-This element merges streams (audio and video) into ogg files.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp11580192"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>yuv<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">320</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">240</span> <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Encodes a video stream captured from a v4l2-compatible camera to Ogg/Theora
-(the encoding will stop automatically after 500 frames)
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2008-02-06 (0.10.17)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11578016"></a><h3>Element Information</h3>
+<a name="idp11180832"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp5957200"></a><h3>Element Pads</h3>
+<a name="idp12591488"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<td><p><span class="term"></span></p></td>
<td> application/x-kate</td>
</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-opus</td>
+</tr>
</tbody>
</table></div>
<div class="variablelist"><table border="0">
<a name="GstOggMux-struct"></a><h3>struct GstOggMux</h3>
<pre class="programlisting">struct GstOggMux;</pre>
<p>
-The ogg muxer object structure.
</p>
</div>
</div>
<a name="gst-plugins-base-plugins-oggmux.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstOggMux--max-delay"></a><h3>The <code class="literal">"max-delay"</code> property</h3>
-<pre class="programlisting"> "max-delay" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "max-delay" <span class="type">guint64</span> : Read / Write</pre>
<p>Maximum delay in multiplexing streams.</p>
<p>Default value: 500000000</p>
</div>
<hr>
<div class="refsect2">
<a name="GstOggMux--max-page-delay"></a><h3>The <code class="literal">"max-page-delay"</code> property</h3>
-<pre class="programlisting"> "max-page-delay" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "max-page-delay" <span class="type">guint64</span> : Read / Write</pre>
<p>Maximum delay for sending out a page.</p>
<p>Default value: 500000000</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstOggMux--max-tolerance"></a><h3>The <code class="literal">"max-tolerance"</code> property</h3>
+<pre class="programlisting"> "max-tolerance" <span class="type">guint64</span> : Read / Write</pre>
+<p>Maximum timestamp difference for maintaining perfect granules.</p>
+<p>Default value: 40000000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstOggMux--skeleton"></a><h3>The <code class="literal">"skeleton"</code> property</h3>
+<pre class="programlisting"> "skeleton" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>Whether to include a Skeleton track.</p>
+<p>Default value: FALSE</p>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-oggmux.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">oggdemux</a>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>playbin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">
<link rel="next" href="gst-plugins-base-plugins-playbin2.html" title="playbin2">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp12073328"></a><h3>Usage</h3>
+<a name="idp12513120"></a><h3>Usage</h3>
<p>
A playbin element can be created just like any other element using
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make"><code class="function">gst_element_factory_make()</code></a>. The file/URI to play should be set via the <span class="type">"uri"</span>
</p>
<hr>
<div class="refsect2">
-<a name="idp12645456"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="idp12529232"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
<p>
By default, if no audio sink or video sink has been specified via the
<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink" title='The "audio-sink" property'><span class="type">"audio-sink"</span></a> or <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-sink" title='The "video-sink" property'><span class="type">"video-sink"</span></a> property, playbin will use
GNOME-based applications, for example, will usually want to create
gconfaudiosink and gconfvideosink elements and make playbin use those,
so that output happens to whatever the user has configured in the GNOME
-Multimedia System Selector confinguration dialog.
+Multimedia System Selector configuration dialog.
</p>
<p>
The sink elements do not necessarily need to be ready-made sinks. It is
</p>
<hr>
<div class="refsect2">
-<a name="idp12656016"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="idp12539792"></a><h3>Retrieving Tags and Other Meta Data</h3>
<p>
Most of the common meta data (artist, title, etc.) can be retrieved by
watching for TAG messages on the pipeline's bus (see above).
</p>
<hr>
<div class="refsect2">
-<a name="idp12665680"></a><h3>Buffering</h3>
+<a name="idp12549456"></a><h3>Buffering</h3>
Playbin handles buffering automatically for the most part, but applications
need to handle parts of the buffering process as well. Whenever playbin is
buffering, it will post BUFFERING messages on the bus with a percentage
</p>
<hr>
<div class="refsect2">
-<a name="idp12668448"></a><h3>Embedding the video window in your application</h3>
+<a name="idp12552224"></a><h3>Embedding the video window in your application</h3>
By default, playbin (or rather the video sinks used) will create their own
window. Applications will usually want to force output to a window of their
own, however. This can be done using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> interface, which most
</p>
<hr>
<div class="refsect2">
-<a name="idp12670416"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="idp12554192"></a><h3>Specifying which CD/DVD device to use</h3>
The device to use for CDs/DVDs needs to be set on the source element
playbin creates before it is opened. The only way to do this at the moment
is to connect to playbin's "notify::source" signal, which will be emitted
</p>
<hr>
<div class="refsect2">
-<a name="idp12671840"></a><h3>Examples</h3>
+<a name="idp12555616"></a><h3>Examples</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp12676736"></a><h3>Element Information</h3>
+<a name="idp12560512"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp12684192"></a><h3>Element Pads</h3>
+<a name="idp12567968"></a><h3>Element Pads</h3>
</div>
</div>
<p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>playbin2</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-playbin.html" title="playbin">
<link rel="next" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--vis-plugin" title='The "vis-plugin" property'>vis-plugin</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>* : Read / Write
"<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--volume" title='The "volume" property'>volume</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--mute" title='The "mute" property'>mute</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-size" title='The "buffer-size" property'>buffer-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--text-sink" title='The "text-sink" property'>text-sink</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>* : Read / Write
"<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subpic-sink" title='The "subpic-sink" property'>subpic-sink</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>* : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--av-offset" title='The "av-offset" property'>av-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--av-offset" title='The "av-offset" property'>av-offset</a>" <span class="type">gint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>" <span class="type">guint64</span> : Read / Write
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp12984144"></a><h3>Usage</h3>
+<a name="idp12868672"></a><h3>Usage</h3>
<p>
A playbin2 element can be created just like any other element using
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html#gst-element-factory-make"><code class="function">gst_element_factory_make()</code></a>. The file/URI to play should be set via the <a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--uri" title='The "uri" property'><span class="type">"uri"</span></a>
</p>
<hr>
<div class="refsect2">
-<a name="idp13000256"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
+<a name="idp12884784"></a><h3>Advanced Usage: specifying the audio and video sink</h3>
<p>
By default, if no audio sink or video sink has been specified via the
<a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--audio-sink" title='The "audio-sink" property'><span class="type">"audio-sink"</span></a> or <a class="link" href="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--video-sink" title='The "video-sink" property'><span class="type">"video-sink"</span></a> property, playbin will use the autoaudiosink
</p>
<hr>
<div class="refsect2">
-<a name="idp13010816"></a><h3>Retrieving Tags and Other Meta Data</h3>
+<a name="idp12895344"></a><h3>Retrieving Tags and Other Meta Data</h3>
<p>
Most of the common meta data (artist, title, etc.) can be retrieved by
watching for TAG messages on the pipeline's bus (see above).
</p>
<hr>
<div class="refsect2">
-<a name="idp13012928"></a><h3>Buffering</h3>
+<a name="idp12897456"></a><h3>Buffering</h3>
Playbin handles buffering automatically for the most part, but applications
need to handle parts of the buffering process as well. Whenever playbin is
buffering, it will post BUFFERING messages on the bus with a percentage
</p>
<hr>
<div class="refsect2">
-<a name="idp13015696"></a><h3>Embedding the video window in your application</h3>
+<a name="idp12900224"></a><h3>Embedding the video window in your application</h3>
By default, playbin (or rather the video sinks used) will create their own
window. Applications will usually want to force output to a window of their
own, however. This can be done using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstxoverlay.html#GstXOverlay"><span class="type">GstXOverlay</span></a> interface, which most
</p>
<hr>
<div class="refsect2">
-<a name="idp13017664"></a><h3>Specifying which CD/DVD device to use</h3>
+<a name="idp12902192"></a><h3>Specifying which CD/DVD device to use</h3>
The device to use for CDs/DVDs needs to be set on the source element
playbin creates before it is opened. The only way to do this at the moment
is to connect to playbin's "notify::source" signal, which will be emitted
</p>
<hr>
<div class="refsect2">
-<a name="idp13019088"></a><h3>Handling redirects</h3>
+<a name="idp12903616"></a><h3>Handling redirects</h3>
<p>
Some elements may post 'redirect' messages on the bus to tell the
application to open another location. These are element messages containing
</p>
<hr>
<div class="refsect2">
-<a name="idp13020768"></a><h3>Examples</h3>
+<a name="idp12905296"></a><h3>Examples</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp13025664"></a><h3>Element Information</h3>
+<a name="idp12910192"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp13033120"></a><h3>Element Pads</h3>
+<a name="idp12917648"></a><h3>Element Pads</h3>
</div>
</div>
<p>
</tr>
<tr>
<td><p><a name="GST-PLAY-FLAG-DEINTERLACE:CAPS"></a><span class="term"><code class="literal">GST_PLAY_FLAG_DEINTERLACE</code></span></p></td>
-<td>
+<td>deinterlace raw video (if native not forced).
</td>
</tr>
</tbody>
<hr>
<div class="refsect2">
<a name="GstPlayBin2--buffer-duration"></a><h3>The <code class="literal">"buffer-duration"</code> property</h3>
-<pre class="programlisting"> "buffer-duration" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "buffer-duration" <span class="type">gint64</span> : Read / Write</pre>
<p>Buffer duration when buffering network streams.</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<hr>
<div class="refsect2">
<a name="GstPlayBin2--av-offset"></a><h3>The <code class="literal">"av-offset"</code> property</h3>
-<pre class="programlisting"> "av-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "av-offset" <span class="type">gint64</span> : Read / Write</pre>
<p>
Control the synchronisation offset between the audio and video streams.
Positive values make the audio ahead of the video and negative values make
<hr>
<div class="refsect2">
<a name="GstPlayBin2--ring-buffer-max-size"></a><h3>The <code class="literal">"ring-buffer-max-size"</code> property</h3>
-<pre class="programlisting"> "ring-buffer-max-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "ring-buffer-max-size" <span class="type">guint64</span> : Read / Write</pre>
<p>Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled).</p>
<p>Allowed values: <= G_MAXUINT</p>
<p>Default value: 0</p>
This signal is emitted when the current uri is about to finish. You can
set the uri and suburi to make sure that playback continues.
</p>
+<p>
+This signal is emitted from the context of a GStreamer streaming thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
streams has changed. The application will most likely want to select
a new audio stream.
</p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
streams has changed. The application will most likely want to select
a new text stream.
</p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
streams has changed. The application will most likely want to select
a new video stream.
</p>
+<p>
+This signal is usually emitted from the context of a GStreamer streaming
+thread. You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and
+<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a> to notify your application's main thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
This signal is emitted whenever the tags of an audio stream have changed.
The application will most likely want to get the new tags.
</p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
This signal is emitted whenever the tags of a text stream have changed.
The application will most likely want to get the new tags.
</p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
This signal is emitted whenever the tags of a video stream have changed.
The application will most likely want to get the new tags.
</p>
+<p>
+This signal may be emitted from the context of a GStreamer streaming thread.
+You can use <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-new-application"><code class="function">gst_message_new_application()</code></a> and <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-post-message"><code class="function">gst_element_post_message()</code></a>
+to notify your application's main thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
an audio cd source). This is functionally equivalent to connecting to
the notify::source signal, but more convenient.
</p>
+<p>
+This signal is usually emitted from the context of a GStreamer streaming
+thread.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>adder</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="next" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8294576"></a><h2>Plugin Information</h2>
+<a name="idp6428928"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp5749424"></a><h2>Elements</h2>
+<a name="idp10987712"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>alsa</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-adder.html" title="adder">
<link rel="next" href="gst-plugins-base-plugins-plugin-app.html" title="app">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6528528"></a><h2>Plugin Information</h2>
+<a name="idp9220992"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8130880"></a><h2>Elements</h2>
+<a name="idp8408640"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>app</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-alsa.html" title="alsa">
<link rel="next" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6127824"></a><h2>Plugin Information</h2>
+<a name="idp15141376"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp9149616"></a><h2>Elements</h2>
+<a name="idp6217712"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audioconvert</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-app.html" title="app">
<link rel="next" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8094640"></a><h2>Plugin Information</h2>
+<a name="idp9970512"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8442608"></a><h2>Elements</h2>
+<a name="idp7583488"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audiorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-audioconvert.html" title="audioconvert">
<link rel="next" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp14561424"></a><h2>Plugin Information</h2>
+<a name="idp14376464"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp6029648"></a><h2>Elements</h2>
+<a name="idp8473504"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audioresample</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-audiorate.html" title="audiorate">
<link rel="next" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idm25472"></a><h2>Plugin Information</h2>
+<a name="idp7277344"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp12711808"></a><h2>Elements</h2>
+<a name="idp12304240"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>audiotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-audioresample.html" title="audioresample">
<link rel="next" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7343456"></a><h2>Plugin Information</h2>
+<a name="idp15930976"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8707632"></a><h2>Elements</h2>
+<a name="idp8970336"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>cdparanoia</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-audiotestsrc.html" title="audiotestsrc">
<link rel="next" href="gst-plugins-base-plugins-plugin-decodebin.html" title="decodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp9336624"></a><h2>Plugin Information</h2>
+<a name="idp5176816"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8273648"></a><h2>Elements</h2>
+<a name="idp6853184"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>decodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-cdparanoia.html" title="cdparanoia">
<link rel="next" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp5735824"></a><h2>Plugin Information</h2>
+<a name="idp8430448"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8621248"></a><h2>Elements</h2>
+<a name="idp7269712"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>encoding</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-decodebin.html" title="decodebin">
<link rel="next" href="gst-plugins-base-plugins-plugin-ffmpegcolorspace.html" title="ffmpegcolorspace">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7739760"></a><h2>Plugin Information</h2>
+<a name="idp8637504"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8108432"></a><h2>Elements</h2>
+<a name="idp10346768"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ffmpegcolorspace</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-encoding.html" title="encoding">
<link rel="next" href="gst-plugins-base-plugins-plugin-gdp.html" title="gdp">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16271712"></a><h2>Plugin Information</h2>
+<a name="idp11638096"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp6076912"></a><h2>Elements</h2>
+<a name="idp6116416"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gdp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-ffmpegcolorspace.html" title="ffmpegcolorspace">
<link rel="next" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8562992"></a><h2>Plugin Information</h2>
+<a name="idp7966320"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp5366064"></a><h2>Elements</h2>
+<a name="idp16077520"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gio</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-gdp.html" title="gdp">
<link rel="next" href="gst-plugins-base-plugins-plugin-gnomevfs.html" title="gnomevfs">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7725616"></a><h2>Plugin Information</h2>
+<a name="idp9321920"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp6810832"></a><h2>Elements</h2>
+<a name="idp5524544"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gnomevfs</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-gio.html" title="gio">
<link rel="next" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp14961248"></a><h2>Plugin Information</h2>
+<a name="idp7354448"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp9482832"></a><h2>Elements</h2>
+<a name="idp9542624"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>libvisual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-gnomevfs.html" title="gnomevfs">
<link rel="next" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6167328"></a><h2>Plugin Information</h2>
+<a name="idp16037392"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8874960"></a><h2>Elements</h2>
+<a name="idp5572320"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ogg</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-libvisual.html" title="libvisual">
<link rel="next" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16462400"></a><h2>Plugin Information</h2>
+<a name="idp16099872"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp7521472"></a><h2>Elements</h2>
+<a name="idp9034736"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>pango</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-ogg.html" title="ogg">
<link rel="next" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8146592"></a><h2>Plugin Information</h2>
+<a name="idp7183568"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp5808768"></a><h2>Elements</h2>
+<a name="idp5326304"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>playback</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-pango.html" title="pango">
<link rel="next" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16046368"></a><h2>Plugin Information</h2>
+<a name="idp16287072"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8533136"></a><h2>Elements</h2>
+<a name="idp6584032"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>subparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-playback.html" title="playback">
<link rel="next" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6770112"></a><h2>Plugin Information</h2>
+<a name="idp7311728"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8992688"></a><h2>Elements</h2>
+<a name="idp5266736"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tcp</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-subparse.html" title="subparse">
<link rel="next" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16445120"></a><h2>Plugin Information</h2>
+<a name="idp7637664"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp10588800"></a><h2>Elements</h2>
+<a name="idp16358640"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>theora</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-tcp.html" title="tcp">
<link rel="next" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16198832"></a><h2>Plugin Information</h2>
+<a name="idp15169152"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp8049072"></a><h2>Elements</h2>
+<a name="idp5440976"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>typefindfunctions</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-theora.html" title="theora">
<link rel="next" href="gst-plugins-base-plugins-plugin-uridecodebin.html" title="uridecodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16039248"></a><h2>Plugin Information</h2>
+<a name="idp16426512"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp9383744"></a><h2>Elements</h2>
+<a name="idp7759600"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody></tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>uridecodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-typefindfunctions.html" title="typefindfunctions">
<link rel="next" href="gst-plugins-base-plugins-plugin-video4linux.html" title="video4linux">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp16533040"></a><h2>Plugin Information</h2>
+<a name="idp9920768"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp6063392"></a><h2>Elements</h2>
+<a name="idp8033104"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>video4linux</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-uridecodebin.html" title="uridecodebin">
<link rel="next" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6035936"></a><h2>Plugin Information</h2>
+<a name="idp11863936"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</table></div>
</div>
<div class="refsect1">
-<a name="idp15400144"></a><h2>Elements</h2>
+<a name="idp6493568"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>videorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-video4linux.html" title="video4linux">
<link rel="next" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8324784"></a><h2>Plugin Information</h2>
+<a name="idp10356032"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp7228832"></a><h2>Elements</h2>
+<a name="idp5189344"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>videoscale</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-videorate.html" title="videorate">
<link rel="next" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp12451216"></a><h2>Plugin Information</h2>
+<a name="idp12241040"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp16181488"></a><h2>Elements</h2>
+<a name="idp11543760"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>videotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-videoscale.html" title="videoscale">
<link rel="next" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7477376"></a><h2>Plugin Information</h2>
+<a name="idp7159872"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp6038720"></a><h2>Elements</h2>
+<a name="idp6887056"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>volume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-videotestsrc.html" title="videotestsrc">
<link rel="next" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp8681392"></a><h2>Plugin Information</h2>
+<a name="idp7669376"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp7634480"></a><h2>Elements</h2>
+<a name="idp16106912"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>vorbis</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-volume.html" title="volume">
<link rel="next" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7065984"></a><h2>Plugin Information</h2>
+<a name="idp6354512"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp7763488"></a><h2>Elements</h2>
+<a name="idp8507344"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ximagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-vorbis.html" title="vorbis">
<link rel="next" href="gst-plugins-base-plugins-plugin-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp6557920"></a><h2>Plugin Information</h2>
+<a name="idp8142960"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp9465568"></a><h2>Elements</h2>
+<a name="idp8670048"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>xvimagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch02.html" title="gst-plugins-base Plugins">
<link rel="prev" href="gst-plugins-base-plugins-plugin-ximagesink.html" title="ximagesink">
<link rel="next" href="ch03.html" title="gst-plugins-base Classes">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp5695120"></a><h2>Plugin Information</h2>
+<a name="idp5203920"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.10.34</td>
+<td>0.10.36</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
</table></div>
</div>
<div class="refsect1">
-<a name="idp6376944"></a><h2>Elements</h2>
+<a name="idp6635296"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>subtitleoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-playbin2.html" title="playbin2">
<link rel="next" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp7086800"></a><h3>Examples</h3>
+<a name="idp9764400"></a><h3>Examples</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10635408"></a><h3>Element Information</h3>
+<a name="idp6545120"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp12392960"></a><h3>Element Pads</h3>
+<a name="idp13490496"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tcpclientsink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-tcpclientsrc.html" title="tcpclientsrc">
<link rel="next" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp13183280"></a><h3>Example launch line</h3>
+<a name="idp13086320"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp12497712"></a><h3>Element Information</h3>
+<a name="idp13088944"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp12505120"></a><h3>Element Pads</h3>
+<a name="idp13063600"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tcpclientsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-subtitleoverlay.html" title="subtitleoverlay">
<link rel="next" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp12521392"></a><h3>Example launch line</h3>
+<a name="idp11884512"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp12524112"></a><h3>Element Information</h3>
+<a name="idp11887184"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp12440048"></a><h3>Element Pads</h3>
+<a name="idp11894592"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tcpserversink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-tcpserversrc.html" title="tcpserversrc">
<link rel="next" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp13281472"></a><h3>Example launch line</h3>
+<a name="idp13217536"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp13284224"></a><h3>Element Information</h3>
+<a name="idp13220288"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp13291632"></a><h3>Element Pads</h3>
+<a name="idp13227696"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>tcpserversrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-tcpclientsink.html" title="tcpclientsink">
<link rel="next" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp13211120"></a><h3>Example launch line</h3>
+<a name="idp12360272"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp13213920"></a><h3>Element Information</h3>
+<a name="idp12363072"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp12573296"></a><h3>Element Pads</h3>
+<a name="idp12370480"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>textoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-tcpserversink.html" title="tcpserversink">
<link rel="next" href="gst-plugins-base-plugins-textrender.html" title="textrender">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+----GstTextOverlay
- +----<a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay">GstTimeOverlay</a>
+----<a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay">GstClockOverlay</a>
+ +----<a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay">GstTimeOverlay</a>
</pre>
</div>
<div class="refsect1">
"<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color" title='The "color" property'>color</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos" title='The "xpos" property'>xpos</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos" title='The "ypos" property'>ypos</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--outline-color" title='The "outline-color" property'>outline-color</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shadow" title='The "shadow" property'>shadow</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-textoverlay.description"></a><h2>Description</h2>
-<p>
-This plugin renders text on top of a video stream. This can be either
-static text or text from buffers received on the text sink pad, e.g.
-as produced by the subparse element. If the text sink pad is not linked,
-the text set via the "text" property will be rendered. If the text sink
-pad is linked, text will be rendered as it is received on that pad,
-honouring and matching the buffer timestamps of both input streams.
-</p>
-<p>
-The text can contain newline characters and text wrapping is enabled by
-default.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp13316752"></a><h3>Example launch lines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> textoverlay text<span class="gtkdoc opt">=</span><span class="string">"Room A"</span> valign<span class="gtkdoc opt">=</span>top halign<span class="gtkdoc opt">=</span>left <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Here is a simple pipeline that displays a static text in the top left
-corner of the video picture
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>subtitles<span class="gtkdoc opt">.</span>srt <span class="gtkdoc opt">!</span> subparse <span class="gtkdoc opt">!</span> txt<span class="gtkdoc opt">.</span> videotestsrc <span class="gtkdoc opt">!</span> timeoverlay <span class="gtkdoc opt">!</span> textoverlay name<span class="gtkdoc opt">=</span>txt shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span>yes <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Here is another pipeline that displays subtitles from an .srt subtitle
-file, centered at the bottom of the picture and with a rectangular shading
-around the text in the background:
-<p>
-If you do not have such a subtitle file, create one looking like this
-in a text editor:
-</p>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13</pre></td>
- <td class="listing_code"><pre class="programlisting"><span class="number">1</span>
-<span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">03</span><span class="gtkdoc opt">,</span><span class="number">000</span> <span class="gtkdoc opt">--></span> <span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">05</span><span class="gtkdoc opt">,</span><span class="number">000</span>
-Hello? <span class="gtkdoc opt">(</span><span class="number">3</span><span class="gtkdoc opt">-</span><span class="number">5</span>s<span class="gtkdoc opt">)</span>
-
-<span class="number">2</span>
-<span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">08</span><span class="gtkdoc opt">,</span><span class="number">000</span> <span class="gtkdoc opt">--></span> <span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">13</span><span class="gtkdoc opt">,</span><span class="number">000</span>
-Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subtitle<span class="gtkdoc opt">.</span> Don<span class="string">'t</span>
-<span class="string">you like it? (8-13s)</span>
-<span class="string"></span>
-<span class="string">3</span>
-<span class="string">00:00:18,826 --> 00:01:02,886</span>
-<span class="string">Uh? What are you talking about?</span>
-<span class="string">I don'</span>t <span class="function">understand</span> <span class="gtkdoc opt">(</span><span class="number">18</span><span class="gtkdoc opt">-</span><span class="number">62</span>s<span class="gtkdoc opt">)</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-<p>
-</p>
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6601408"></a><h3>Element Information</h3>
+<a name="idp13778336"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp9587280"></a><h3>Element Pads</h3>
+<a name="idp12277856"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
<td> 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 ]</td>
</tr>
<tr>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
<td> 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 ]</td>
</tr>
<tr>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
<a name="GstTextOverlay-struct"></a><h3>struct GstTextOverlay</h3>
<pre class="programlisting">struct GstTextOverlay;</pre>
<p>
-Opaque textoverlay object structure
</p>
</div>
<hr>
} GstTextOverlayVAlign;
</pre>
<p>
-Vertical alignment of the text.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_BASELINE</code></span></p></td>
-<td>draw text on the baseline
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_BOTTOM</code></span></p></td>
-<td>draw text on the bottom
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-TOP:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_TOP</code></span></p></td>
-<td>draw text on top
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-POS:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_POS</code></span></p></td>
-<td>draw text according to the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos" title='The "ypos" property'><span class="type">"ypos"</span></a> property
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_VALIGN_CENTER</code></span></p></td>
-<td>draw text vertically centered
-</td>
-</tr>
-</tbody>
-</table></div>
</div>
<hr>
<div class="refsect2">
} GstTextOverlayHAlign;
</pre>
<p>
-Horizontal alignment of the text.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_LEFT</code></span></p></td>
-<td>align text left
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_CENTER</code></span></p></td>
-<td>align text center
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_RIGHT</code></span></p></td>
-<td>align text right
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_UNUSED</code></span></p></td>
-<td>
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-HALIGN-POS:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_HALIGN_POS</code></span></p></td>
-<td>position text according to the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos" title='The "xpos" property'><span class="type">"xpos"</span></a> property
-</td>
-</tr>
-</tbody>
-</table></div>
</div>
<hr>
<div class="refsect2">
} GstTextOverlayWrapMode;
</pre>
<p>
-Whether to wrap the text and if so how.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_NONE</code></span></p></td>
-<td>no wrapping
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_WORD</code></span></p></td>
-<td>do word wrapping
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_CHAR</code></span></p></td>
-<td>do char wrapping
-</td>
-</tr>
-<tr>
-<td><p><a name="GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS"></a><span class="term"><code class="literal">GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR</code></span></p></td>
-<td>do word and char wrapping
-</td>
-</tr>
-</tbody>
-</table></div>
</div>
</div>
<div class="refsect1">
<div class="refsect2">
<a name="GstTextOverlay--line-alignment"></a><h3>The <code class="literal">"line-alignment"</code> property</h3>
<pre class="programlisting"> "line-alignment" <span class="type">GstTextOverlayLineAlign</span> : Read / Write</pre>
-<p>
-Alignment of text lines relative to each other (for multi-line text)
-</p>
+<p>Alignment of text lines relative to each other.</p>
<p>Default value: center</p>
-<p class="since">Since 0.10.15</p>
</div>
<hr>
<div class="refsect2">
<a name="GstTextOverlay--silent"></a><h3>The <code class="literal">"silent"</code> property</h3>
<pre class="programlisting"> "silent" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>
-If set, no text is rendered. Useful to switch off text rendering
-temporarily without removing the textoverlay element from the pipeline.
-</p>
+<p>Whether to render the text string.</p>
<p>Default value: FALSE</p>
-<p class="since">Since 0.10.15</p>
</div>
<hr>
<div class="refsect2">
<a name="GstTextOverlay--wait-text"></a><h3>The <code class="literal">"wait-text"</code> property</h3>
<pre class="programlisting"> "wait-text" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>
-If set, the video will block until a subtitle is received on the text pad.
-If video and subtitles are sent in sync, like from the same demuxer, this
-property should be set.
-</p>
+<p>Whether to wait for subtitles.</p>
<p>Default value: TRUE</p>
-<p class="since">Since 0.10.20</p>
</div>
<hr>
<div class="refsect2">
<div class="refsect2">
<a name="GstTextOverlay--color"></a><h3>The <code class="literal">"color"</code> property</h3>
<pre class="programlisting"> "color" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
-<p>
-Color of the rendered text.
-</p>
+<p>Color to use for text (big-endian ARGB).</p>
<p>Default value: 4294967295</p>
-<p class="since">Since 0.10.31</p>
</div>
<hr>
<div class="refsect2">
<a name="GstTextOverlay--xpos"></a><h3>The <code class="literal">"xpos"</code> property</h3>
<pre class="programlisting"> "xpos" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre>
-<p>
-Horizontal position of the rendered text when using positioned alignment.
-</p>
+<p>Horizontal position when using position alignment.</p>
<p>Allowed values: [0,1]</p>
<p>Default value: 0.5</p>
-<p class="since">Since 0.10.31</p>
</div>
<hr>
<div class="refsect2">
<a name="GstTextOverlay--ypos"></a><h3>The <code class="literal">"ypos"</code> property</h3>
<pre class="programlisting"> "ypos" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write</pre>
-<p>
-Vertical position of the rendered text when using positioned alignment.
-</p>
+<p>Vertical position when using position alignment.</p>
<p>Allowed values: [0,1]</p>
<p>Default value: 0.5</p>
-<p class="since">Since 0.10.31</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstTextOverlay--outline-color"></a><h3>The <code class="literal">"outline-color"</code> property</h3>
+<pre class="programlisting"> "outline-color" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> : Read / Write</pre>
+<p>Color to use for outline the text (big-endian ARGB).</p>
+<p>Default value: 4278190080</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTextOverlay--shadow"></a><h3>The <code class="literal">"shadow"</code> property</h3>
+<pre class="programlisting"> "shadow" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>Whether to create a shadow of the letters under the text.</p>
+<p>Default value: TRUE</p>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-textoverlay.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender"><span class="type">GstTextRender</span></a>, <a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay"><span class="type">GstClockOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay"><span class="type">GstTimeOverlay</span></a>, <span class="type">GstSubParse</span>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>textrender</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-textoverlay.html" title="textoverlay">
<link rel="next" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-textrender.description"></a><h2>Description</h2>
-<p>
-This plugin renders text received on the text sink pad to a video
-buffer (retaining the alpha channel), so it can later be overlayed
-on top of video streams using other elements.
-</p>
-<p>
-The text can contain newline characters. (FIXME: What about text
-wrapping? It does not make sense in this context)
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6059632"></a><h3>Example launch lines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>subtitles<span class="gtkdoc opt">.</span>srt <span class="gtkdoc opt">!</span> subparse <span class="gtkdoc opt">!</span> textrender <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
-
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9372592"></a><h3>Element Information</h3>
+<a name="idp8494000"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp12613232"></a><h3>Element Pads</h3>
+<a name="idp13210432"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstTextRender-struct"></a><h3>struct GstTextRender</h3>
<pre class="programlisting">struct GstTextRender;</pre>
<p>
-Opaque textrender data structure.
</p>
</div>
</div>
<p>Default value: 25</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-textrender.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>theoradec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-textrender.html" title="textrender">
<link rel="next" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-theoradec.description"></a><h2>Description</h2>
-<p>
-This element decodes theora streams into raw video
-<a class="ulink" href="http://www.theora.org/" target="_top">Theora</a> is a royalty-free
-video codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>, based on the VP3 codec.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9236448"></a><h3>Example pipeline</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoradec <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This example pipeline will decode an ogg stream and decodes the theora video. Refer to
-the theoraenc example to create the ogg file.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9481344"></a><h3>Element Information</h3>
+<a name="idp8405856"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp13905472"></a><h3>Element Pads</h3>
+<a name="idp7711168"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstTheoraDec-struct"></a><h3>struct GstTheoraDec</h3>
<pre class="programlisting">struct GstTheoraDec;</pre>
<p>
-Opaque object data structure.
</p>
</div>
</div>
<p>Default value: TRUE</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-theoradec.see-also"></a><h2>See Also</h2>
-theoraenc, oggdemux
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>theoraenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-theoradec.html" title="theoradec">
<link rel="next" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-theoraenc.description"></a><h2>Description</h2>
-<p>
-This element encodes raw video into a Theora stream.
-<a class="ulink" href="http://www.theora.org/" target="_top">Theora</a> is a royalty-free
-video codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>, based on the VP3 codec.
-</p>
-<p>
-The theora codec internally only supports encoding of images that are a
-multiple of 16 pixels in both X and Y direction. It is however perfectly
-possible to encode images with other dimensions because an arbitrary
-rectangular cropping region can be set up. This element will automatically
-set up a correct cropping region if the dimensions are not multiples of 16
-pixels.
-</p>
-<p>
-To control the quality of the encoding, the <span class="type">"bitrate"</span> and
-<span class="type">"quality"</span> properties can be used. These two properties are
-mutualy exclusive. Setting the bitrate property will produce a constant
-bitrate (CBR) stream while setting the quality property will produce a
-variable bitrate (VBR) stream.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp14365920"></a><h3>Example pipeline</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This example pipeline will encode a test video source to theora muxed in an
-ogg container. Refer to the theoradec documentation to decode the create
-stream.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp14369280"></a><h3>Element Information</h3>
+<a name="idp14220288"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp14376736"></a><h3>Element Pads</h3>
+<a name="idp14227744"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstTheoraEnc-struct"></a><h3>struct GstTheoraEnc</h3>
<pre class="programlisting">struct GstTheoraEnc;</pre>
<p>
-Opaque data structure.
</p>
</div>
<hr>
<div class="refsect2">
<a name="GstTheoraEncBorderMode"></a><h3>enum GstTheoraEncBorderMode</h3>
-<pre class="programlisting">typedef enum
-{
+<pre class="programlisting">typedef enum {
BORDER_NONE,
BORDER_BLACK,
BORDER_MIRROR
-}
-GstTheoraEncBorderMode;
+} GstTheoraEncBorderMode;
</pre>
<p>
-Border color to add when sizes not multiple of 16.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody>
-<tr>
-<td><p><a name="BORDER-NONE:CAPS"></a><span class="term"><code class="literal">BORDER_NONE</code></span></p></td>
-<td>no border
-</td>
-</tr>
-<tr>
-<td><p><a name="BORDER-BLACK:CAPS"></a><span class="term"><code class="literal">BORDER_BLACK</code></span></p></td>
-<td>black border
-</td>
-</tr>
-<tr>
-<td><p><a name="BORDER-MIRROR:CAPS"></a><span class="term"><code class="literal">BORDER_MIRROR</code></span></p></td>
-<td>Mirror image in border
-</td>
-</tr>
-</tbody>
-</table></div>
</div>
</div>
<div class="refsect1">
<p>Default value: Single pass</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-theoraenc.see-also"></a><h2>See Also</h2>
-theoradec, oggmux
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>theoraparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-theoraenc.html" title="theoraenc">
<link rel="next" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-theoraparse.description"></a><h2>Description</h2>
-<p>
-The theoraparse element will parse the header packets of the Theora
-stream and put them as the streamheader in the caps. This is used in the
-multifdsink case where you want to stream live theora streams to multiple
-clients, each client has to receive the streamheaders first before they can
-consume the theora packets.
-</p>
-<p>
-This element also makes sure that the buffers that it pushes out are properly
-timestamped and that their offset and offset_end are set. The buffers that
-theoraparse outputs have all of the metadata that oggmux expects to receive,
-which allows you to (for example) remux an ogg/theora file.
-</p>
-<p>
-In addition, this element allows you to fix badly synchronized streams. You
-pass in an array of (granule time, buffer time) synchronization points via
-the synchronization-points GValueArray property, and this element will adjust
-the granulepos values that it outputs. The adjustment will be made by
-offsetting all buffers that it outputs by a specified amount, and updating
-that offset from the value array whenever a keyframe is processed.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp6468032"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse <span class="gtkdoc opt">!</span> fakesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This pipeline shows that the streamheader is set in the caps, and that each
-buffer has the timestamp, duration, offset, and offset_end set.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse \
- <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">-</span>remuxed<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This pipeline shows remuxing. video-remuxed.ogg might not be exactly the same
-as video.ogg, but they should produce exactly the same decoded data.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2008-05-28 (0.10.20)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idm18688"></a><h3>Element Information</h3>
+<a name="idp6266352"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp13526480"></a><h3>Element Pads</h3>
+<a name="idp7342592"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstTheoraParse-struct"></a><h3>struct GstTheoraParse</h3>
<pre class="programlisting">struct GstTheoraParse;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
<p>An array of (granuletime, buffertime) pairs.</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-theoraparse.see-also"></a><h2>See Also</h2>
-theoradec, oggdemux, vorbisparse
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>timeoverlay</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-theoraparse.html" title="theoraparse">
<link rel="next" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-timeoverlay.description"></a><h2>Description</h2>
-<p>
-This element overlays the buffer time stamps of a video stream on
-top of itself. You can position the text and configure the font details
-using the properties of the <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a> class. By default, the
-time stamp is displayed in the top left corner of the picture, with some
-padding to the left and to the top.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp14194400"></a><div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> timeoverlay <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Display the time stamps in the top left
-corner of the video picture.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> timeoverlay halign<span class="gtkdoc opt">=</span>right valign<span class="gtkdoc opt">=</span>bottom text<span class="gtkdoc opt">=</span><span class="string">"Stream time:"</span> shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Another pipeline that displays the time stamps with some leading
-text in the bottom right corner of the video picture, with the background
-of the text being shaded in order to make it more legible on top of a
-bright video background.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp14192224"></a><h3>Element Information</h3>
+<a name="idp14026048"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp13857408"></a><h3>Element Pads</h3>
+<a name="idp14018464"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
<td> 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 ]</td>
</tr>
<tr>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
<td> 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 ]</td>
</tr>
<tr>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
-<td> video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-surface</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
</tr>
</tbody>
</table></div>
<a name="GstTimeOverlay-struct"></a><h3>struct GstTimeOverlay</h3>
<pre class="programlisting">struct GstTimeOverlay;</pre>
<p>
-Opaque timeoverlay data structure.
</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-timeoverlay.see-also"></a><h2>See Also</h2>
-<a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay"><span class="type">GstClockOverlay</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>uridecodebin</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-timeoverlay.html" title="timeoverlay">
<link rel="next" href="gst-plugins-base-plugins-videorate.html" title="videorate">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--caps" title='The "caps" property'>caps</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a>* : Read / Write
"<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--subtitle-encoding" title='The "subtitle-encoding" property'>subtitle-encoding</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>* : Read / Write
"<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--source" title='The "source" property'>source</a>" <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html"><span class="type">GstElement</span></a>* : Read
- "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration" title='The "buffer-duration" property'>buffer-duration</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-size" title='The "buffer-size" property'>buffer-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--download" title='The "download" property'>download</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--use-buffering" title='The "use-buffering" property'>use-buffering</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--expose-all-streams" title='The "expose-all-streams" property'>expose-all-streams</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--ring-buffer-max-size" title='The "ring-buffer-max-size" property'>ring-buffer-max-size</a>" <span class="type">guint64</span> : Read / Write
</pre>
</div>
<div class="refsect1">
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp14708752"></a><h3>Element Information</h3>
+<a name="idp14538000"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp14716208"></a><h3>Element Pads</h3>
+<a name="idp14545456"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="GstURIDecodeBin--buffer-duration"></a><h3>The <code class="literal">"buffer-duration"</code> property</h3>
-<pre class="programlisting"> "buffer-duration" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "buffer-duration" <span class="type">gint64</span> : Read / Write</pre>
<p>Buffer duration when buffering streams (-1 default value).</p>
<p>Allowed values: >= G_MAXULONG</p>
<p>Default value: -1</p>
<hr>
<div class="refsect2">
<a name="GstURIDecodeBin--ring-buffer-max-size"></a><h3>The <code class="literal">"ring-buffer-max-size"</code> property</h3>
-<pre class="programlisting"> "ring-buffer-max-size" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "ring-buffer-max-size" <span class="type">guint64</span> : Read / Write</pre>
<p>Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled).</p>
<p>Allowed values: <= G_MAXUINT</p>
<p>Default value: 0</p>
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstCaps.html#GstCaps"><span class="type">GstCaps</span></a> *caps,
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
-This function is emited when an array of possible factories for <em class="parameter"><code>caps</code></em> on
+This function is emitted when an array of possible factories for <em class="parameter"><code>caps</code></em> on
<em class="parameter"><code>pad</code></em> is needed. Uridecodebin will by default return an array with all
compatible factories, sorted by rank.
</p>
<p>
This signal is emitted once uridecodebin has found all the possible
<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> that can be used to handle the given <em class="parameter"><code>caps</code></em>. For each of
-those factories, this signal is emited.
+those factories, this signal is emitted.
</p>
<p>
The signal handler should return a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> enum
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data) : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
<p>
Once decodebin2 has found the possible <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElementFactory.html"><span class="type">GstElementFactory</span></a> objects to try
-for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emited. The purpose of the signal is for
+for <em class="parameter"><code>caps</code></em> on <em class="parameter"><code>pad</code></em>, this signal is emitted. The purpose of the signal is for
the application to perform additional sorting or filtering on the element
factory array.
</p>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>videorate</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">
<link rel="next" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
- +----GstVideoRate
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseTransform.html">GstBaseTransform</a>
+ +----GstVideoRate
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-videorate.properties"></a><h2>Properties</h2>
<pre class="synopsis">
- "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'>drop</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'>duplicate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--in" title='The "in" property'>in</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop" title='The "drop" property'>drop</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate" title='The "duplicate" property'>duplicate</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--in" title='The "in" property'>in</a>" <span class="type">guint64</span> : Read
"<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--new-pref" title='The "new-pref" property'>new-pref</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--out" title='The "out" property'>out</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--out" title='The "out" property'>out</a>" <span class="type">guint64</span> : Read
"<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent" title='The "silent" property'>silent</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first" title='The "skip-to-first" property'>skip-to-first</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period" title='The "average-period" property'>average-period</a>" <span class="type">guint64</span> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only" title='The "drop-only" property'>drop-only</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--force-fps" title='The "force-fps" property'>force-fps</a>" <span class="type">GstFraction</span> : Read / Write / Construct
+ "<a class="link" href="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate" title='The "max-rate" property'>max-rate</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp8830336"></a><h3>Example pipelines</h3>
+<a name="idp14912624"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6062432"></a><h3>Element Information</h3>
+<a name="idp14917040"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp14163520"></a><h3>Element Pads</h3>
+<a name="idp14924496"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="gst-plugins-base-plugins-videorate.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstVideoRate--drop"></a><h3>The <code class="literal">"drop"</code> property</h3>
-<pre class="programlisting"> "drop" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "drop" <span class="type">guint64</span> : Read</pre>
<p>Number of dropped frames.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstVideoRate--duplicate"></a><h3>The <code class="literal">"duplicate"</code> property</h3>
-<pre class="programlisting"> "duplicate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "duplicate" <span class="type">guint64</span> : Read</pre>
<p>Number of duplicated frames.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstVideoRate--in"></a><h3>The <code class="literal">"in"</code> property</h3>
-<pre class="programlisting"> "in" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "in" <span class="type">guint64</span> : Read</pre>
<p>Number of input frames.</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstVideoRate--out"></a><h3>The <code class="literal">"out"</code> property</h3>
-<pre class="programlisting"> "out" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
+<pre class="programlisting"> "out" <span class="type">guint64</span> : Read</pre>
<p>Number of output frames.</p>
<p>Default value: 0</p>
</div>
<p>Default value: FALSE</p>
<p class="since">Since 0.10.25</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--average-period"></a><h3>The <code class="literal">"average-period"</code> property</h3>
+<pre class="programlisting"> "average-period" <span class="type">guint64</span> : Read / Write</pre>
+<p>
+Arrange for maximum framerate by dropping frames beyond a certain framerate,
+where the framerate is calculated using a moving average over the
+configured.
+</p>
+<p>Allowed values: <= G_MAXLONG</p>
+<p>Default value: 0</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--drop-only"></a><h3>The <code class="literal">"drop-only"</code> property</h3>
+<pre class="programlisting"> "drop-only" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
+<p>
+Only drop frames, no duplicates are produced.
+</p>
+<p>Default value: FALSE</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--force-fps"></a><h3>The <code class="literal">"force-fps"</code> property</h3>
+<pre class="programlisting"> "force-fps" <span class="type">GstFraction</span> : Read / Write / Construct</pre>
+<p>
+Forced output framerate
+</p>
+<p class="since">Since 0.10.36</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoRate--max-rate"></a><h3>The <code class="literal">"max-rate"</code> property</h3>
+<pre class="programlisting"> "max-rate" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write / Construct</pre>
+<p>
+maximum framerate to pass through
+</p>
+<p>Allowed values: >= 1</p>
+<p>Default value: 2147483647</p>
+<p class="since">Since 0.10.36</p>
+</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>videoscale</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-videorate.html" title="videorate">
<link rel="next" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<pre class="synopsis">
"<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method" title='The "method" property'>method</a>" <a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod" title="enum GstVideoScaleMethod"><span class="type">GstVideoScaleMethod</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders" title='The "add-borders" property'>add-borders</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--dither" title='The "dither" property'>dither</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct
+ "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope" title='The "envelope" property'>envelope</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write / Construct
+ "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen" title='The "sharpen" property'>sharpen</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write / Construct
+ "<a class="link" href="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness" title='The "sharpness" property'>sharpness</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write / Construct
</pre>
</div>
<div class="refsect1">
<p>
</p>
<div class="refsect2">
-<a name="idp15315136"></a><h3>Example pipelines</h3>
+<a name="idp14852496"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp15311504"></a><h3>Element Information</h3>
+<a name="idp14848880"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp15302912"></a><h3>Element Pads</h3>
+<a name="idp14841968"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<pre class="programlisting">typedef enum {
GST_VIDEO_SCALE_NEAREST,
GST_VIDEO_SCALE_BILINEAR,
- GST_VIDEO_SCALE_4TAP
+ GST_VIDEO_SCALE_4TAP,
+ GST_VIDEO_SCALE_LANCZOS
} GstVideoScaleMethod;
</pre>
<p>
<td>use a 4-tap filter for scaling (slow).
</td>
</tr>
+<tr>
+<td><p><a name="GST-VIDEO-SCALE-LANCZOS:CAPS"></a><span class="term"><code class="literal">GST_VIDEO_SCALE_LANCZOS</code></span></p></td>
+<td>use a multitap Lanczos filter for scaling (slow).
+</td>
+</tr>
</tbody>
</table></div>
</div>
<p>Add black borders if necessary to keep the display aspect ratio.</p>
<p>Default value: FALSE</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--dither"></a><h3>The <code class="literal">"dither"</code> property</h3>
+<pre class="programlisting"> "dither" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write / Construct</pre>
+<p>Add dither (only used for Lanczos method).</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--envelope"></a><h3>The <code class="literal">"envelope"</code> property</h3>
+<pre class="programlisting"> "envelope" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write / Construct</pre>
+<p>Size of filter envelope.</p>
+<p>Allowed values: [0,5]</p>
+<p>Default value: 2</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--sharpen"></a><h3>The <code class="literal">"sharpen"</code> property</h3>
+<pre class="programlisting"> "sharpen" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write / Construct</pre>
+<p>Sharpening.</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoScale--sharpness"></a><h3>The <code class="literal">"sharpness"</code> property</h3>
+<pre class="programlisting"> "sharpness" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> : Read / Write / Construct</pre>
+<p>Sharpness of filter.</p>
+<p>Allowed values: [0,2]</p>
+<p>Default value: 1</p>
+</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-videoscale.see-also"></a><h2>See Also</h2>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>videotestsrc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-videoscale.html" title="videoscale">
<link rel="next" href="gst-plugins-base-plugins-volume.html" title="volume">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a name="gst-plugins-base-plugins-videotestsrc.properties"></a><h2>Properties</h2>
<pre class="synopsis">
"<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--pattern" title='The "pattern" property'>pattern</a>" <a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern" title="enum GstVideoTestSrcPattern"><span class="type">GstVideoTestSrcPattern</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write
+ "<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset" title='The "timestamp-offset" property'>timestamp-offset</a>" <span class="type">gint64</span> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--is-live" title='The "is-live" property'>is-live</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--peer-alloc" title='The "peer-alloc" property'>peer-alloc</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--colorspec" title='The "colorspec" property'>colorspec</a>" <a class="link" href="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec" title="enum GstVideoTestSrcColorSpec"><span class="type">GstVideoTestSrcColorSpec</span></a> : Read / Write
<div class="refsect1">
<a name="gst-plugins-base-plugins-videotestsrc.description"></a><h2>Description</h2>
<p>
-The videotestsrc element is used to produce test video data in a wide variaty
+The videotestsrc element is used to produce test video data in a wide variety
of formats. The video test data produced can be controlled with the "pattern"
property.
</p>
<p>
</p>
<div class="refsect2">
-<a name="idp15490528"></a><h3>Example launch line</h3>
+<a name="idp15476256"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp15488160"></a><h3>Element Information</h3>
+<a name="idp15473888"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp15479360"></a><h3>Element Pads</h3>
+<a name="idp15465088"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<hr>
<div class="refsect2">
<a name="GstVideoTestSrc--timestamp-offset"></a><h3>The <code class="literal">"timestamp-offset"</code> property</h3>
-<pre class="programlisting"> "timestamp-offset" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a> : Read / Write</pre>
+<pre class="programlisting"> "timestamp-offset" <span class="type">gint64</span> : Read / Write</pre>
<p>An offset added to timestamps set on buffers (in ns).</p>
<p>Default value: 0</p>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>volume</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-videotestsrc.html" title="videotestsrc">
<link rel="next" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<p>
</p>
<div class="refsect2">
-<a name="idp15336800"></a><h3>Example launch line</h3>
+<a name="idp5784592"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6725840"></a><h3>Element Information</h3>
+<a name="idp6771392"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp13916672"></a><h3>Element Pads</h3>
+<a name="idp9320000"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>vorbisdec</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-volume.html" title="volume">
<link rel="next" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
- +----GstVorbisDec
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
+ +----GstVorbisDec
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-vorbisdec.description"></a><h2>Description</h2>
-<p>
-This element decodes a Vorbis stream to raw float audio.
-<a class="ulink" href="http://www.vorbis.com/" target="_top">Vorbis</a> is a royalty-free
-audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9378016"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Decode an Ogg/Vorbis. To create an Ogg/Vorbis file refer to the documentation of vorbisenc.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8007488"></a><h3>Element Information</h3>
+<a name="idp9506784"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp15561504"></a><h3>Element Pads</h3>
+<a name="idp10364544"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstVorbisDec-struct"></a><h3>struct GstVorbisDec</h3>
<pre class="programlisting">struct GstVorbisDec;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbisdec.see-also"></a><h2>See Also</h2>
-vorbisenc, oggdemux
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>vorbisenc</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-vorbisdec.html" title="vorbisdec">
<link rel="next" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
- +----GstVorbisEnc
+ +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
+ +----GstVorbisEnc
</pre>
</div>
<div class="refsect1">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-vorbisenc.description"></a><h2>Description</h2>
-<p>
-This element encodes raw float audio into a Vorbis stream.
-<a class="ulink" href="http://www.vorbis.com/" target="_top">Vorbis</a> is a royalty-free
-audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
-Foundation</a>.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp15009216"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v audiotestsrc wave<span class="gtkdoc opt">=</span>sine num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Encode a test sine signal to Ogg/Vorbis. Note that the resulting file
-will be really small because a sine signal compresses very well.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v alsasrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>alsasrc<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Record from a sound card using ALSA and encode to Ogg/Vorbis.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-03-01 (0.10.4)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp15013472"></a><h3>Element Information</h3>
+<a name="idp15533792"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp15020880"></a><h3>Element Pads</h3>
+<a name="idp15550768"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</tr>
<tr>
<td><p><span class="term">details</span></p></td>
-<td>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 256 ], endianness=(int)1234, width=(int)32</td>
+<td>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 255 ], endianness=(int)1234, width=(int)32</td>
</tr>
</tbody>
</table></div>
<a name="GstVorbisEnc-struct"></a><h3>struct GstVorbisEnc</h3>
<pre class="programlisting">struct GstVorbisEnc;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
<p>Default value: 0.3</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbisenc.see-also"></a><h2>See Also</h2>
-vorbisdec, oggmux
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>vorbisparse</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-vorbisenc.html" title="vorbisenc">
<link rel="next" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-vorbisparse.description"></a><h2>Description</h2>
-<p>
-The vorbisparse element will parse the header packets of the Vorbis
-stream and put them as the streamheader in the caps. This is used in the
-multifdsink case where you want to stream live vorbis streams to multiple
-clients, each client has to receive the streamheaders first before they can
-consume the vorbis packets.
-</p>
-<p>
-This element also makes sure that the buffers that it pushes out are properly
-timestamped and that their offset and offset_end are set. The buffers that
-vorbisparse outputs have all of the metadata that oggmux expects to receive,
-which allows you to (for example) remux an ogg/vorbis file.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp7959088"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisparse <span class="gtkdoc opt">!</span> fakesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This pipeline shows that the streamheader is set in the caps, and that each
-buffer has the timestamp, duration, offset, and offset_end set.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1
-2</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch filesrc location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisparse \
- <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">-</span>remuxed<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This pipeline shows remuxing. sine-remuxed.ogg might not be exactly the same
-as sine.ogg, but they should produce exactly the same decoded data.
-</div>
-<p>
-</p>
-<p>
-Last reviewed on 2006-04-01 (0.10.4.1)
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10657648"></a><h3>Element Information</h3>
+<a name="idp12296176"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp14996624"></a><h3>Element Pads</h3>
+<a name="idp9306656"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstVorbisParse-struct"></a><h3>struct GstVorbisParse</h3>
<pre class="programlisting">struct GstVorbisParse;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbisparse.see-also"></a><h2>See Also</h2>
-vorbisdec, oggdemux, theoraparse
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>vorbistag</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-vorbisparse.html" title="vorbisparse">
<link rel="next" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-vorbistag.description"></a><h2>Description</h2>
-<p>
-The vorbistags element can change the tag contained within a raw
-vorbis stream. Specifically, it modifies the comments header packet
-of the vorbis stream.
-</p>
-<p>
-The element will also process the stream as the <span class="type">vorbisparse</span> element does
-so it can be used when remuxing an Ogg Vorbis stream, without additional
-elements.
-</p>
-<p>
-Applications can set the tags to write using the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html"><span class="type">GstTagSetter</span></a> interface.
-Tags contained withing the vorbis bitstream will be picked up
-automatically (and merged according to the merge mode set via the tag
-setter interface).
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp9228848"></a><h3>Example pipelines</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbistag <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>bar<span class="gtkdoc opt">.</span>ogg</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This element is not useful with gst-launch, because it does not support
-setting the tags on a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html"><span class="type">GstTagSetter</span></a> interface. Conceptually, the element
-will usually be used in this order though.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8789296"></a><h3>Element Information</h3>
+<a name="idp8217872"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp14668272"></a><h3>Element Pads</h3>
+<a name="idp6805408"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstVorbisTag-struct"></a><h3>struct GstVorbisTag</h3>
<pre class="programlisting">struct GstVorbisTag;</pre>
<p>
-Opaque data structure.
</p>
</div>
</div>
-<div class="refsect1">
-<a name="gst-plugins-base-plugins-vorbistag.see-also"></a><h2>See Also</h2>
-<span class="type">oggdemux</span>, <span class="type">oggmux</span>, <span class="type">vorbisparse</span>, <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstTagSetter.html"><span class="type">GstTagSetter</span></a>
-</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ximagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-vorbistag.html" title="vorbistag">
<link rel="next" href="gst-plugins-base-plugins-xvimagesink.html" title="xvimagesink">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'>force-aspect-ratio</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-events" title='The "handle-events" property'>handle-events</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose" title='The "handle-expose" property'>handle-expose</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height" title='The "window-height" property'>window-height</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width" title='The "window-width" property'>window-width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
+ "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height" title='The "window-height" property'>window-height</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width" title='The "window-width" property'>window-width</a>" <span class="type">guint64</span> : Read
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-ximagesink.description"></a><h2>Description</h2>
-<p>
-XImageSink renders video frames to a drawable (XWindow) on a local or remote
-display. This element can receive a Window ID from the application through
-the XOverlay interface and will then render video frames in this drawable.
-If no Window ID was provided by the application, the element will create its
-own internal window and render into it.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp15989760"></a><h3>Scaling</h3>
-<p>
-As standard XImage rendering to a drawable is not scaled, XImageSink will use
-reverse caps negotiation to try to get scaled video frames for the drawable.
-This is accomplished by asking the peer pad if it accepts some different caps
-which in most cases implies that there is a scaling element in the pipeline,
-or that an element generating the video frames can generate them with a
-different geometry. This mechanism is handled during buffer allocations, for
-each allocation request the video sink will check the drawable geometry, look
-at the <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'><span class="type">"force-aspect-ratio"</span></a> property, calculate the geometry of
-desired video frames and then check that the peer pad accept those new caps.
-If it does it will then allocate a buffer in video memory with this new
-geometry and return it with the new caps.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp15992704"></a><h3>Events</h3>
-<p>
-XImageSink creates a thread to handle events coming from the drawable. There
-are several kind of events that can be grouped in 2 big categories: input
-events and window state related events. Input events will be translated to
-navigation events and pushed upstream for other elements to react on them.
-This includes events such as pointer moves, key press/release, clicks etc...
-Other events are used to handle the drawable appearance even when the data
-is not flowing (GST_STATE_PAUSED). That means that even when the element is
-paused, it will receive expose events from the drawable and draw the latest
-frame with correct borders/aspect-ratio.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp15994688"></a><h3>Pixel aspect ratio</h3>
-<p>
-When changing state to GST_STATE_READY, XImageSink will open a connection to
-the display specified in the <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display" title='The "display" property'><span class="type">"display"</span></a> property or the default
-display if nothing specified. Once this connection is open it will inspect
-the display configuration including the physical display geometry and
-then calculate the pixel aspect ratio. When caps negotiation will occur, the
-video sink will set the calculated pixel aspect ratio on the caps to make
-sure that incoming video frames will have the correct pixel aspect ratio for
-this display. Sometimes the calculated pixel aspect ratio can be wrong, it is
-then possible to enforce a specific pixel aspect ratio using the
-<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'><span class="type">"pixel-aspect-ratio"</span></a> property.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp15998368"></a><h3>Examples</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> ximagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- A pipeline to test reverse negotiation. When the test video signal appears
-you can resize the window and see that scaled buffers of the desired size are
-going to arrive with a short delay. This illustrates how buffers of desired
-size are allocated along the way. If you take away the queue, scaling will
-happen almost immediately.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> navigationtest <span class="gtkdoc opt">!</span> ffmpegcolorspace <span class="gtkdoc opt">!</span> ximagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- 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.)
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>rgb<span class="gtkdoc opt">,</span> pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=(</span>fraction<span class="gtkdoc opt">)</span><span class="number">4</span><span class="gtkdoc opt">/</span><span class="number">3</span> <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> ximagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This is faking a 4/3 pixel aspect ratio caps on video frames produced by
-videotestsrc, in most cases the pixel aspect ratio of the display will be
-1/1. This means that videoscale will have to do the scaling to convert
-incoming frames to a size that will match the display pixel aspect ratio
-(from 320x240 to 320x180 in this case). Note that you might have to escape
-some characters for your shell like '\(fraction\)'.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp16003856"></a><h3>Element Information</h3>
+<a name="idp14442752"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp16011312"></a><h3>Element Pads</h3>
+<a name="idp14450208"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstXImageSink-struct"></a><h3>struct GstXImageSink</h3>
<pre class="programlisting">struct GstXImageSink;</pre>
<p>
-The <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink"><span class="type">GstXImageSink</span></a> data structure.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
</div>
</div>
<div class="refsect1">
<div class="refsect2">
<a name="GstXImageSink--synchronous"></a><h3>The <code class="literal">"synchronous"</code> property</h3>
<pre class="programlisting"> "synchronous" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>When enabled, runs the X display in synchronous mode. (used only for debugging).</p>
+<p>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</p>
<p>Default value: FALSE</p>
</div>
<hr>
<hr>
<div class="refsect2">
<a name="GstXImageSink--window-height"></a><h3>The <code class="literal">"window-height"</code> property</h3>
-<pre class="programlisting"> "window-height" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
-<p>
-Actual height of the video window.
-</p>
+<pre class="programlisting"> "window-height" <span class="type">guint64</span> : Read</pre>
+<p>Height of the window.</p>
<p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXImageSink--window-width"></a><h3>The <code class="literal">"window-width"</code> property</h3>
-<pre class="programlisting"> "window-width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
-<p>
-Actual width of the video window.
-</p>
+<pre class="programlisting"> "window-width" <span class="type">guint64</span> : Read</pre>
+<p>Width of the window.</p>
<p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>xvimagesink</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-ximagesink.html" title="ximagesink">
<link rel="next" href="ch02.html" title="gst-plugins-base Plugins">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
"<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--autopaint-colorkey" title='The "autopaint-colorkey" property'>autopaint-colorkey</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--colorkey" title='The "colorkey" property'>colorkey</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write
"<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--draw-borders" title='The "draw-borders" property'>draw-borders</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write
- "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-height" title='The "window-height" property'>window-height</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
- "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-width" title='The "window-width" property'>window-width</a>" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read
+ "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-height" title='The "window-height" property'>window-height</a>" <span class="type">guint64</span> : Read
+ "<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-width" title='The "window-width" property'>window-width</a>" <span class="type">guint64</span> : Read
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-xvimagesink.description"></a><h2>Description</h2>
-<p>
-XvImageSink renders video frames to a drawable (XWindow) on a local display
-using the XVideo extension. Rendering to a remote display is theorically
-possible but i doubt that the XVideo extension is actually available when
-connecting to a remote display. This element can receive a Window ID from the
-application through the XOverlay interface and will then render video frames
-in this drawable. If no Window ID was provided by the application, the
-element will create its own internal window and render into it.
-</p>
-<p>
-</p>
-<div class="refsect2">
-<a name="idp16288528"></a><h3>Scaling</h3>
-<p>
-The XVideo extension, when it's available, handles hardware accelerated
-scaling of video frames. This means that the element will just accept
-incoming video frames no matter their geometry and will then put them to the
-drawable scaling them on the fly. Using the <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'><span class="type">"force-aspect-ratio"</span></a>
-property it is possible to enforce scaling with a constant aspect ratio,
-which means drawing black borders around the video frame.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp16291104"></a><h3>Events</h3>
-<p>
-XvImageSink creates a thread to handle events coming from the drawable. There
-are several kind of events that can be grouped in 2 big categories: input
-events and window state related events. Input events will be translated to
-navigation events and pushed upstream for other elements to react on them.
-This includes events such as pointer moves, key press/release, clicks etc...
-Other events are used to handle the drawable appearance even when the data
-is not flowing (GST_STATE_PAUSED). That means that even when the element is
-paused, it will receive expose events from the drawable and draw the latest
-frame with correct borders/aspect-ratio.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp16293088"></a><h3>Pixel aspect ratio</h3>
-<p>
-When changing state to GST_STATE_READY, XvImageSink will open a connection to
-the display specified in the <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--display" title='The "display" property'><span class="type">"display"</span></a> property or the
-default display if nothing specified. Once this connection is open it will
-inspect the display configuration including the physical display geometry and
-then calculate the pixel aspect ratio. When receiving video frames with a
-different pixel aspect ratio, XvImageSink will use hardware scaling to
-display the video frames correctly on display's pixel aspect ratio.
-Sometimes the calculated pixel aspect ratio can be wrong, it is
-then possible to enforce a specific pixel aspect ratio using the
-<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--pixel-aspect-ratio" title='The "pixel-aspect-ratio" property'><span class="type">"pixel-aspect-ratio"</span></a> property.
-</p>
-</div>
-<p>
-</p>
-<hr>
-<div class="refsect2">
-<a name="idp16296736"></a><h3>Examples</h3>
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- A pipeline to test hardware scaling.
-When the test video signal appears you can resize the window and see that
-video frames are scaled through hardware (no extra CPU cost).
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> xvimagesink force<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Same pipeline with <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio" title='The "force-aspect-ratio" property'><span class="type">"force-aspect-ratio"</span></a> property set to true
-You can observe the borders drawn around the scaled image respecting aspect
-ratio.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> navigationtest <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- 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
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">-</span>yuv<span class="gtkdoc opt">,</span> pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=(</span>fraction<span class="gtkdoc opt">)</span><span class="number">4</span><span class="gtkdoc opt">/</span><span class="number">3</span> <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- This is faking a 4/3 pixel aspect ratio caps on video frames produced by
-videotestsrc, in most cases the pixel aspect ratio of the display will be
-1/1. This means that XvImageSink will have to do the scaling to convert
-incoming frames to a size that will match the display pixel aspect ratio
-(from 320x240 to 320x180 in this case). Note that you might have to escape
-some characters for your shell like '\(fraction\)'.
-<div class="informalexample">
- <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
- <tbody>
- <tr>
- <td class="listing_lines" align="right"><pre>1</pre></td>
- <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> xvimagesink hue<span class="gtkdoc opt">=</span><span class="number">100</span> saturation<span class="gtkdoc opt">=-</span><span class="number">100</span> brightness<span class="gtkdoc opt">=</span><span class="number">100</span></pre></td>
- </tr>
- </tbody>
- </table>
-</div>
- Demonstrates how to use the colorbalance interface.
-</div>
-<p>
-</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp16304880"></a><h3>Element Information</h3>
+<a name="idp16140224"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
</div>
<hr>
<div class="refsect2">
-<a name="idp16312336"></a><h3>Element Pads</h3>
+<a name="idp16147680"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<a name="GstXvImageSink-struct"></a><h3>struct GstXvImageSink</h3>
<pre class="programlisting">struct GstXvImageSink;</pre>
<p>
-The <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink"><span class="type">GstXvImageSink</span></a> data structure.
</p>
-<div class="variablelist"><table border="0">
-<col align="left" valign="top">
-<tbody></tbody>
-</table></div>
</div>
</div>
<div class="refsect1">
<div class="refsect2">
<a name="GstXvImageSink--synchronous"></a><h3>The <code class="literal">"synchronous"</code> property</h3>
<pre class="programlisting"> "synchronous" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>When enabled, runs the X display in synchronous mode. (used only for debugging).</p>
+<p>When enabled, runs the X display in synchronous mode. (unrelated to A/V sync, used only for debugging).</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXvImageSink--double-buffer"></a><h3>The <code class="literal">"double-buffer"</code> property</h3>
<pre class="programlisting"> "double-buffer" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>
-Whether to double-buffer the output.
-</p>
+<p>Whether to double-buffer the output.</p>
<p>Default value: TRUE</p>
-<p class="since">Since 0.10.14</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXvImageSink--handle-expose"></a><h3>The <code class="literal">"handle-expose"</code> property</h3>
<pre class="programlisting"> "handle-expose" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>
-When enabled, the current frame will always be drawn in response to X
-Expose.
-</p>
+<p>When enabled, the current frame will always be drawn in response to X Expose events.</p>
<p>Default value: TRUE</p>
-<p class="since">Since 0.10.14</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXvImageSink--autopaint-colorkey"></a><h3>The <code class="literal">"autopaint-colorkey"</code> property</h3>
<pre class="programlisting"> "autopaint-colorkey" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>
-Whether to autofill overlay with colorkey
-</p>
+<p>Whether to autofill overlay with colorkey.</p>
<p>Default value: TRUE</p>
-<p class="since">Since 0.10.21</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXvImageSink--colorkey"></a><h3>The <code class="literal">"colorkey"</code> property</h3>
<pre class="programlisting"> "colorkey" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> : Read / Write</pre>
-<p>
-Color to use for the overlay mask.
-</p>
+<p>Color to use for the overlay mask.</p>
<p>Default value: 0</p>
-<p class="since">Since 0.10.21</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXvImageSink--draw-borders"></a><h3>The <code class="literal">"draw-borders"</code> property</h3>
<pre class="programlisting"> "draw-borders" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> : Read / Write</pre>
-<p>
-Draw black borders when using GstXvImageSink:force-aspect-ratio to fill
-unused parts of the video area.
-</p>
+<p>Draw black borders to fill unused area in force-aspect-ratio mode.</p>
<p>Default value: TRUE</p>
-<p class="since">Since 0.10.21</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXvImageSink--window-height"></a><h3>The <code class="literal">"window-height"</code> property</h3>
-<pre class="programlisting"> "window-height" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
-<p>
-Actual height of the video window.
-</p>
+<pre class="programlisting"> "window-height" <span class="type">guint64</span> : Read</pre>
+<p>Height of the window.</p>
<p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
</div>
<hr>
<div class="refsect2">
<a name="GstXvImageSink--window-width"></a><h3>The <code class="literal">"window-width"</code> property</h3>
-<pre class="programlisting"> "window-width" <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a> : Read</pre>
-<p>
-Actual width of the video window.
-</p>
+<pre class="programlisting"> "window-width" <span class="type">guint64</span> : Read</pre>
+<p>Width of the window.</p>
<p>Default value: 0</p>
-<p class="since">Since 0.10.32</p>
</div>
</div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="utf-8" standalone="no"?>
-<!DOCTYPE book PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "">
-<book xmlns="http://www.devhelp.net/book" title="GStreamer Base Plugins 0.10 Plugins Reference Manual" link="index.html" author="" name="gst-plugins-base-plugins">
- <chapters>
- <sub name="gst-plugins-base Elements" link="ch01.html">
- <sub name="adder" link="gst-plugins-base-plugins-adder.html"/>
- <sub name="appsrc" link="gst-plugins-base-plugins-appsrc.html"/>
- <sub name="appsink" link="gst-plugins-base-plugins-appsink.html"/>
- <sub name="alsamixer" link="gst-plugins-base-plugins-alsamixer.html"/>
- <sub name="alsasink" link="gst-plugins-base-plugins-alsasink.html"/>
- <sub name="alsasrc" link="gst-plugins-base-plugins-alsasrc.html"/>
- <sub name="audioconvert" link="gst-plugins-base-plugins-audioconvert.html"/>
- <sub name="audiorate" link="gst-plugins-base-plugins-audiorate.html"/>
- <sub name="audioresample" link="gst-plugins-base-plugins-audioresample.html"/>
- <sub name="audiotestsrc" link="gst-plugins-base-plugins-audiotestsrc.html"/>
- <sub name="cdparanoiasrc" link="gst-plugins-base-plugins-cdparanoiasrc.html"/>
- <sub name="clockoverlay" link="gst-plugins-base-plugins-clockoverlay.html"/>
- <sub name="decodebin" link="gst-plugins-base-plugins-decodebin.html"/>
- <sub name="decodebin2" link="gst-plugins-base-plugins-decodebin2.html"/>
- <sub name="encodebin" link="gst-plugins-base-plugins-encodebin.html"/>
- <sub name="ffmpegcolorspace" link="gst-plugins-base-plugins-ffmpegcolorspace.html"/>
- <sub name="gdpdepay" link="gst-plugins-base-plugins-gdpdepay.html"/>
- <sub name="gdppay" link="gst-plugins-base-plugins-gdppay.html"/>
- <sub name="giosink" link="gst-plugins-base-plugins-giosink.html"/>
- <sub name="giosrc" link="gst-plugins-base-plugins-giosrc.html"/>
- <sub name="giostreamsink" link="gst-plugins-base-plugins-giostreamsink.html"/>
- <sub name="giostreamsrc" link="gst-plugins-base-plugins-giostreamsrc.html"/>
- <sub name="gnomevfssink" link="gst-plugins-base-plugins-gnomevfssink.html"/>
- <sub name="gnomevfssrc" link="gst-plugins-base-plugins-gnomevfssrc.html"/>
- <sub name="multifdsink" link="gst-plugins-base-plugins-multifdsink.html"/>
- <sub name="oggdemux" link="gst-plugins-base-plugins-oggdemux.html"/>
- <sub name="oggmux" link="gst-plugins-base-plugins-oggmux.html"/>
- <sub name="playbin" link="gst-plugins-base-plugins-playbin.html"/>
- <sub name="playbin2" link="gst-plugins-base-plugins-playbin2.html"/>
- <sub name="subtitleoverlay" link="gst-plugins-base-plugins-subtitleoverlay.html"/>
- <sub name="tcpclientsrc" link="gst-plugins-base-plugins-tcpclientsrc.html"/>
- <sub name="tcpclientsink" link="gst-plugins-base-plugins-tcpclientsink.html"/>
- <sub name="tcpserversrc" link="gst-plugins-base-plugins-tcpserversrc.html"/>
- <sub name="tcpserversink" link="gst-plugins-base-plugins-tcpserversink.html"/>
- <sub name="textoverlay" link="gst-plugins-base-plugins-textoverlay.html"/>
- <sub name="textrender" link="gst-plugins-base-plugins-textrender.html"/>
- <sub name="theoradec" link="gst-plugins-base-plugins-theoradec.html"/>
- <sub name="theoraenc" link="gst-plugins-base-plugins-theoraenc.html"/>
- <sub name="theoraparse" link="gst-plugins-base-plugins-theoraparse.html"/>
- <sub name="timeoverlay" link="gst-plugins-base-plugins-timeoverlay.html"/>
- <sub name="uridecodebin" link="gst-plugins-base-plugins-uridecodebin.html"/>
- <sub name="videorate" link="gst-plugins-base-plugins-videorate.html"/>
- <sub name="videoscale" link="gst-plugins-base-plugins-videoscale.html"/>
- <sub name="videotestsrc" link="gst-plugins-base-plugins-videotestsrc.html"/>
- <sub name="volume" link="gst-plugins-base-plugins-volume.html"/>
- <sub name="vorbisdec" link="gst-plugins-base-plugins-vorbisdec.html"/>
- <sub name="vorbisenc" link="gst-plugins-base-plugins-vorbisenc.html"/>
- <sub name="vorbisparse" link="gst-plugins-base-plugins-vorbisparse.html"/>
- <sub name="vorbistag" link="gst-plugins-base-plugins-vorbistag.html"/>
- <sub name="ximagesink" link="gst-plugins-base-plugins-ximagesink.html"/>
- <sub name="xvimagesink" link="gst-plugins-base-plugins-xvimagesink.html"/>
- </sub>
- <sub name="gst-plugins-base Plugins" link="ch02.html">
- <sub name="adder" link="gst-plugins-base-plugins-plugin-adder.html"/>
- <sub name="alsa" link="gst-plugins-base-plugins-plugin-alsa.html"/>
- <sub name="app" link="gst-plugins-base-plugins-plugin-app.html"/>
- <sub name="audioconvert" link="gst-plugins-base-plugins-plugin-audioconvert.html"/>
- <sub name="audiorate" link="gst-plugins-base-plugins-plugin-audiorate.html"/>
- <sub name="audioresample" link="gst-plugins-base-plugins-plugin-audioresample.html"/>
- <sub name="audiotestsrc" link="gst-plugins-base-plugins-plugin-audiotestsrc.html"/>
- <sub name="cdparanoia" link="gst-plugins-base-plugins-plugin-cdparanoia.html"/>
- <sub name="decodebin" link="gst-plugins-base-plugins-plugin-decodebin.html"/>
- <sub name="encoding" link="gst-plugins-base-plugins-plugin-encoding.html"/>
- <sub name="ffmpegcolorspace" link="gst-plugins-base-plugins-plugin-ffmpegcolorspace.html"/>
- <sub name="gdp" link="gst-plugins-base-plugins-plugin-gdp.html"/>
- <sub name="gio" link="gst-plugins-base-plugins-plugin-gio.html"/>
- <sub name="gnomevfs" link="gst-plugins-base-plugins-plugin-gnomevfs.html"/>
- <sub name="libvisual" link="gst-plugins-base-plugins-plugin-libvisual.html"/>
- <sub name="ogg" link="gst-plugins-base-plugins-plugin-ogg.html"/>
- <sub name="pango" link="gst-plugins-base-plugins-plugin-pango.html"/>
- <sub name="playback" link="gst-plugins-base-plugins-plugin-playback.html"/>
- <sub name="subparse" link="gst-plugins-base-plugins-plugin-subparse.html"/>
- <sub name="tcp" link="gst-plugins-base-plugins-plugin-tcp.html"/>
- <sub name="theora" link="gst-plugins-base-plugins-plugin-theora.html"/>
- <sub name="typefindfunctions" link="gst-plugins-base-plugins-plugin-typefindfunctions.html"/>
- <sub name="uridecodebin" link="gst-plugins-base-plugins-plugin-uridecodebin.html"/>
- <sub name="video4linux" link="gst-plugins-base-plugins-plugin-video4linux.html"/>
- <sub name="videorate" link="gst-plugins-base-plugins-plugin-videorate.html"/>
- <sub name="videoscale" link="gst-plugins-base-plugins-plugin-videoscale.html"/>
- <sub name="videotestsrc" link="gst-plugins-base-plugins-plugin-videotestsrc.html"/>
- <sub name="volume" link="gst-plugins-base-plugins-plugin-volume.html"/>
- <sub name="vorbis" link="gst-plugins-base-plugins-plugin-vorbis.html"/>
- <sub name="ximagesink" link="gst-plugins-base-plugins-plugin-ximagesink.html"/>
- <sub name="xvimagesink" link="gst-plugins-base-plugins-plugin-xvimagesink.html"/>
- </sub>
- <sub name="gst-plugins-base Classes" link="ch03.html">
- <sub name="GstPlayBaseBin" link="GstPlayBaseBin.html"/>
- </sub>
- </chapters>
- <functions>
- <function name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp4775216"/>
- <function name="Element Information" link="gst-plugins-base-plugins-adder.html#idp4772432"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-adder.html#idp7769952"/>
- <function name="struct GstAdder" link="gst-plugins-base-plugins-adder.html#GstAdder-struct"/>
- <function name="The "caps" property" link="gst-plugins-base-plugins-adder.html#GstAdder--caps"/>
- <function name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp5517840"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp5525328"/>
- <function name="struct GstAppSrc" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"/>
- <function name="The "block" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block"/>
- <function name="The "caps" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps"/>
- <function name="The "format" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--format"/>
- <function name="The "is-live" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--is-live"/>
- <function name="The "max-bytes" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-bytes"/>
- <function name="The "max-latency" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--max-latency"/>
- <function name="The "min-latency" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-latency"/>
- <function name="The "size" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size"/>
- <function name="The "stream-type" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type"/>
- <function name="The "emit-signals" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--emit-signals"/>
- <function name="The "min-percent" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent"/>
- <function name="The "end-of-stream" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-end-of-stream"/>
- <function name="The "enough-data" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-enough-data"/>
- <function name="The "need-data" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
- <function name="The "push-buffer" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer"/>
- <function name="The "seek-data" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
- <function name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9669776"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9677184"/>
- <function name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
- <function name="The "caps" property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--caps"/>
- <function name="The "drop" property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--drop"/>
- <function name="The "emit-signals" property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--emit-signals"/>
- <function name="The "eos" property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--eos"/>
- <function name="The "max-buffers" property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--max-buffers"/>
- <function name="The "eos" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-eos"/>
- <function name="The "new-buffer" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-buffer"/>
- <function name="The "new-preroll" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-preroll"/>
- <function name="The "pull-buffer" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer"/>
- <function name="The "pull-preroll" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-preroll"/>
- <function name="The "new-buffer-list" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-buffer-list"/>
- <function name="The "pull-buffer-list" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer-list"/>
- <function name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp9594784"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp9602240"/>
- <function name="struct GstAlsaMixerElement" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement-struct"/>
- <function name="The "device" property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device"/>
- <function name="The "device-name" property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-alsasink.html#idp6507408"/>
- <function name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp7524000"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp7531456"/>
- <function name="struct GstAlsaSink" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink-struct"/>
- <function name="The "device" property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
- <function name="The "device-name" property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name"/>
- <function name="The "card-name" property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-alsasrc.html#idp8699328"/>
- <function name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp8702512"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9886976"/>
- <function name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
- <function name="The "device" property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
- <function name="The "device-name" property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
- <function name="The "card-name" property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp9937248"/>
- <function name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp7421920"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp7007232"/>
- <function name="struct GstAudioConvert" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct"/>
- <function name="enum GstAudioConvertDithering" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering"/>
- <function name="enum GstAudioConvertNoiseShaping" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping"/>
- <function name="The "dithering" property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering"/>
- <function name="The "noise-shaping" property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp10131792"/>
- <function name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10134512"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10141968"/>
- <function name="struct GstAudioRate" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate-struct"/>
- <function name="The "add" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add"/>
- <function name="The "drop" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop"/>
- <function name="The "in" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--in"/>
- <function name="The "out" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--out"/>
- <function name="The "silent" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent"/>
- <function name="The "tolerance" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance"/>
- <function name="The "skip-to-first" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp9934288"/>
- <function name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp9932064"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp7787632"/>
- <function name="struct GstAudioResample" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct"/>
- <function name="The "filter-length" property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length"/>
- <function name="The "quality" property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp10290800"/>
- <function name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10294688"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10302144"/>
- <function name="struct GstAudioTestSrc" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"/>
- <function name="enum GstAudioTestSrcWave" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave"/>
- <function name="The "freq" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq"/>
- <function name="The "is-live" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--is-live"/>
- <function name="The "samplesperbuffer" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--samplesperbuffer"/>
- <function name="The "timestamp-offset" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--timestamp-offset"/>
- <function name="The "volume" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--volume"/>
- <function name="The "wave" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave"/>
- <function name="The "can-activate-pull" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull"/>
- <function name="The "can-activate-push" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-push"/>
- <function name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10403712"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10411120"/>
- <function name="struct GstCdParanoiaSrc" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-struct"/>
- <function name="The "generic-device" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--generic-device"/>
- <function name="The "paranoia-mode" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--paranoia-mode"/>
- <function name="The "read-speed" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--read-speed"/>
- <function name="The "search-overlap" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--search-overlap"/>
- <function name="The "cache-size" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--cache-size"/>
- <function name="The "transport-error" signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-transport-error"/>
- <function name="The "uncorrected-error" signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-uncorrected-error"/>
- <function name="Example launch lines" link="gst-plugins-base-plugins-clockoverlay.html#idp6583856"/>
- <function name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp6581168"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp6573712"/>
- <function name="struct GstClockOverlay" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct"/>
- <function name="The "time-format" property" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format"/>
- <function name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp5296880"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp5304336"/>
- <function name="struct GstDecodeBin" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-struct"/>
- <function name="The "threaded" property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--threaded"/>
- <function name="The "sink-caps" property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--sink-caps"/>
- <function name="The "new-decoded-pad" signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-new-decoded-pad"/>
- <function name="The "removed-decoded-pad" signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-removed-decoded-pad"/>
- <function name="The "unknown-type" signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-unknown-type"/>
- <function name="Element Information" link="gst-plugins-base-plugins-decodebin2.html#idp10887472"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-decodebin2.html#idp10894992"/>
- <function name="struct GstDecodeBin2" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-struct"/>
- <function name="The "caps" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--caps"/>
- <function name="The "subtitle-encoding" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--subtitle-encoding"/>
- <function name="The "sink-caps" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--sink-caps"/>
- <function name="The "high-percent" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--high-percent"/>
- <function name="The "low-percent" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--low-percent"/>
- <function name="The "max-size-buffers" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-buffers"/>
- <function name="The "max-size-bytes" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-bytes"/>
- <function name="The "max-size-time" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--max-size-time"/>
- <function name="The "use-buffering" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--use-buffering"/>
- <function name="The "post-stream-topology" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--post-stream-topology"/>
- <function name="The "expose-all-streams" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--expose-all-streams"/>
- <function name="The "autoplug-continue" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-continue"/>
- <function name="The "autoplug-sort" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-sort"/>
- <function name="The "new-decoded-pad" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-new-decoded-pad"/>
- <function name="The "removed-decoded-pad" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-removed-decoded-pad"/>
- <function name="The "unknown-type" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-unknown-type"/>
- <function name="The "autoplug-factories" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-factories"/>
- <function name="The "autoplug-select" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-select"/>
- <function name="The "drained" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-drained"/>
- <function name="Features" link="gst-plugins-base-plugins-encodebin.html#idp6809216"/>
- <function name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp11211984"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp11219392"/>
- <function name="GstEncodeBin" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-struct"/>
- <function name="The "audio-jitter-tolerance" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance"/>
- <function name="The "avoid-reencoding" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding"/>
- <function name="The "profile" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile"/>
- <function name="The "queue-buffers-max" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max"/>
- <function name="The "queue-bytes-max" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max"/>
- <function name="The "queue-time-max" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max"/>
- <function name="The "request-pad" signal" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10768768"/>
- <function name="Element Information" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10766048"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10758336"/>
- <function name="struct GstFFMpegCsp" link="gst-plugins-base-plugins-ffmpegcolorspace.html#GstFFMpegCsp-struct"/>
- <function name="" link="gst-plugins-base-plugins-gdpdepay.html#idp7288064"/>
- <function name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp6887008"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp6465872"/>
- <function name="struct GstGDPDepay" link="gst-plugins-base-plugins-gdpdepay.html#GstGDPDepay-struct"/>
- <function name="" link="gst-plugins-base-plugins-gdppay.html#idp7837536"/>
- <function name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp6322768"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp11401568"/>
- <function name="struct GstGDPPay" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay-struct"/>
- <function name="The "crc-header" property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-header"/>
- <function name="The "crc-payload" property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-payload"/>
- <function name="The "version" property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--version"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp11111376"/>
- <function name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp10531904"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp10539424"/>
- <function name="struct GstGioSink" link="gst-plugins-base-plugins-giosink.html#GstGioSink-struct"/>
- <function name="The "location" property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--location"/>
- <function name="The "file" property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--file"/>
- <function name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp11463456"/>
- <function name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp11468304"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11475824"/>
- <function name="struct GstGioSrc" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc-struct"/>
- <function name="The "location" property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--location"/>
- <function name="The "file" property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--file"/>
- <function name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp11498976"/>
- <function name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11503440"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11510848"/>
- <function name="struct GstGioStreamSink" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink-struct"/>
- <function name="The "stream" property" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink--stream"/>
- <function name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp11630736"/>
- <function name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp11635136"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp11537408"/>
- <function name="struct GstGioStreamSrc" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc-struct"/>
- <function name="The "stream" property" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream"/>
- <function name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssink.html#idp11679088"/>
- <function name="Element Information" link="gst-plugins-base-plugins-gnomevfssink.html#idp11683472"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-gnomevfssink.html#idp11690928"/>
- <function name="struct GstGnomeVFSSink" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-struct"/>
- <function name="The "handle" property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--handle"/>
- <function name="The "location" property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--location"/>
- <function name="The "uri" property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--uri"/>
- <function name="The "allow-overwrite" signal" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite"/>
- <function name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11778080"/>
- <function name="Element Information" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11782928"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11790448"/>
- <function name="struct GstGnomeVFSSrc" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc-struct"/>
- <function name="The "handle" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--handle"/>
- <function name="The "iradio-genre" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-genre"/>
- <function name="The "iradio-mode" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-mode"/>
- <function name="The "iradio-name" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-name"/>
- <function name="The "iradio-title" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-title"/>
- <function name="The "iradio-url" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-url"/>
- <function name="The "location" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--location"/>
- <function name="The "random-access" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--random-access"/>
- <function name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp12152560"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp12159968"/>
- <function name="struct GstMultiFdSink" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-struct"/>
- <function name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy"/>
- <function name="enum GstSyncMethod" link="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod"/>
- <function name="enum GstClientStatus" link="gst-plugins-base-plugins-multifdsink.html#GstClientStatus"/>
- <function name="enum GstTCPProtocol" link="gst-plugins-base-plugins-multifdsink.html#GstTCPProtocol"/>
- <function name="enum GstTCPUnitType" link="gst-plugins-base-plugins-multifdsink.html#GstTCPUnitType"/>
- <function name="The "buffers-max" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-max"/>
- <function name="The "buffers-queued" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-queued"/>
- <function name="The "buffers-soft-max" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-soft-max"/>
- <function name="The "bytes-served" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-served"/>
- <function name="The "bytes-to-serve" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-to-serve"/>
- <function name="The "mode" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--mode"/>
- <function name="The "protocol" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--protocol"/>
- <function name="The "recover-policy" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--recover-policy"/>
- <function name="The "sync-clients" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-clients"/>
- <function name="The "sync-method" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--sync-method"/>
- <function name="The "timeout" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--timeout"/>
- <function name="The "buffers-min" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--buffers-min"/>
- <function name="The "burst-unit" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-unit"/>
- <function name="The "burst-value" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--burst-value"/>
- <function name="The "bytes-min" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--bytes-min"/>
- <function name="The "time-min" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--time-min"/>
- <function name="The "unit-type" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--unit-type"/>
- <function name="The "units-max" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-max"/>
- <function name="The "units-soft-max" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--units-soft-max"/>
- <function name="The "qos-dscp" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--qos-dscp"/>
- <function name="The "handle-read" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--handle-read"/>
- <function name="The "resend-streamheader" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--resend-streamheader"/>
- <function name="The "num-fds" property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--num-fds"/>
- <function name="The "add" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add"/>
- <function name="The "clear" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-clear"/>
- <function name="The "client-added" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-added"/>
- <function name="The "client-removed" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-removed"/>
- <function name="The "get-stats" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-get-stats"/>
- <function name="The "remove" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove"/>
- <function name="The "client-fd-removed" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-fd-removed"/>
- <function name="The "add-full" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full"/>
- <function name="The "remove-flush" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-oggdemux.html#idp9282128"/>
- <function name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp7461456"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp5045200"/>
- <function name="struct GstOggDemux" link="gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-oggmux.html#idp11580192"/>
- <function name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp11578016"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp5957200"/>
- <function name="struct GstOggMux" link="gst-plugins-base-plugins-oggmux.html#GstOggMux-struct"/>
- <function name="The "max-delay" property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay"/>
- <function name="The "max-page-delay" property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay"/>
- <function name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12073328"/>
- <function name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12645456"/>
- <function name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12656016"/>
- <function name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12665680"/>
- <function name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12668448"/>
- <function name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12670416"/>
- <function name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12671840"/>
- <function name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12676736"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12684192"/>
- <function name="struct GstPlayBin" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-struct"/>
- <function name="The "audio-sink" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
- <function name="The "frame" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--frame"/>
- <function name="The "subtitle-font-desc" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--subtitle-font-desc"/>
- <function name="The "video-sink" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--video-sink"/>
- <function name="The "vis-plugin" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--vis-plugin"/>
- <function name="The "volume" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--volume"/>
- <function name="The "connection-speed" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--connection-speed"/>
- <function name="Usage" link="gst-plugins-base-plugins-playbin2.html#idp12984144"/>
- <function name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin2.html#idp13000256"/>
- <function name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin2.html#idp13010816"/>
- <function name="Buffering" link="gst-plugins-base-plugins-playbin2.html#idp13012928"/>
- <function name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin2.html#idp13015696"/>
- <function name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin2.html#idp13017664"/>
- <function name="Handling redirects" link="gst-plugins-base-plugins-playbin2.html#idp13019088"/>
- <function name="Examples" link="gst-plugins-base-plugins-playbin2.html#idp13020768"/>
- <function name="Element Information" link="gst-plugins-base-plugins-playbin2.html#idp13025664"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-playbin2.html#idp13033120"/>
- <function name="struct GstPlayBin2" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-struct"/>
- <function name="enum GstPlayFlags" link="gst-plugins-base-plugins-playbin2.html#GstPlayFlags"/>
- <function name="The "audio-sink" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--audio-sink"/>
- <function name="The "connection-speed" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--connection-speed"/>
- <function name="The "current-audio" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--current-audio"/>
- <function name="The "current-text" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--current-text"/>
- <function name="The "current-video" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--current-video"/>
- <function name="The "flags" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--flags"/>
- <function name="The "frame" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--frame"/>
- <function name="The "n-audio" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--n-audio"/>
- <function name="The "n-text" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--n-text"/>
- <function name="The "n-video" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--n-video"/>
- <function name="The "source" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--source"/>
- <function name="The "subtitle-encoding" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subtitle-encoding"/>
- <function name="The "subtitle-font-desc" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subtitle-font-desc"/>
- <function name="The "suburi" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--suburi"/>
- <function name="The "uri" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--uri"/>
- <function name="The "video-sink" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--video-sink"/>
- <function name="The "vis-plugin" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--vis-plugin"/>
- <function name="The "volume" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--volume"/>
- <function name="The "mute" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--mute"/>
- <function name="The "buffer-duration" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-duration"/>
- <function name="The "buffer-size" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--buffer-size"/>
- <function name="The "text-sink" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--text-sink"/>
- <function name="The "subpic-sink" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--subpic-sink"/>
- <function name="The "av-offset" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--av-offset"/>
- <function name="The "ring-buffer-max-size" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--ring-buffer-max-size"/>
- <function name="The "about-to-finish" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-about-to-finish"/>
- <function name="The "audio-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-audio-changed"/>
- <function name="The "get-audio-tags" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-audio-tags"/>
- <function name="The "get-text-tags" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-text-tags"/>
- <function name="The "get-video-tags" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-video-tags"/>
- <function name="The "text-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-text-changed"/>
- <function name="The "video-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-video-changed"/>
- <function name="The "convert-frame" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-convert-frame"/>
- <function name="The "get-audio-pad" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-audio-pad"/>
- <function name="The "get-text-pad" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-text-pad"/>
- <function name="The "get-video-pad" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-get-video-pad"/>
- <function name="The "audio-tags-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-audio-tags-changed"/>
- <function name="The "text-tags-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-text-tags-changed"/>
- <function name="The "video-tags-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-video-tags-changed"/>
- <function name="The "source-setup" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-source-setup"/>
- <function name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp7086800"/>
- <function name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp10635408"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp12392960"/>
- <function name="struct GstSubtitleOverlay" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay-struct"/>
- <function name="The "font-desc" property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc"/>
- <function name="The "silent" property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent"/>
- <function name="The "subtitle-encoding" property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12521392"/>
- <function name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12524112"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12440048"/>
- <function name="struct GstTCPClientSrc" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc-struct"/>
- <function name="The "host" property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host"/>
- <function name="The "port" property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port"/>
- <function name="The "protocol" property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp13183280"/>
- <function name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12497712"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp12505120"/>
- <function name="struct GstTCPClientSink" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink-struct"/>
- <function name="The "host" property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host"/>
- <function name="The "port" property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port"/>
- <function name="The "protocol" property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp13211120"/>
- <function name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp13213920"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp12573296"/>
- <function name="struct GstTCPServerSrc" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc-struct"/>
- <function name="The "host" property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host"/>
- <function name="The "port" property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
- <function name="The "protocol" property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13281472"/>
- <function name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13284224"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13291632"/>
- <function name="struct GstTCPServerSink" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink-struct"/>
- <function name="The "host" property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host"/>
- <function name="The "port" property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port"/>
- <function name="Example launch lines" link="gst-plugins-base-plugins-textoverlay.html#idp13316752"/>
- <function name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp6601408"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp9587280"/>
- <function name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
- <function name="enum GstTextOverlayVAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign"/>
- <function name="enum GstTextOverlayHAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign"/>
- <function name="enum GstTextOverlayWrapMode" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayWrapMode"/>
- <function name="The "deltax" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltax"/>
- <function name="The "deltay" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltay"/>
- <function name="The "font-desc" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--font-desc"/>
- <function name="The "halign" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--halign"/>
- <function name="The "shaded-background" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shaded-background"/>
- <function name="The "text" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--text"/>
- <function name="The "valign" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--valign"/>
- <function name="The "wrap-mode" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--wrap-mode"/>
- <function name="The "xpad" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpad"/>
- <function name="The "ypad" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypad"/>
- <function name="The "halignment" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--halignment"/>
- <function name="The "valignment" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--valignment"/>
- <function name="The "line-alignment" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--line-alignment"/>
- <function name="The "silent" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--silent"/>
- <function name="The "wait-text" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--wait-text"/>
- <function name="The "auto-resize" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--auto-resize"/>
- <function name="The "vertical-render" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--vertical-render"/>
- <function name="The "color" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color"/>
- <function name="The "xpos" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos"/>
- <function name="The "ypos" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos"/>
- <function name="Example launch lines" link="gst-plugins-base-plugins-textrender.html#idp6059632"/>
- <function name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp9372592"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp12613232"/>
- <function name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
- <function name="The "font-desc" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
- <function name="The "halignment" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
- <function name="The "line-alignment" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--line-alignment"/>
- <function name="The "valignment" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment"/>
- <function name="The "xpad" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad"/>
- <function name="The "ypad" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad"/>
- <function name="Example pipeline" link="gst-plugins-base-plugins-theoradec.html#idp9236448"/>
- <function name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp9481344"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13905472"/>
- <function name="struct GstTheoraDec" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct"/>
- <function name="The "crop" property" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop"/>
- <function name="Example pipeline" link="gst-plugins-base-plugins-theoraenc.html#idp14365920"/>
- <function name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14369280"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14376736"/>
- <function name="struct GstTheoraEnc" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct"/>
- <function name="enum GstTheoraEncBorderMode" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode"/>
- <function name="The "bitrate" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate"/>
- <function name="The "border" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border"/>
- <function name="The "center" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--center"/>
- <function name="The "keyframe-auto" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-auto"/>
- <function name="The "keyframe-force" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-force"/>
- <function name="The "keyframe-freq" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-freq"/>
- <function name="The "keyframe-mindistance" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-mindistance"/>
- <function name="The "keyframe-threshold" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--keyframe-threshold"/>
- <function name="The "noise-sensitivity" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--noise-sensitivity"/>
- <function name="The "quality" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--quality"/>
- <function name="The "quick" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--quick"/>
- <function name="The "sharpness" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--sharpness"/>
- <function name="The "speed-level" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--speed-level"/>
- <function name="The "cap-overflow" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--cap-overflow"/>
- <function name="The "cap-underflow" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--cap-underflow"/>
- <function name="The "drop-frames" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--drop-frames"/>
- <function name="The "rate-buffer" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--rate-buffer"/>
- <function name="The "vp3-compatible" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible"/>
- <function name="The "multipass-cache-file" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file"/>
- <function name="The "multipass-mode" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-theoraparse.html#idp6468032"/>
- <function name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idm18688"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp13526480"/>
- <function name="struct GstTheoraParse" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct"/>
- <function name="The "synchronization-points" property" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points"/>
- <function name="" link="gst-plugins-base-plugins-timeoverlay.html#idp14194400"/>
- <function name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp14192224"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp13857408"/>
- <function name="struct GstTimeOverlay" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct"/>
- <function name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14708752"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14716208"/>
- <function name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
- <function name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
- <function name="The "uri" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--uri"/>
- <function name="The "connection-speed" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--connection-speed"/>
- <function name="The "caps" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--caps"/>
- <function name="The "subtitle-encoding" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--subtitle-encoding"/>
- <function name="The "source" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--source"/>
- <function name="The "buffer-duration" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration"/>
- <function name="The "buffer-size" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-size"/>
- <function name="The "download" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--download"/>
- <function name="The "use-buffering" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--use-buffering"/>
- <function name="The "expose-all-streams" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--expose-all-streams"/>
- <function name="The "ring-buffer-max-size" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--ring-buffer-max-size"/>
- <function name="The "autoplug-continue" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-continue"/>
- <function name="The "autoplug-factories" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-factories"/>
- <function name="The "autoplug-select" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-select"/>
- <function name="The "unknown-type" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-unknown-type"/>
- <function name="The "drained" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained"/>
- <function name="The "autoplug-sort" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort"/>
- <function name="The "source-setup" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp8830336"/>
- <function name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp6062432"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14163520"/>
- <function name="struct GstVideoRate" link="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct"/>
- <function name="The "drop" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop"/>
- <function name="The "duplicate" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate"/>
- <function name="The "in" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--in"/>
- <function name="The "new-pref" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--new-pref"/>
- <function name="The "out" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--out"/>
- <function name="The "silent" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent"/>
- <function name="The "skip-to-first" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp15315136"/>
- <function name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp15311504"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp15302912"/>
- <function name="struct GstVideoScale" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale-struct"/>
- <function name="enum GstVideoScaleMethod" link="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod"/>
- <function name="The "method" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method"/>
- <function name="The "add-borders" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15490528"/>
- <function name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15488160"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15479360"/>
- <function name="struct GstVideoTestSrc" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc-struct"/>
- <function name="enum GstVideoTestSrcPattern" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern"/>
- <function name="enum GstVideoTestSrcColorSpec" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec"/>
- <function name="The "pattern" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--pattern"/>
- <function name="The "timestamp-offset" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--timestamp-offset"/>
- <function name="The "is-live" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--is-live"/>
- <function name="The "peer-alloc" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--peer-alloc"/>
- <function name="The "colorspec" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--colorspec"/>
- <function name="The "k0" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--k0"/>
- <function name="The "kt" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt"/>
- <function name="The "kt2" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kt2"/>
- <function name="The "kx" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kx"/>
- <function name="The "kx2" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kx2"/>
- <function name="The "kxt" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kxt"/>
- <function name="The "kxy" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kxy"/>
- <function name="The "ky" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--ky"/>
- <function name="The "ky2" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--ky2"/>
- <function name="The "kyt" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--kyt"/>
- <function name="The "xoffset" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--xoffset"/>
- <function name="The "yoffset" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--yoffset"/>
- <function name="The "background-color" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color"/>
- <function name="The "foreground-color" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--foreground-color"/>
- <function name="The "horizontal-speed" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--horizontal-speed"/>
- <function name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp15336800"/>
- <function name="Element Information" link="gst-plugins-base-plugins-volume.html#idp6725840"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp13916672"/>
- <function name="struct GstVolume" link="gst-plugins-base-plugins-volume.html#GstVolume-struct"/>
- <function name="The "mute" property" link="gst-plugins-base-plugins-volume.html#GstVolume--mute"/>
- <function name="The "volume" property" link="gst-plugins-base-plugins-volume.html#GstVolume--volume"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-vorbisdec.html#idp9378016"/>
- <function name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp8007488"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp15561504"/>
- <function name="struct GstVorbisDec" link="gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-vorbisenc.html#idp15009216"/>
- <function name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15013472"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp15020880"/>
- <function name="struct GstVorbisEnc" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc-struct"/>
- <function name="The "bitrate" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate"/>
- <function name="The "last-message" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message"/>
- <function name="The "managed" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--managed"/>
- <function name="The "max-bitrate" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate"/>
- <function name="The "min-bitrate" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate"/>
- <function name="The "quality" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-vorbisparse.html#idp7959088"/>
- <function name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp10657648"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp14996624"/>
- <function name="struct GstVorbisParse" link="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct"/>
- <function name="Example pipelines" link="gst-plugins-base-plugins-vorbistag.html#idp9228848"/>
- <function name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp8789296"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp14668272"/>
- <function name="struct GstVorbisTag" link="gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct"/>
- <function name="Scaling" link="gst-plugins-base-plugins-ximagesink.html#idp15989760"/>
- <function name="Events" link="gst-plugins-base-plugins-ximagesink.html#idp15992704"/>
- <function name="Pixel aspect ratio" link="gst-plugins-base-plugins-ximagesink.html#idp15994688"/>
- <function name="Examples" link="gst-plugins-base-plugins-ximagesink.html#idp15998368"/>
- <function name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp16003856"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp16011312"/>
- <function name="struct GstXImageSink" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink-struct"/>
- <function name="The "display" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display"/>
- <function name="The "pixel-aspect-ratio" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio"/>
- <function name="The "synchronous" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--synchronous"/>
- <function name="The "force-aspect-ratio" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio"/>
- <function name="The "handle-events" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-events"/>
- <function name="The "handle-expose" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose"/>
- <function name="The "window-height" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height"/>
- <function name="The "window-width" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width"/>
- <function name="Scaling" link="gst-plugins-base-plugins-xvimagesink.html#idp16288528"/>
- <function name="Events" link="gst-plugins-base-plugins-xvimagesink.html#idp16291104"/>
- <function name="Pixel aspect ratio" link="gst-plugins-base-plugins-xvimagesink.html#idp16293088"/>
- <function name="Examples" link="gst-plugins-base-plugins-xvimagesink.html#idp16296736"/>
- <function name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16304880"/>
- <function name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16312336"/>
- <function name="struct GstXvImageSink" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink-struct"/>
- <function name="The "brightness" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness"/>
- <function name="The "contrast" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--contrast"/>
- <function name="The "display" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--display"/>
- <function name="The "hue" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--hue"/>
- <function name="The "pixel-aspect-ratio" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--pixel-aspect-ratio"/>
- <function name="The "saturation" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--saturation"/>
- <function name="The "synchronous" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--synchronous"/>
- <function name="The "force-aspect-ratio" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio"/>
- <function name="The "device" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--device"/>
- <function name="The "device-name" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--device-name"/>
- <function name="The "handle-events" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--handle-events"/>
- <function name="The "double-buffer" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--double-buffer"/>
- <function name="The "handle-expose" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--handle-expose"/>
- <function name="The "autopaint-colorkey" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--autopaint-colorkey"/>
- <function name="The "colorkey" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--colorkey"/>
- <function name="The "draw-borders" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--draw-borders"/>
- <function name="The "window-height" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-height"/>
- <function name="The "window-width" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--window-width"/>
- <function name="struct GstPlayBaseBin" link="GstPlayBaseBin.html#GstPlayBaseBin-struct"/>
- <function name="The "connection-speed" property" link="GstPlayBaseBin.html#GstPlayBaseBin--connection-speed"/>
- <function name="The "current-audio" property" link="GstPlayBaseBin.html#GstPlayBaseBin--current-audio"/>
- <function name="The "current-text" property" link="GstPlayBaseBin.html#GstPlayBaseBin--current-text"/>
- <function name="The "current-video" property" link="GstPlayBaseBin.html#GstPlayBaseBin--current-video"/>
- <function name="The "nstreams" property" link="GstPlayBaseBin.html#GstPlayBaseBin--nstreams"/>
- <function name="The "queue-min-threshold" property" link="GstPlayBaseBin.html#GstPlayBaseBin--queue-min-threshold"/>
- <function name="The "queue-size" property" link="GstPlayBaseBin.html#GstPlayBaseBin--queue-size"/>
- <function name="The "queue-threshold" property" link="GstPlayBaseBin.html#GstPlayBaseBin--queue-threshold"/>
- <function name="The "source" property" link="GstPlayBaseBin.html#GstPlayBaseBin--source"/>
- <function name="The "stream-info" property" link="GstPlayBaseBin.html#GstPlayBaseBin--stream-info"/>
- <function name="The "stream-info-value-array" property" link="GstPlayBaseBin.html#GstPlayBaseBin--stream-info-value-array"/>
- <function name="The "subtitle-encoding" property" link="GstPlayBaseBin.html#GstPlayBaseBin--subtitle-encoding"/>
- <function name="The "suburi" property" link="GstPlayBaseBin.html#GstPlayBaseBin--suburi"/>
- <function name="The "uri" property" link="GstPlayBaseBin.html#GstPlayBaseBin--uri"/>
- </functions>
-</book>
</sub>
</chapters>
<functions>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idp4775216"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idp4772432"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idp7769952"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-adder.html#idm11744"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-adder.html#idm14528"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-adder.html#idp7769280"/>
<keyword type="struct" name="struct GstAdder" link="gst-plugins-base-plugins-adder.html#GstAdder-struct"/>
<keyword type="property" name="The "caps" property" link="gst-plugins-base-plugins-adder.html#GstAdder--caps"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp5517840"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp5525328"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsrc.html#idp8801728"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsrc.html#idp8809136"/>
<keyword type="struct" name="struct GstAppSrc" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"/>
<keyword type="property" name="The "block" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block"/>
<keyword type="property" name="The "caps" property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps"/>
<keyword type="signal" name="The "need-data" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
<keyword type="signal" name="The "push-buffer" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-push-buffer"/>
<keyword type="signal" name="The "seek-data" signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-seek-data"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9669776"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9677184"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-appsink.html#idp9575968"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-appsink.html#idp9583376"/>
<keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
<keyword type="property" name="The "caps" property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--caps"/>
<keyword type="property" name="The "drop" property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--drop"/>
<keyword type="signal" name="The "pull-preroll" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-preroll"/>
<keyword type="signal" name="The "new-buffer-list" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-buffer-list"/>
<keyword type="signal" name="The "pull-buffer-list" signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-buffer-list"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp9594784"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp9602240"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsamixer.html#idp7095728"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsamixer.html#idp7103184"/>
<keyword type="struct" name="struct GstAlsaMixerElement" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement-struct"/>
<keyword type="property" name="The "device" property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device"/>
<keyword type="property" name="The "device-name" property" link="gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-alsasink.html#idp6507408"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp7524000"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp7531456"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasink.html#idp6692992"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasink.html#idp9721504"/>
<keyword type="struct" name="struct GstAlsaSink" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink-struct"/>
<keyword type="property" name="The "device" property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
<keyword type="property" name="The "device-name" property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name"/>
<keyword type="property" name="The "card-name" property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-alsasrc.html#idp8699328"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp8702512"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9886976"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-alsasrc.html#idp4783184"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-alsasrc.html#idp9856432"/>
<keyword type="struct" name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
<keyword type="property" name="The "device" property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
<keyword type="property" name="The "device-name" property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
<keyword type="property" name="The "card-name" property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp9937248"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp7421920"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp7007232"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioconvert.html#idp9950880"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioconvert.html#idp6613792"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioconvert.html#idp5527392"/>
<keyword type="struct" name="struct GstAudioConvert" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert-struct"/>
<keyword type="enum" name="enum GstAudioConvertDithering" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertDithering"/>
<keyword type="enum" name="enum GstAudioConvertNoiseShaping" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvertNoiseShaping"/>
<keyword type="property" name="The "dithering" property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--dithering"/>
<keyword type="property" name="The "noise-shaping" property" link="gst-plugins-base-plugins-audioconvert.html#GstAudioConvert--noise-shaping"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp10131792"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10134512"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10141968"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-audiorate.html#idp10065952"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiorate.html#idp10068672"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiorate.html#idp10076128"/>
<keyword type="struct" name="struct GstAudioRate" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate-struct"/>
<keyword type="property" name="The "add" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--add"/>
<keyword type="property" name="The "drop" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--drop"/>
<keyword type="property" name="The "silent" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--silent"/>
<keyword type="property" name="The "tolerance" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--tolerance"/>
<keyword type="property" name="The "skip-to-first" property" link="gst-plugins-base-plugins-audiorate.html#GstAudioRate--skip-to-first"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp9934288"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp9932064"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp7787632"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audioresample.html#idp8557472"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audioresample.html#idp8555248"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audioresample.html#idp6067952"/>
<keyword type="struct" name="struct GstAudioResample" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct"/>
<keyword type="property" name="The "filter-length" property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--filter-length"/>
<keyword type="property" name="The "quality" property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp10290800"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10294688"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10302144"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-audiotestsrc.html#idp10528400"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-audiotestsrc.html#idp10222736"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-audiotestsrc.html#idp10230192"/>
<keyword type="struct" name="struct GstAudioTestSrc" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"/>
<keyword type="enum" name="enum GstAudioTestSrcWave" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave"/>
<keyword type="property" name="The "freq" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq"/>
<keyword type="property" name="The "wave" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--wave"/>
<keyword type="property" name="The "can-activate-pull" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull"/>
<keyword type="property" name="The "can-activate-push" property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-push"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10403712"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10411120"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10447776"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-cdparanoiasrc.html#idp10455184"/>
<keyword type="struct" name="struct GstCdParanoiaSrc" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-struct"/>
<keyword type="property" name="The "generic-device" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--generic-device"/>
<keyword type="property" name="The "paranoia-mode" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--paranoia-mode"/>
<keyword type="property" name="The "cache-size" property" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc--cache-size"/>
<keyword type="signal" name="The "transport-error" signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-transport-error"/>
<keyword type="signal" name="The "uncorrected-error" signal" link="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc-uncorrected-error"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-clockoverlay.html#idp6583856"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp6581168"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp6573712"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-clockoverlay.html#idp10410336"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-clockoverlay.html#idp10403552"/>
<keyword type="struct" name="struct GstClockOverlay" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct"/>
<keyword type="property" name="The "time-format" property" link="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp5296880"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp5304336"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin.html#idp10626496"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin.html#idp10633952"/>
<keyword type="struct" name="struct GstDecodeBin" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-struct"/>
<keyword type="property" name="The "threaded" property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--threaded"/>
<keyword type="property" name="The "sink-caps" property" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin--sink-caps"/>
<keyword type="signal" name="The "new-decoded-pad" signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-new-decoded-pad"/>
<keyword type="signal" name="The "removed-decoded-pad" signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-removed-decoded-pad"/>
<keyword type="signal" name="The "unknown-type" signal" link="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-unknown-type"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin2.html#idp10887472"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin2.html#idp10894992"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-decodebin2.html#idp10756320"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-decodebin2.html#idp10763840"/>
<keyword type="struct" name="struct GstDecodeBin2" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-struct"/>
<keyword type="property" name="The "caps" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--caps"/>
<keyword type="property" name="The "subtitle-encoding" property" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2--subtitle-encoding"/>
<keyword type="signal" name="The "autoplug-factories" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-factories"/>
<keyword type="signal" name="The "autoplug-select" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-autoplug-select"/>
<keyword type="signal" name="The "drained" signal" link="gst-plugins-base-plugins-decodebin2.html#GstDecodeBin2-drained"/>
- <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp6809216"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp11211984"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp11219392"/>
+ <keyword type="" name="Features" link="gst-plugins-base-plugins-encodebin.html#idp7547488"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-encodebin.html#idp5633232"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-encodebin.html#idp5640640"/>
<keyword type="struct" name="GstEncodeBin" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-struct"/>
<keyword type="property" name="The "audio-jitter-tolerance" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--audio-jitter-tolerance"/>
<keyword type="property" name="The "avoid-reencoding" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--avoid-reencoding"/>
<keyword type="property" name="The "queue-buffers-max" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max"/>
<keyword type="property" name="The "queue-bytes-max" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max"/>
<keyword type="property" name="The "queue-time-max" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max"/>
+ <keyword type="property" name="The "flags" property" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags"/>
<keyword type="signal" name="The "request-pad" signal" link="gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10768768"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10766048"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp10758336"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp8758528"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp8756320"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ffmpegcolorspace.html#idp8748608"/>
<keyword type="struct" name="struct GstFFMpegCsp" link="gst-plugins-base-plugins-ffmpegcolorspace.html#GstFFMpegCsp-struct"/>
- <keyword type="" name="" link="gst-plugins-base-plugins-gdpdepay.html#idp7288064"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp6887008"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp6465872"/>
+ <keyword type="" name="" link="gst-plugins-base-plugins-gdpdepay.html#idp5432624"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdpdepay.html#idp9410320"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdpdepay.html#idp8532512"/>
<keyword type="struct" name="struct GstGDPDepay" link="gst-plugins-base-plugins-gdpdepay.html#GstGDPDepay-struct"/>
- <keyword type="" name="" link="gst-plugins-base-plugins-gdppay.html#idp7837536"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp6322768"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp11401568"/>
+ <keyword type="" name="" link="gst-plugins-base-plugins-gdppay.html#idp9711888"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gdppay.html#idp7115488"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gdppay.html#idp11021744"/>
<keyword type="struct" name="struct GstGDPPay" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay-struct"/>
<keyword type="property" name="The "crc-header" property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-header"/>
<keyword type="property" name="The "crc-payload" property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--crc-payload"/>
<keyword type="property" name="The "version" property" link="gst-plugins-base-plugins-gdppay.html#GstGDPPay--version"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-giosink.html#idp11111376"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp10531904"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp10539424"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosink.html#idp11203328"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosink.html#idp11489664"/>
<keyword type="struct" name="struct GstGioSink" link="gst-plugins-base-plugins-giosink.html#GstGioSink-struct"/>
<keyword type="property" name="The "location" property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--location"/>
<keyword type="property" name="The "file" property" link="gst-plugins-base-plugins-giosink.html#GstGioSink--file"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-giosrc.html#idp11463456"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp11468304"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11475824"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giosrc.html#idp11039536"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giosrc.html#idp11093520"/>
<keyword type="struct" name="struct GstGioSrc" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc-struct"/>
<keyword type="property" name="The "location" property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--location"/>
<keyword type="property" name="The "file" property" link="gst-plugins-base-plugins-giosrc.html#GstGioSrc--file"/>
- <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsink.html#idp11498976"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11503440"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11510848"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsink.html#idp11743776"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsink.html#idp11046784"/>
<keyword type="struct" name="struct GstGioStreamSink" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink-struct"/>
<keyword type="property" name="The "stream" property" link="gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink--stream"/>
- <keyword type="" name="Example code" link="gst-plugins-base-plugins-giostreamsrc.html#idp11630736"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp11635136"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp11537408"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-giostreamsrc.html#idp5514880"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-giostreamsrc.html#idp10976752"/>
<keyword type="struct" name="struct GstGioStreamSrc" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc-struct"/>
<keyword type="property" name="The "stream" property" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssink.html#idp11679088"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssink.html#idp11683472"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssink.html#idp11690928"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssink.html#idp11435584"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssink.html#idp11710784"/>
<keyword type="struct" name="struct GstGnomeVFSSink" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-struct"/>
<keyword type="property" name="The "handle" property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--handle"/>
<keyword type="property" name="The "location" property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--location"/>
<keyword type="property" name="The "uri" property" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--uri"/>
<keyword type="signal" name="The "allow-overwrite" signal" link="gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11778080"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11782928"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11790448"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11375920"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-gnomevfssrc.html#idp11650544"/>
<keyword type="struct" name="struct GstGnomeVFSSrc" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc-struct"/>
<keyword type="property" name="The "handle" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--handle"/>
<keyword type="property" name="The "iradio-genre" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-genre"/>
<keyword type="property" name="The "iradio-url" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-url"/>
<keyword type="property" name="The "location" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--location"/>
<keyword type="property" name="The "random-access" property" link="gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--random-access"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp12152560"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp12159968"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-multifdsink.html#idp12022864"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-multifdsink.html#idp12030272"/>
<keyword type="struct" name="struct GstMultiFdSink" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-struct"/>
<keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy"/>
<keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod"/>
<keyword type="signal" name="The "client-fd-removed" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-client-fd-removed"/>
<keyword type="signal" name="The "add-full" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full"/>
<keyword type="signal" name="The "remove-flush" signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-oggdemux.html#idp9282128"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp7461456"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp5045200"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggdemux.html#idp5542432"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggdemux.html#idp10334672"/>
<keyword type="struct" name="struct GstOggDemux" link="gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-oggmux.html#idp11580192"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp11578016"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp5957200"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-oggmux.html#idp11180832"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-oggmux.html#idp12591488"/>
<keyword type="struct" name="struct GstOggMux" link="gst-plugins-base-plugins-oggmux.html#GstOggMux-struct"/>
<keyword type="property" name="The "max-delay" property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay"/>
<keyword type="property" name="The "max-page-delay" property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay"/>
- <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12073328"/>
- <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12645456"/>
- <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12656016"/>
- <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12665680"/>
- <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12668448"/>
- <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12670416"/>
- <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12671840"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12676736"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12684192"/>
+ <keyword type="property" name="The "max-tolerance" property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance"/>
+ <keyword type="property" name="The "skeleton" property" link="gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton"/>
+ <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin.html#idp12513120"/>
+ <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin.html#idp12529232"/>
+ <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin.html#idp12539792"/>
+ <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin.html#idp12549456"/>
+ <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin.html#idp12552224"/>
+ <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin.html#idp12554192"/>
+ <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin.html#idp12555616"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin.html#idp12560512"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin.html#idp12567968"/>
<keyword type="struct" name="struct GstPlayBin" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-struct"/>
<keyword type="property" name="The "audio-sink" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
<keyword type="property" name="The "frame" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--frame"/>
<keyword type="property" name="The "vis-plugin" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--vis-plugin"/>
<keyword type="property" name="The "volume" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--volume"/>
<keyword type="property" name="The "connection-speed" property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--connection-speed"/>
- <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin2.html#idp12984144"/>
- <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin2.html#idp13000256"/>
- <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin2.html#idp13010816"/>
- <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin2.html#idp13012928"/>
- <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin2.html#idp13015696"/>
- <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin2.html#idp13017664"/>
- <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin2.html#idp13019088"/>
- <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin2.html#idp13020768"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin2.html#idp13025664"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin2.html#idp13033120"/>
+ <keyword type="" name="Usage" link="gst-plugins-base-plugins-playbin2.html#idp12868672"/>
+ <keyword type="" name="Advanced Usage: specifying the audio and video sink" link="gst-plugins-base-plugins-playbin2.html#idp12884784"/>
+ <keyword type="" name="Retrieving Tags and Other Meta Data" link="gst-plugins-base-plugins-playbin2.html#idp12895344"/>
+ <keyword type="" name="Buffering" link="gst-plugins-base-plugins-playbin2.html#idp12897456"/>
+ <keyword type="" name="Embedding the video window in your application" link="gst-plugins-base-plugins-playbin2.html#idp12900224"/>
+ <keyword type="" name="Specifying which CD/DVD device to use" link="gst-plugins-base-plugins-playbin2.html#idp12902192"/>
+ <keyword type="" name="Handling redirects" link="gst-plugins-base-plugins-playbin2.html#idp12903616"/>
+ <keyword type="" name="Examples" link="gst-plugins-base-plugins-playbin2.html#idp12905296"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-playbin2.html#idp12910192"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-playbin2.html#idp12917648"/>
<keyword type="struct" name="struct GstPlayBin2" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-struct"/>
<keyword type="enum" name="enum GstPlayFlags" link="gst-plugins-base-plugins-playbin2.html#GstPlayFlags"/>
<keyword type="property" name="The "audio-sink" property" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2--audio-sink"/>
<keyword type="signal" name="The "text-tags-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-text-tags-changed"/>
<keyword type="signal" name="The "video-tags-changed" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-video-tags-changed"/>
<keyword type="signal" name="The "source-setup" signal" link="gst-plugins-base-plugins-playbin2.html#GstPlayBin2-source-setup"/>
- <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp7086800"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp10635408"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp12392960"/>
+ <keyword type="" name="Examples" link="gst-plugins-base-plugins-subtitleoverlay.html#idp9764400"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-subtitleoverlay.html#idp6545120"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-subtitleoverlay.html#idp13490496"/>
<keyword type="struct" name="struct GstSubtitleOverlay" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay-struct"/>
<keyword type="property" name="The "font-desc" property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--font-desc"/>
<keyword type="property" name="The "silent" property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--silent"/>
<keyword type="property" name="The "subtitle-encoding" property" link="gst-plugins-base-plugins-subtitleoverlay.html#GstSubtitleOverlay--subtitle-encoding"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12521392"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12524112"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp12440048"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11884512"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11887184"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsrc.html#idp11894592"/>
<keyword type="struct" name="struct GstTCPClientSrc" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc-struct"/>
<keyword type="property" name="The "host" property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--host"/>
<keyword type="property" name="The "port" property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--port"/>
<keyword type="property" name="The "protocol" property" link="gst-plugins-base-plugins-tcpclientsrc.html#GstTCPClientSrc--protocol"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp13183280"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp12497712"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp12505120"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpclientsink.html#idp13086320"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpclientsink.html#idp13088944"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpclientsink.html#idp13063600"/>
<keyword type="struct" name="struct GstTCPClientSink" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink-struct"/>
<keyword type="property" name="The "host" property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--host"/>
<keyword type="property" name="The "port" property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--port"/>
<keyword type="property" name="The "protocol" property" link="gst-plugins-base-plugins-tcpclientsink.html#GstTCPClientSink--protocol"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp13211120"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp13213920"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp12573296"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversrc.html#idp12360272"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversrc.html#idp12363072"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversrc.html#idp12370480"/>
<keyword type="struct" name="struct GstTCPServerSrc" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc-struct"/>
<keyword type="property" name="The "host" property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--host"/>
<keyword type="property" name="The "port" property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
<keyword type="property" name="The "protocol" property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--protocol"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13281472"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13284224"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13291632"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-tcpserversink.html#idp13217536"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-tcpserversink.html#idp13220288"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-tcpserversink.html#idp13227696"/>
<keyword type="struct" name="struct GstTCPServerSink" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink-struct"/>
<keyword type="property" name="The "host" property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--host"/>
<keyword type="property" name="The "port" property" link="gst-plugins-base-plugins-tcpserversink.html#GstTCPServerSink--port"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-textoverlay.html#idp13316752"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp6601408"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp9587280"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textoverlay.html#idp13778336"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textoverlay.html#idp12277856"/>
<keyword type="struct" name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
<keyword type="enum" name="enum GstTextOverlayVAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign"/>
<keyword type="enum" name="enum GstTextOverlayHAlign" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign"/>
<keyword type="property" name="The "color" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color"/>
<keyword type="property" name="The "xpos" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos"/>
<keyword type="property" name="The "ypos" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos"/>
- <keyword type="" name="Example launch lines" link="gst-plugins-base-plugins-textrender.html#idp6059632"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp9372592"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp12613232"/>
+ <keyword type="property" name="The "outline-color" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--outline-color"/>
+ <keyword type="property" name="The "shadow" property" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shadow"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-textrender.html#idp8494000"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-textrender.html#idp13210432"/>
<keyword type="struct" name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
<keyword type="property" name="The "font-desc" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
<keyword type="property" name="The "halignment" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
<keyword type="property" name="The "valignment" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment"/>
<keyword type="property" name="The "xpad" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--xpad"/>
<keyword type="property" name="The "ypad" property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--ypad"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-base-plugins-theoradec.html#idp9236448"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp9481344"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp13905472"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoradec.html#idp8405856"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoradec.html#idp7711168"/>
<keyword type="struct" name="struct GstTheoraDec" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct"/>
<keyword type="property" name="The "crop" property" link="gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop"/>
- <keyword type="" name="Example pipeline" link="gst-plugins-base-plugins-theoraenc.html#idp14365920"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14369280"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14376736"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraenc.html#idp14220288"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraenc.html#idp14227744"/>
<keyword type="struct" name="struct GstTheoraEnc" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct"/>
<keyword type="enum" name="enum GstTheoraEncBorderMode" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode"/>
<keyword type="property" name="The "bitrate" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate"/>
<keyword type="property" name="The "vp3-compatible" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible"/>
<keyword type="property" name="The "multipass-cache-file" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file"/>
<keyword type="property" name="The "multipass-mode" property" link="gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-theoraparse.html#idp6468032"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idm18688"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp13526480"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-theoraparse.html#idp6266352"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-theoraparse.html#idp7342592"/>
<keyword type="struct" name="struct GstTheoraParse" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct"/>
<keyword type="property" name="The "synchronization-points" property" link="gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points"/>
- <keyword type="" name="" link="gst-plugins-base-plugins-timeoverlay.html#idp14194400"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp14192224"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp13857408"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-timeoverlay.html#idp14026048"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-timeoverlay.html#idp14018464"/>
<keyword type="struct" name="struct GstTimeOverlay" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14708752"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14716208"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-uridecodebin.html#idp14538000"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-uridecodebin.html#idp14545456"/>
<keyword type="struct" name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
<keyword type="enum" name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
<keyword type="property" name="The "uri" property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--uri"/>
<keyword type="signal" name="The "drained" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-drained"/>
<keyword type="signal" name="The "autoplug-sort" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-sort"/>
<keyword type="signal" name="The "source-setup" signal" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-source-setup"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp8830336"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp6062432"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14163520"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videorate.html#idp14912624"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videorate.html#idp14917040"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videorate.html#idp14924496"/>
<keyword type="struct" name="struct GstVideoRate" link="gst-plugins-base-plugins-videorate.html#GstVideoRate-struct"/>
<keyword type="property" name="The "drop" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop"/>
<keyword type="property" name="The "duplicate" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--duplicate"/>
<keyword type="property" name="The "out" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--out"/>
<keyword type="property" name="The "silent" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--silent"/>
<keyword type="property" name="The "skip-to-first" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp15315136"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp15311504"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp15302912"/>
+ <keyword type="property" name="The "average-period" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period"/>
+ <keyword type="property" name="The "drop-only" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only"/>
+ <keyword type="property" name="The "force-fps" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--force-fps"/>
+ <keyword type="property" name="The "max-rate" property" link="gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate"/>
+ <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-videoscale.html#idp14852496"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videoscale.html#idp14848880"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videoscale.html#idp14841968"/>
<keyword type="struct" name="struct GstVideoScale" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale-struct"/>
<keyword type="enum" name="enum GstVideoScaleMethod" link="gst-plugins-base-plugins-videoscale.html#GstVideoScaleMethod"/>
<keyword type="property" name="The "method" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--method"/>
<keyword type="property" name="The "add-borders" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15490528"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15488160"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15479360"/>
+ <keyword type="property" name="The "dither" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--dither"/>
+ <keyword type="property" name="The "envelope" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope"/>
+ <keyword type="property" name="The "sharpen" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen"/>
+ <keyword type="property" name="The "sharpness" property" link="gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-videotestsrc.html#idp15476256"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-videotestsrc.html#idp15473888"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-videotestsrc.html#idp15465088"/>
<keyword type="struct" name="struct GstVideoTestSrc" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc-struct"/>
<keyword type="enum" name="enum GstVideoTestSrcPattern" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcPattern"/>
<keyword type="enum" name="enum GstVideoTestSrcColorSpec" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrcColorSpec"/>
<keyword type="property" name="The "background-color" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--background-color"/>
<keyword type="property" name="The "foreground-color" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--foreground-color"/>
<keyword type="property" name="The "horizontal-speed" property" link="gst-plugins-base-plugins-videotestsrc.html#GstVideoTestSrc--horizontal-speed"/>
- <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp15336800"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp6725840"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp13916672"/>
+ <keyword type="" name="Example launch line" link="gst-plugins-base-plugins-volume.html#idp5784592"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-volume.html#idp6771392"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-volume.html#idp9320000"/>
<keyword type="struct" name="struct GstVolume" link="gst-plugins-base-plugins-volume.html#GstVolume-struct"/>
<keyword type="property" name="The "mute" property" link="gst-plugins-base-plugins-volume.html#GstVolume--mute"/>
<keyword type="property" name="The "volume" property" link="gst-plugins-base-plugins-volume.html#GstVolume--volume"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbisdec.html#idp9378016"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp8007488"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp15561504"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisdec.html#idp9506784"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisdec.html#idp10364544"/>
<keyword type="struct" name="struct GstVorbisDec" link="gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbisenc.html#idp15009216"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15013472"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp15020880"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisenc.html#idp15533792"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisenc.html#idp15550768"/>
<keyword type="struct" name="struct GstVorbisEnc" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc-struct"/>
<keyword type="property" name="The "bitrate" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--bitrate"/>
<keyword type="property" name="The "last-message" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--last-message"/>
<keyword type="property" name="The "max-bitrate" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate"/>
<keyword type="property" name="The "min-bitrate" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate"/>
<keyword type="property" name="The "quality" property" link="gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbisparse.html#idp7959088"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp10657648"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp14996624"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbisparse.html#idp12296176"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbisparse.html#idp9306656"/>
<keyword type="struct" name="struct GstVorbisParse" link="gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct"/>
- <keyword type="" name="Example pipelines" link="gst-plugins-base-plugins-vorbistag.html#idp9228848"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp8789296"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp14668272"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-vorbistag.html#idp8217872"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-vorbistag.html#idp6805408"/>
<keyword type="struct" name="struct GstVorbisTag" link="gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct"/>
- <keyword type="" name="Scaling" link="gst-plugins-base-plugins-ximagesink.html#idp15989760"/>
- <keyword type="" name="Events" link="gst-plugins-base-plugins-ximagesink.html#idp15992704"/>
- <keyword type="" name="Pixel aspect ratio" link="gst-plugins-base-plugins-ximagesink.html#idp15994688"/>
- <keyword type="" name="Examples" link="gst-plugins-base-plugins-ximagesink.html#idp15998368"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp16003856"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp16011312"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-ximagesink.html#idp14442752"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-ximagesink.html#idp14450208"/>
<keyword type="struct" name="struct GstXImageSink" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink-struct"/>
<keyword type="property" name="The "display" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display"/>
<keyword type="property" name="The "pixel-aspect-ratio" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio"/>
<keyword type="property" name="The "handle-expose" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--handle-expose"/>
<keyword type="property" name="The "window-height" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-height"/>
<keyword type="property" name="The "window-width" property" link="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--window-width"/>
- <keyword type="" name="Scaling" link="gst-plugins-base-plugins-xvimagesink.html#idp16288528"/>
- <keyword type="" name="Events" link="gst-plugins-base-plugins-xvimagesink.html#idp16291104"/>
- <keyword type="" name="Pixel aspect ratio" link="gst-plugins-base-plugins-xvimagesink.html#idp16293088"/>
- <keyword type="" name="Examples" link="gst-plugins-base-plugins-xvimagesink.html#idp16296736"/>
- <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16304880"/>
- <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16312336"/>
+ <keyword type="" name="Element Information" link="gst-plugins-base-plugins-xvimagesink.html#idp16140224"/>
+ <keyword type="" name="Element Pads" link="gst-plugins-base-plugins-xvimagesink.html#idp16147680"/>
<keyword type="struct" name="struct GstXvImageSink" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink-struct"/>
<keyword type="property" name="The "brightness" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--brightness"/>
<keyword type="property" name="The "contrast" property" link="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--contrast"/>
<keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_SINE_TAB" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-SINE-TAB:CAPS"/>
<keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_TICKS" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-TICKS:CAPS"/>
<keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-GAUSSIAN-WHITE-NOISE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_RED_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS"/>
+ <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS"/>
<keyword type="constant" name="GST_RECOVER_POLICY_NONE" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-NONE:CAPS"/>
<keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_LATEST" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"/>
<keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"/>
<keyword type="constant" name="GST_PLAY_FLAG_DOWNLOAD" link="gst-plugins-base-plugins-playbin2.html#GST-PLAY-FLAG-DOWNLOAD:CAPS"/>
<keyword type="constant" name="GST_PLAY_FLAG_BUFFERING" link="gst-plugins-base-plugins-playbin2.html#GST-PLAY-FLAG-BUFFERING:CAPS"/>
<keyword type="constant" name="GST_PLAY_FLAG_DEINTERLACE" link="gst-plugins-base-plugins-playbin2.html#GST-PLAY-FLAG-DEINTERLACE:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_BASELINE" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_BOTTOM" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_TOP" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-TOP:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_POS" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-POS:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_VALIGN_CENTER" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_LEFT" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_CENTER" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_RIGHT" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_UNUSED" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_HALIGN_POS" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-POS:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_NONE" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_WORD" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_CHAR" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS"/>
- <keyword type="constant" name="GST_TEXT_OVERLAY_WRAP_MODE_WORD_CHAR" link="gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS"/>
- <keyword type="constant" name="BORDER_NONE" link="gst-plugins-base-plugins-theoraenc.html#BORDER-NONE:CAPS"/>
- <keyword type="constant" name="BORDER_BLACK" link="gst-plugins-base-plugins-theoraenc.html#BORDER-BLACK:CAPS"/>
- <keyword type="constant" name="BORDER_MIRROR" link="gst-plugins-base-plugins-theoraenc.html#BORDER-MIRROR:CAPS"/>
<keyword type="constant" name="GST_AUTOPLUG_SELECT_TRY" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"/>
<keyword type="constant" name="GST_AUTOPLUG_SELECT_EXPOSE" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-EXPOSE:CAPS"/>
<keyword type="constant" name="GST_AUTOPLUG_SELECT_SKIP" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-SKIP:CAPS"/>
<keyword type="constant" name="GST_VIDEO_SCALE_NEAREST" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-NEAREST:CAPS"/>
<keyword type="constant" name="GST_VIDEO_SCALE_BILINEAR" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-BILINEAR:CAPS"/>
<keyword type="constant" name="GST_VIDEO_SCALE_4TAP" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-4TAP:CAPS"/>
+ <keyword type="constant" name="GST_VIDEO_SCALE_LANCZOS" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-LANCZOS:CAPS"/>
<keyword type="constant" name="GST_VIDEO_TEST_SRC_SMPTE" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SMPTE:CAPS"/>
<keyword type="constant" name="GST_VIDEO_TEST_SRC_SNOW" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-SNOW:CAPS"/>
<keyword type="constant" name="GST_VIDEO_TEST_SRC_BLACK" link="gst-plugins-base-plugins-videotestsrc.html#GST-VIDEO-TEST-SRC-BLACK:CAPS"/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GStreamer Base Plugins 0.10 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 0.10 Plugins Reference Manual">
<link rel="next" href="ch01.html" title="gst-plugins-base Elements">
-<meta name="generator" content="GTK-Doc V1.17 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.18 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 0.10 Plugins Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Base Plugins 0.10 (0.10.34)
+ for GStreamer Base Plugins 0.10 (0.10.36)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
</p></div>
</div>
<div class="footer">
<hr>
- Generated by GTK-Doc V1.17</div>
+ Generated by GTK-Doc V1.18</div>
</body>
</html>
\ No newline at end of file
<ANCHOR id="gst-plugins-base-plugins-alsamixer.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.property-details">
<ANCHOR id="GstAlsaMixerElement--device" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device">
<ANCHOR id="GstAlsaMixerElement--device-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#GstAlsaMixerElement--device-name">
-<ANCHOR id="gst-plugins-base-plugins-alsamixer.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsamixer.html#gst-plugins-base-plugins-alsamixer.see-also">
<ANCHOR id="gst-plugins-base-plugins-alsasink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html">
<ANCHOR id="gst-plugins-base-plugins-alsasink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.synopsis">
<ANCHOR id="GstAlsaSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink">
<ANCHOR id="GstAlsaSink--device" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device">
<ANCHOR id="GstAlsaSink--device-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name">
<ANCHOR id="GstAlsaSink--card-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name">
-<ANCHOR id="gst-plugins-base-plugins-alsasink.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasink.html#gst-plugins-base-plugins-alsasink.see-also">
<ANCHOR id="gst-plugins-base-plugins-alsasrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html">
<ANCHOR id="gst-plugins-base-plugins-alsasrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.synopsis">
<ANCHOR id="GstAlsaSrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc">
<ANCHOR id="GstAlsaSrc--device" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device">
<ANCHOR id="GstAlsaSrc--device-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name">
<ANCHOR id="GstAlsaSrc--card-name" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name">
-<ANCHOR id="gst-plugins-base-plugins-alsasrc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-alsasrc.html#gst-plugins-base-plugins-alsasrc.see-also">
<ANCHOR id="gst-plugins-base-plugins-audioconvert" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audioconvert.html">
<ANCHOR id="gst-plugins-base-plugins-audioconvert.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audioconvert.html#gst-plugins-base-plugins-audioconvert.synopsis">
<ANCHOR id="GstAudioConvert" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audioconvert.html#GstAudioConvert">
<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-SINE-TAB:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-SINE-TAB:CAPS">
<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-TICKS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-TICKS:CAPS">
<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-GAUSSIAN-WHITE-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-GAUSSIAN-WHITE-NOISE:CAPS">
+<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS">
+<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS">
+<ANCHOR id="GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS">
<ANCHOR id="gst-plugins-base-plugins-audiotestsrc.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#gst-plugins-base-plugins-audiotestsrc.property-details">
<ANCHOR id="GstAudioTestSrc--freq" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--freq">
<ANCHOR id="GstAudioTestSrc--is-live" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--is-live">
<ANCHOR id="GstClockOverlay-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay-struct">
<ANCHOR id="gst-plugins-base-plugins-clockoverlay.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#gst-plugins-base-plugins-clockoverlay.property-details">
<ANCHOR id="GstClockOverlay--time-format" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay--time-format">
-<ANCHOR id="gst-plugins-base-plugins-clockoverlay.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-clockoverlay.html#gst-plugins-base-plugins-clockoverlay.see-also">
<ANCHOR id="gst-plugins-base-plugins-decodebin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-decodebin.html">
<ANCHOR id="gst-plugins-base-plugins-decodebin.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-decodebin.html#gst-plugins-base-plugins-decodebin.synopsis">
<ANCHOR id="GstDecodeBin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-decodebin.html#GstDecodeBin">
<ANCHOR id="GstEncodeBin--queue-buffers-max" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-buffers-max">
<ANCHOR id="GstEncodeBin--queue-bytes-max" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-bytes-max">
<ANCHOR id="GstEncodeBin--queue-time-max" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--queue-time-max">
+<ANCHOR id="GstEncodeBin--flags" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin--flags">
<ANCHOR id="gst-plugins-base-plugins-encodebin.signal-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#gst-plugins-base-plugins-encodebin.signal-details">
<ANCHOR id="GstEncodeBin-request-pad" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-encodebin.html#GstEncodeBin-request-pad">
<ANCHOR id="gst-plugins-base-plugins-ffmpegcolorspace" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ffmpegcolorspace.html">
<ANCHOR id="gst-plugins-base-plugins-giosink.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#gst-plugins-base-plugins-giosink.property-details">
<ANCHOR id="GstGioSink--location" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#GstGioSink--location">
<ANCHOR id="GstGioSink--file" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#GstGioSink--file">
-<ANCHOR id="gst-plugins-base-plugins-giosink.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosink.html#gst-plugins-base-plugins-giosink.see-also">
<ANCHOR id="gst-plugins-base-plugins-giosrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html">
<ANCHOR id="gst-plugins-base-plugins-giosrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#gst-plugins-base-plugins-giosrc.synopsis">
<ANCHOR id="GstGioSrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#GstGioSrc">
<ANCHOR id="gst-plugins-base-plugins-giosrc.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#gst-plugins-base-plugins-giosrc.property-details">
<ANCHOR id="GstGioSrc--location" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#GstGioSrc--location">
<ANCHOR id="GstGioSrc--file" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#GstGioSrc--file">
-<ANCHOR id="gst-plugins-base-plugins-giosrc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giosrc.html#gst-plugins-base-plugins-giosrc.see-also">
<ANCHOR id="gst-plugins-base-plugins-giostreamsink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giostreamsink.html">
<ANCHOR id="gst-plugins-base-plugins-giostreamsink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giostreamsink.html#gst-plugins-base-plugins-giostreamsink.synopsis">
<ANCHOR id="GstGioStreamSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-giostreamsink.html#GstGioStreamSink">
<ANCHOR id="GstGnomeVFSSink--uri" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink--uri">
<ANCHOR id="gst-plugins-base-plugins-gnomevfssink.signal-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#gst-plugins-base-plugins-gnomevfssink.signal-details">
<ANCHOR id="GstGnomeVFSSink-allow-overwrite" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#GstGnomeVFSSink-allow-overwrite">
-<ANCHOR id="gst-plugins-base-plugins-gnomevfssink.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssink.html#gst-plugins-base-plugins-gnomevfssink.see-also">
<ANCHOR id="gst-plugins-base-plugins-gnomevfssrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html">
<ANCHOR id="gst-plugins-base-plugins-gnomevfssrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#gst-plugins-base-plugins-gnomevfssrc.synopsis">
<ANCHOR id="GstGnomeVFSSrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc">
<ANCHOR id="GstGnomeVFSSrc--iradio-url" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--iradio-url">
<ANCHOR id="GstGnomeVFSSrc--location" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--location">
<ANCHOR id="GstGnomeVFSSrc--random-access" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#GstGnomeVFSSrc--random-access">
-<ANCHOR id="gst-plugins-base-plugins-gnomevfssrc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-gnomevfssrc.html#gst-plugins-base-plugins-gnomevfssrc.see-also">
<ANCHOR id="gst-plugins-base-plugins-multifdsink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-multifdsink.html">
<ANCHOR id="gst-plugins-base-plugins-multifdsink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-multifdsink.html#gst-plugins-base-plugins-multifdsink.synopsis">
<ANCHOR id="GstMultiFdSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink">
<ANCHOR id="gst-plugins-base-plugins-oggdemux.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#gst-plugins-base-plugins-oggdemux.description">
<ANCHOR id="gst-plugins-base-plugins-oggdemux.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#gst-plugins-base-plugins-oggdemux.details">
<ANCHOR id="GstOggDemux-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#GstOggDemux-struct">
-<ANCHOR id="gst-plugins-base-plugins-oggdemux.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggdemux.html#gst-plugins-base-plugins-oggdemux.see-also">
<ANCHOR id="gst-plugins-base-plugins-oggmux" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html">
<ANCHOR id="gst-plugins-base-plugins-oggmux.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#gst-plugins-base-plugins-oggmux.synopsis">
<ANCHOR id="GstOggMux" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux">
<ANCHOR id="gst-plugins-base-plugins-oggmux.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#gst-plugins-base-plugins-oggmux.property-details">
<ANCHOR id="GstOggMux--max-delay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--max-delay">
<ANCHOR id="GstOggMux--max-page-delay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--max-page-delay">
-<ANCHOR id="gst-plugins-base-plugins-oggmux.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#gst-plugins-base-plugins-oggmux.see-also">
+<ANCHOR id="GstOggMux--max-tolerance" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--max-tolerance">
+<ANCHOR id="GstOggMux--skeleton" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-oggmux.html#GstOggMux--skeleton">
<ANCHOR id="gst-plugins-base-plugins-playbin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-playbin.html">
<ANCHOR id="gst-plugins-base-plugins-playbin.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-playbin.html#gst-plugins-base-plugins-playbin.synopsis">
<ANCHOR id="GstPlayBin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-playbin.html#GstPlayBin">
<ANCHOR id="gst-plugins-base-plugins-textoverlay.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#gst-plugins-base-plugins-textoverlay.details">
<ANCHOR id="GstTextOverlay-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct">
<ANCHOR id="GstTextOverlayVAlign" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayVAlign">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BASELINE:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-BOTTOM:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-TOP:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-TOP:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-POS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-POS:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-VALIGN-CENTER:CAPS">
<ANCHOR id="GstTextOverlayHAlign" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayHAlign">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-LEFT:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-CENTER:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-RIGHT:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-UNUSED:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-HALIGN-POS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-HALIGN-POS:CAPS">
<ANCHOR id="GstTextOverlayWrapMode" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlayWrapMode">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-NONE:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-CHAR:CAPS">
-<ANCHOR id="GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GST-TEXT-OVERLAY-WRAP-MODE-WORD-CHAR:CAPS">
<ANCHOR id="gst-plugins-base-plugins-textoverlay.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#gst-plugins-base-plugins-textoverlay.property-details">
<ANCHOR id="GstTextOverlay--deltax" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltax">
<ANCHOR id="GstTextOverlay--deltay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--deltay">
<ANCHOR id="GstTextOverlay--color" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--color">
<ANCHOR id="GstTextOverlay--xpos" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--xpos">
<ANCHOR id="GstTextOverlay--ypos" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--ypos">
-<ANCHOR id="gst-plugins-base-plugins-textoverlay.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#gst-plugins-base-plugins-textoverlay.see-also">
+<ANCHOR id="GstTextOverlay--outline-color" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--outline-color">
+<ANCHOR id="GstTextOverlay--shadow" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textoverlay.html#GstTextOverlay--shadow">
<ANCHOR id="gst-plugins-base-plugins-textrender" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html">
<ANCHOR id="gst-plugins-base-plugins-textrender.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#gst-plugins-base-plugins-textrender.synopsis">
<ANCHOR id="GstTextRender" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender">
<ANCHOR id="GstTextRender--valignment" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender--valignment">
<ANCHOR id="GstTextRender--xpad" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender--xpad">
<ANCHOR id="GstTextRender--ypad" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#GstTextRender--ypad">
-<ANCHOR id="gst-plugins-base-plugins-textrender.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-textrender.html#gst-plugins-base-plugins-textrender.see-also">
<ANCHOR id="gst-plugins-base-plugins-theoradec" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html">
<ANCHOR id="gst-plugins-base-plugins-theoradec.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#gst-plugins-base-plugins-theoradec.synopsis">
<ANCHOR id="GstTheoraDec" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#GstTheoraDec">
<ANCHOR id="GstTheoraDec-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#GstTheoraDec-struct">
<ANCHOR id="gst-plugins-base-plugins-theoradec.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#gst-plugins-base-plugins-theoradec.property-details">
<ANCHOR id="GstTheoraDec--crop" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#GstTheoraDec--crop">
-<ANCHOR id="gst-plugins-base-plugins-theoradec.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoradec.html#gst-plugins-base-plugins-theoradec.see-also">
<ANCHOR id="gst-plugins-base-plugins-theoraenc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html">
<ANCHOR id="gst-plugins-base-plugins-theoraenc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.synopsis">
<ANCHOR id="GstTheoraEnc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc">
<ANCHOR id="gst-plugins-base-plugins-theoraenc.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.details">
<ANCHOR id="GstTheoraEnc-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc-struct">
<ANCHOR id="GstTheoraEncBorderMode" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEncBorderMode">
-<ANCHOR id="BORDER-NONE:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#BORDER-NONE:CAPS">
-<ANCHOR id="BORDER-BLACK:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#BORDER-BLACK:CAPS">
-<ANCHOR id="BORDER-MIRROR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#BORDER-MIRROR:CAPS">
<ANCHOR id="gst-plugins-base-plugins-theoraenc.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.property-details">
<ANCHOR id="GstTheoraEnc--bitrate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--bitrate">
<ANCHOR id="GstTheoraEnc--border" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--border">
<ANCHOR id="GstTheoraEnc--vp3-compatible" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--vp3-compatible">
<ANCHOR id="GstTheoraEnc--multipass-cache-file" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-cache-file">
<ANCHOR id="GstTheoraEnc--multipass-mode" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#GstTheoraEnc--multipass-mode">
-<ANCHOR id="gst-plugins-base-plugins-theoraenc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraenc.html#gst-plugins-base-plugins-theoraenc.see-also">
<ANCHOR id="gst-plugins-base-plugins-theoraparse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html">
<ANCHOR id="gst-plugins-base-plugins-theoraparse.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#gst-plugins-base-plugins-theoraparse.synopsis">
<ANCHOR id="GstTheoraParse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#GstTheoraParse">
<ANCHOR id="GstTheoraParse-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#GstTheoraParse-struct">
<ANCHOR id="gst-plugins-base-plugins-theoraparse.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#gst-plugins-base-plugins-theoraparse.property-details">
<ANCHOR id="GstTheoraParse--synchronization-points" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#GstTheoraParse--synchronization-points">
-<ANCHOR id="gst-plugins-base-plugins-theoraparse.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-theoraparse.html#gst-plugins-base-plugins-theoraparse.see-also">
<ANCHOR id="gst-plugins-base-plugins-timeoverlay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html">
<ANCHOR id="gst-plugins-base-plugins-timeoverlay.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.synopsis">
<ANCHOR id="GstTimeOverlay" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay">
<ANCHOR id="gst-plugins-base-plugins-timeoverlay.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.description">
<ANCHOR id="gst-plugins-base-plugins-timeoverlay.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.details">
<ANCHOR id="GstTimeOverlay-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay-struct">
-<ANCHOR id="gst-plugins-base-plugins-timeoverlay.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-timeoverlay.html#gst-plugins-base-plugins-timeoverlay.see-also">
<ANCHOR id="gst-plugins-base-plugins-uridecodebin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-uridecodebin.html">
<ANCHOR id="gst-plugins-base-plugins-uridecodebin.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-uridecodebin.html#gst-plugins-base-plugins-uridecodebin.synopsis">
<ANCHOR id="GstURIDecodeBin" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin">
<ANCHOR id="GstVideoRate--out" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--out">
<ANCHOR id="GstVideoRate--silent" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--silent">
<ANCHOR id="GstVideoRate--skip-to-first" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--skip-to-first">
+<ANCHOR id="GstVideoRate--average-period" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--average-period">
+<ANCHOR id="GstVideoRate--drop-only" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--drop-only">
+<ANCHOR id="GstVideoRate--force-fps" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--force-fps">
+<ANCHOR id="GstVideoRate--max-rate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videorate.html#GstVideoRate--max-rate">
<ANCHOR id="gst-plugins-base-plugins-videoscale" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html">
<ANCHOR id="gst-plugins-base-plugins-videoscale.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#gst-plugins-base-plugins-videoscale.synopsis">
<ANCHOR id="GstVideoScale" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale">
<ANCHOR id="GST-VIDEO-SCALE-NEAREST:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-NEAREST:CAPS">
<ANCHOR id="GST-VIDEO-SCALE-BILINEAR:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-BILINEAR:CAPS">
<ANCHOR id="GST-VIDEO-SCALE-4TAP:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-4TAP:CAPS">
+<ANCHOR id="GST-VIDEO-SCALE-LANCZOS:CAPS" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-LANCZOS:CAPS">
<ANCHOR id="gst-plugins-base-plugins-videoscale.property-details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#gst-plugins-base-plugins-videoscale.property-details">
<ANCHOR id="GstVideoScale--method" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--method">
<ANCHOR id="GstVideoScale--add-borders" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--add-borders">
+<ANCHOR id="GstVideoScale--dither" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--dither">
+<ANCHOR id="GstVideoScale--envelope" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--envelope">
+<ANCHOR id="GstVideoScale--sharpen" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpen">
+<ANCHOR id="GstVideoScale--sharpness" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#GstVideoScale--sharpness">
<ANCHOR id="gst-plugins-base-plugins-videoscale.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videoscale.html#gst-plugins-base-plugins-videoscale.see-also">
<ANCHOR id="gst-plugins-base-plugins-videotestsrc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videotestsrc.html">
<ANCHOR id="gst-plugins-base-plugins-videotestsrc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-videotestsrc.html#gst-plugins-base-plugins-videotestsrc.synopsis">
<ANCHOR id="gst-plugins-base-plugins-vorbisdec.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#gst-plugins-base-plugins-vorbisdec.description">
<ANCHOR id="gst-plugins-base-plugins-vorbisdec.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#gst-plugins-base-plugins-vorbisdec.details">
<ANCHOR id="GstVorbisDec-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#GstVorbisDec-struct">
-<ANCHOR id="gst-plugins-base-plugins-vorbisdec.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisdec.html#gst-plugins-base-plugins-vorbisdec.see-also">
<ANCHOR id="gst-plugins-base-plugins-vorbisenc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html">
<ANCHOR id="gst-plugins-base-plugins-vorbisenc.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#gst-plugins-base-plugins-vorbisenc.synopsis">
<ANCHOR id="GstVorbisEnc" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc">
<ANCHOR id="GstVorbisEnc--max-bitrate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--max-bitrate">
<ANCHOR id="GstVorbisEnc--min-bitrate" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--min-bitrate">
<ANCHOR id="GstVorbisEnc--quality" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#GstVorbisEnc--quality">
-<ANCHOR id="gst-plugins-base-plugins-vorbisenc.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisenc.html#gst-plugins-base-plugins-vorbisenc.see-also">
<ANCHOR id="gst-plugins-base-plugins-vorbisparse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html">
<ANCHOR id="gst-plugins-base-plugins-vorbisparse.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.synopsis">
<ANCHOR id="GstVorbisParse" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse">
<ANCHOR id="gst-plugins-base-plugins-vorbisparse.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.description">
<ANCHOR id="gst-plugins-base-plugins-vorbisparse.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.details">
<ANCHOR id="GstVorbisParse-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#GstVorbisParse-struct">
-<ANCHOR id="gst-plugins-base-plugins-vorbisparse.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbisparse.html#gst-plugins-base-plugins-vorbisparse.see-also">
<ANCHOR id="gst-plugins-base-plugins-vorbistag" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html">
<ANCHOR id="gst-plugins-base-plugins-vorbistag.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.synopsis">
<ANCHOR id="GstVorbisTag" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#GstVorbisTag">
<ANCHOR id="gst-plugins-base-plugins-vorbistag.description" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.description">
<ANCHOR id="gst-plugins-base-plugins-vorbistag.details" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.details">
<ANCHOR id="GstVorbisTag-struct" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#GstVorbisTag-struct">
-<ANCHOR id="gst-plugins-base-plugins-vorbistag.see-also" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-vorbistag.html#gst-plugins-base-plugins-vorbistag.see-also">
<ANCHOR id="gst-plugins-base-plugins-ximagesink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ximagesink.html">
<ANCHOR id="gst-plugins-base-plugins-ximagesink.synopsis" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ximagesink.html#gst-plugins-base-plugins-ximagesink.synopsis">
<ANCHOR id="GstXImageSink" href="gst-plugins-base-plugins-0.10/gst-plugins-base-plugins-ximagesink.html#GstXImageSink">
<description>Adds multiple streams</description>
<filename>../../gst/adder/.libs/libgstadder.so</filename>
<basename>libgstadder.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>ALSA plugin library</description>
<filename>../../ext/alsa/.libs/libgstalsa.so</filename>
<basename>libgstalsa.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Elements used to communicate with applications</description>
<filename>../../gst/app/.libs/libgstapp.so</filename>
<basename>libgstapp.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Convert audio to different formats</description>
<filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
<basename>libgstaudioconvert.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Adjusts audio frames</description>
<filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
<basename>libgstaudiorate.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Resamples audio</description>
<filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
<basename>libgstaudioresample.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Creates audio test signals of given frequency and volume</description>
<filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
<basename>libgstaudiotestsrc.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Read audio from CD in paranoid mode</description>
<filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
<basename>libgstcdparanoia.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>decoder bin</description>
<filename>../../gst/playback/.libs/libgstdecodebin.so</filename>
<basename>libgstdecodebin.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>various encoding-related elements</description>
<filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
<basename>libgstencodebin.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>colorspace conversion copied from FFMpeg 0.4.9-pre1</description>
<filename>../../gst/ffmpegcolorspace/.libs/libgstffmpegcolorspace.so</filename>
<basename>libgstffmpegcolorspace.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>FFMpeg</package>
<description>Payload/depayload GDP packets</description>
<filename>../../gst/gdp/.libs/libgstgdp.so</filename>
<basename>libgstgdp.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>GIO elements</description>
<filename>../../ext/gio/.libs/libgstgio.so</filename>
<basename>libgstgio.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>elements to read from and write to Gnome-VFS uri's</description>
<filename>../../ext/gnomevfs/.libs/libgstgnomevfs.so</filename>
<basename>libgstgnomevfs.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>libvisual visualization plugins</description>
<filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
<basename>libgstlibvisual.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>ogg stream manipulation (info about ogg: http://xiph.org)</description>
<filename>../../ext/ogg/.libs/libgstogg.so</filename>
<basename>libgstogg.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<name>sink_%d</name>
<direction>sink</direction>
<presence>request</presence>
- <details>video/x-theora; audio/x-vorbis; audio/x-flac; audio/x-speex; audio/x-celt; application/x-ogm-video; application/x-ogm-audio; video/x-dirac; video/x-smoke; video/x-vp8; text/x-cmml, encoded=(boolean)true; subtitle/x-kate; application/x-kate</details>
+ <details>video/x-theora; audio/x-vorbis; audio/x-flac; audio/x-speex; audio/x-celt; application/x-ogm-video; application/x-ogm-audio; video/x-dirac; video/x-smoke; video/x-vp8; text/x-cmml, encoded=(boolean)true; subtitle/x-kate; application/x-kate; audio/x-opus</details>
</caps>
<caps>
<name>src</name>
<description>Pango-based text rendering and overlay</description>
<filename>../../ext/pango/.libs/libgstpango.so</filename>
<basename>libgstpango.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<name>video_sink</name>
<direction>sink</direction>
<presence>always</presence>
- <details>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 ]; 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+ <details>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 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
- <details>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 ]; 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+ <details>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 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
</pads>
</element>
<name>video_sink</name>
<direction>sink</direction>
<presence>always</presence>
- <details>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 ]; 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+ <details>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 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
- <details>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 ]; 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+ <details>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 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
</pads>
</element>
<name>video_sink</name>
<direction>sink</direction>
<presence>always</presence>
- <details>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 ]; 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+ <details>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 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
- <details>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 ]; 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc){ AYUV, I420, UYVY, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+ <details>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 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 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)16711680, green_mask=(int)65280, blue_mask=(int)255, 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)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; 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, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-surface; video/x-raw-yuv, format=(fourcc){ I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16 , NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
</pads>
</element>
<description>various playback elements</description>
<filename>../../gst/playback/.libs/libgstplaybin.so</filename>
<basename>libgstplaybin.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Subtitle parsing</description>
<filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
<basename>libgstsubparse.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>transfer data over the network via TCP</description>
<filename>../../gst/tcp/.libs/libgsttcp.so</filename>
<basename>libgsttcp.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Theora plugin library</description>
<filename>../../ext/theora/.libs/libgsttheora.so</filename>
<basename>libgsttheora.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>default typefind functions</description>
<filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
<basename>libgsttypefindfunctions.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>URI Decoder bin</description>
<filename>../../gst/playback/.libs/libgstdecodebin2.so</filename>
<basename>libgstdecodebin2.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Adjusts video frames</description>
<filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
<basename>libgstvideorate.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Resizes video</description>
<filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
<basename>libgstvideoscale.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Creates a test video stream</description>
<filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
<basename>libgstvideotestsrc.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>plugin for controlling audio volume</description>
<filename>../../gst/volume/.libs/libgstvolume.so</filename>
<basename>libgstvolume.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>Vorbis plugin library</description>
<filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
<basename>libgstvorbis.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
- <details>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 256 ], endianness=(int)1234, width=(int)32</details>
+ <details>audio/x-raw-float, rate=(int)[ 1, 200000 ], channels=(int)[ 1, 255 ], endianness=(int)1234, width=(int)32</details>
</caps>
<caps>
<name>src</name>
<description>X11 video output element based on standard Xlib calls</description>
<filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
<basename>libgstximagesink.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
<description>XFree86 video output plugin using Xv extension</description>
<filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
<basename>libgstxvimagesink.so</basename>
- <version>0.10.34</version>
+ <version>0.10.36</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstalsa_la-gstalsaplugin.lo libgstalsa_la-gstalsasink.lo \
libgstalsa_la-gstalsasrc.lo libgstalsa_la-gstalsa.lo
libgstalsa_la_OBJECTS = $(am_libgstalsa_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
libgstalsa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstalsa_la_SOURCES)
DIST_SOURCES = $(libgstalsa_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstalsa.la: $(libgstalsa_la_OBJECTS) $(libgstalsa_la_DEPENDENCIES)
+libgstalsa.la: $(libgstalsa_la_OBJECTS) $(libgstalsa_la_DEPENDENCIES) $(EXTRA_libgstalsa_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstalsa_la_LINK) -rpath $(plugindir) $(libgstalsa_la_OBJECTS) $(libgstalsa_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstalsa_la-gstalsadeviceprobe.lo: gstalsadeviceprobe.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsadeviceprobe.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Tpo -c -o libgstalsa_la-gstalsadeviceprobe.lo `test -f 'gstalsadeviceprobe.c' || echo '$(srcdir)/'`gstalsadeviceprobe.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Tpo $(DEPDIR)/libgstalsa_la-gstalsadeviceprobe.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsadeviceprobe.c' object='libgstalsa_la-gstalsadeviceprobe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsadeviceprobe.c' object='libgstalsa_la-gstalsadeviceprobe.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsadeviceprobe.lo `test -f 'gstalsadeviceprobe.c' || echo '$(srcdir)/'`gstalsadeviceprobe.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsadeviceprobe.lo `test -f 'gstalsadeviceprobe.c' || echo '$(srcdir)/'`gstalsadeviceprobe.c
libgstalsa_la-gstalsamixer.lo: gstalsamixer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixer.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixer.Tpo -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixer.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsamixer.c' object='libgstalsa_la-gstalsamixer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixer.c' object='libgstalsa_la-gstalsamixer.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixer.lo `test -f 'gstalsamixer.c' || echo '$(srcdir)/'`gstalsamixer.c
libgstalsa_la-gstalsamixerelement.lo: gstalsamixerelement.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixerelement.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Tpo -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixerelement.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsamixerelement.c' object='libgstalsa_la-gstalsamixerelement.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixerelement.c' object='libgstalsa_la-gstalsamixerelement.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixerelement.lo `test -f 'gstalsamixerelement.c' || echo '$(srcdir)/'`gstalsamixerelement.c
libgstalsa_la-gstalsamixertrack.lo: gstalsamixertrack.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixertrack.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Tpo -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixertrack.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsamixertrack.c' object='libgstalsa_la-gstalsamixertrack.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixertrack.c' object='libgstalsa_la-gstalsamixertrack.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixertrack.lo `test -f 'gstalsamixertrack.c' || echo '$(srcdir)/'`gstalsamixertrack.c
libgstalsa_la-gstalsamixeroptions.lo: gstalsamixeroptions.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsamixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Tpo -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Tpo $(DEPDIR)/libgstalsa_la-gstalsamixeroptions.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsamixeroptions.c' object='libgstalsa_la-gstalsamixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsamixeroptions.c' object='libgstalsa_la-gstalsamixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsamixeroptions.lo `test -f 'gstalsamixeroptions.c' || echo '$(srcdir)/'`gstalsamixeroptions.c
libgstalsa_la-gstalsaplugin.lo: gstalsaplugin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsaplugin.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsaplugin.Tpo -c -o libgstalsa_la-gstalsaplugin.lo `test -f 'gstalsaplugin.c' || echo '$(srcdir)/'`gstalsaplugin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsaplugin.Tpo $(DEPDIR)/libgstalsa_la-gstalsaplugin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsaplugin.c' object='libgstalsa_la-gstalsaplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsaplugin.c' object='libgstalsa_la-gstalsaplugin.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsaplugin.lo `test -f 'gstalsaplugin.c' || echo '$(srcdir)/'`gstalsaplugin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsaplugin.lo `test -f 'gstalsaplugin.c' || echo '$(srcdir)/'`gstalsaplugin.c
libgstalsa_la-gstalsasink.lo: gstalsasink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsasink.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsasink.Tpo -c -o libgstalsa_la-gstalsasink.lo `test -f 'gstalsasink.c' || echo '$(srcdir)/'`gstalsasink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsasink.Tpo $(DEPDIR)/libgstalsa_la-gstalsasink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsasink.c' object='libgstalsa_la-gstalsasink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsasink.c' object='libgstalsa_la-gstalsasink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasink.lo `test -f 'gstalsasink.c' || echo '$(srcdir)/'`gstalsasink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasink.lo `test -f 'gstalsasink.c' || echo '$(srcdir)/'`gstalsasink.c
libgstalsa_la-gstalsasrc.lo: gstalsasrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsasrc.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsasrc.Tpo -c -o libgstalsa_la-gstalsasrc.lo `test -f 'gstalsasrc.c' || echo '$(srcdir)/'`gstalsasrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsasrc.Tpo $(DEPDIR)/libgstalsa_la-gstalsasrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsasrc.c' object='libgstalsa_la-gstalsasrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsasrc.c' object='libgstalsa_la-gstalsasrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasrc.lo `test -f 'gstalsasrc.c' || echo '$(srcdir)/'`gstalsasrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsasrc.lo `test -f 'gstalsasrc.c' || echo '$(srcdir)/'`gstalsasrc.c
libgstalsa_la-gstalsa.lo: gstalsa.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -MT libgstalsa_la-gstalsa.lo -MD -MP -MF $(DEPDIR)/libgstalsa_la-gstalsa.Tpo -c -o libgstalsa_la-gstalsa.lo `test -f 'gstalsa.c' || echo '$(srcdir)/'`gstalsa.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstalsa_la-gstalsa.Tpo $(DEPDIR)/libgstalsa_la-gstalsa.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstalsa.c' object='libgstalsa_la-gstalsa.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstalsa.c' object='libgstalsa_la-gstalsa.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsa.lo `test -f 'gstalsa.c' || echo '$(srcdir)/'`gstalsa.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstalsa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstalsa_la_CFLAGS) $(CFLAGS) -c -o libgstalsa_la-gstalsa.lo `test -f 'gstalsa.c' || echo '$(srcdir)/'`gstalsa.c
mostlyclean-libtool:
-rm -f *.lo
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:
#include "gstalsadeviceprobe.h"
#include "gst/interfaces/propertyprobe.h"
+G_LOCK_DEFINE_STATIC (probe_lock);
+
static const GList *
gst_alsa_device_property_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) {
GParamSpec *pspec;
list = g_list_append (NULL, pspec);
}
- GST_CLASS_UNLOCK (GST_OBJECT_CLASS (klass));
+ G_UNLOCK (probe_lock);
return list;
}
#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 "gstalsamixer.h"
+#include "gst/glib-compat-private.h"
#include <errno.h>
static void gst_alsa_mixer_update_option (GstAlsaMixer * mixer,
count = snd_mixer_get_count (handle);
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
/* Check if we have a playback mixer labelled as 'Master' */
element = snd_mixer_first_elem (handle);
for (i = 0; i < count; i++) {
if (snd_mixer_selem_has_playback_volume (element) &&
strcmp (snd_mixer_selem_get_name (element), "Master") == 0) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return element;
}
element = snd_mixer_elem_next (element);
for (i = 0; i < count; i++) {
if (snd_mixer_selem_has_playback_volume (element) &&
strcmp (snd_mixer_selem_get_name (element), "Front") == 0) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return element;
}
element = snd_mixer_elem_next (element);
for (i = 0; i < count; i++) {
if (snd_mixer_selem_has_playback_volume (element) &&
strcmp (snd_mixer_selem_get_name (element), "PCM") == 0) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return element;
}
element = snd_mixer_elem_next (element);
for (i = 0; i < count; i++) {
if (snd_mixer_selem_has_playback_volume (element) &&
strcmp (snd_mixer_selem_get_name (element), "Speaker") == 0) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return element;
}
element = snd_mixer_elem_next (element);
if (snd_mixer_selem_has_playback_volume (element) &&
snd_mixer_selem_has_playback_switch (element) &&
!snd_mixer_selem_is_playback_mono (element)) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return element;
}
element = snd_mixer_elem_next (element);
for (i = 0; i < count; i++) {
if (snd_mixer_selem_has_playback_volume (element) &&
snd_mixer_selem_has_playback_switch (element)) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return element;
}
element = snd_mixer_elem_next (element);
element = snd_mixer_first_elem (handle);
for (i = 0; i < count; i++) {
if (snd_mixer_selem_has_playback_volume (element)) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return element;
}
element = snd_mixer_elem_next (element);
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
/* Looks like we're out of luck ... */
return NULL;
}
g_return_if_fail (mixer != NULL);
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
for (item = mixer->tracklist; item != NULL; item = item->next) {
if (GST_IS_ALSA_MIXER_TRACK (item->data)) {
}
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
static int
if (mixer->tracklist)
return;
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
master = gst_alsa_mixer_find_master_mixer (mixer, mixer->handle);
snd_mixer_elem_set_callback_private (temp, mixer);
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
static void
GstAlsaMixer *mixer = (GstAlsaMixer *) data;
gint ret;
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
nfds = snd_mixer_poll_descriptors_count (mixer->handle);
if (nfds <= 0) {
GST_ERROR ("snd_mixer_poll_descriptors_count <= 0: %d", nfds);
/* FIXME: sleep ? stop monitoring ? */
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return;
}
GST_ELEMENT_ERROR (mixer, RESOURCE, READ, (NULL), ("alsa error: %s",
snd_strerror (rnfds)));
gst_task_pause (mixer->task);
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return;
}
pfds[rnfds].events = POLLIN | POLLPRI | POLLHUP | POLLERR;
pfds[rnfds].revents = 0;
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
GST_LOG ("task loop");
ret = poll (pfds, rnfds + 1, -1);
return;
}
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
ret =
snd_mixer_poll_descriptors_revents (mixer->handle, pfds, nfds, &revents);
gst_task_pause (mixer->task);
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
/* API */
if (pipe (ret->pfd) == -1)
goto error;
- ret->rec_mutex = g_new (GStaticRecMutex, 1);
- g_static_rec_mutex_init (ret->rec_mutex);
-
- ret->task_mutex = g_new (GStaticRecMutex, 1);
- g_static_rec_mutex_init (ret->task_mutex);
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+ g_static_rec_mutex_init (&ret->rec_mutex);
+#else
+ g_rec_mutex_init (&ret->rec_mutex);
+#endif
+ g_static_rec_mutex_init (&ret->task_mutex);
ret->task = gst_task_create (task_monitor_alsa, ret);
- gst_task_set_lock (ret->task, ret->task_mutex);
+ gst_task_set_lock (ret->task, &ret->task_mutex);
ret->device = g_strdup (device);
ret->dir = dir;
mixer->task = NULL;
}
- g_static_rec_mutex_free (mixer->task_mutex);
- g_free (mixer->task_mutex);
- mixer->task_mutex = NULL;
+ g_static_rec_mutex_free (&mixer->task_mutex);
if (mixer->pfd[0] > 0) {
close (mixer->pfd[0]);
snd_mixer_close (mixer->handle);
mixer->handle = NULL;
}
-
- g_static_rec_mutex_free (mixer->rec_mutex);
- g_free (mixer->rec_mutex);
- mixer->rec_mutex = NULL;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+ g_static_rec_mutex_free (&mixer->rec_mutex);
+#else
+ g_rec_mutex_clear (&mixer->rec_mutex);
+#endif
g_free (mixer);
}
g_return_if_fail (mixer->handle != NULL);
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
gst_alsa_mixer_track_update (alsa_track);
volumes[i] = alsa_track->volumes[i];
}
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
static gboolean
g_return_if_fail (mixer->handle != NULL);
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
gst_alsa_mixer_track_update (alsa_track);
alsa_track->volumes[i] = volumes[i];
}
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
void
g_return_if_fail (mixer->handle != NULL);
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
gst_alsa_mixer_track_update (alsa_track);
if (! !(mute) == ! !(track->flags & GST_MIXER_TRACK_MUTE)) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return;
}
if (mute) {
for (i = 0; i < ((GstMixerTrack *) ctrl_track)->num_channels; i++) {
long vol =
- mute ? ((GstMixerTrack *) ctrl_track)->
- min_volume : ctrl_track->volumes[i];
+ mute ? ((GstMixerTrack *) ctrl_track)->min_volume : ctrl_track->
+ volumes[i];
snd_mixer_selem_set_playback_volume (ctrl_track->element, i, vol);
}
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
void
g_return_if_fail (mixer->handle != NULL);
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
gst_alsa_mixer_track_update (alsa_track);
if (! !(record) == ! !(track->flags & GST_MIXER_TRACK_RECORD)) {
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
return;
}
snd_mixer_selem_set_capture_switch_all (alsa_track->element,
record ? 1 : 0);
- /* update all tracks in same exlusive cswitch group */
+ /* update all tracks in same exclusive cswitch group */
if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH_EXCL) {
GList *item;
snd_mixer_selem_set_capture_volume (alsa_track->element, i, vol);
}
}
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
void
if (idx == -1)
return;
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
snd_mixer_selem_set_enum_item (alsa_opts->element, 0, idx);
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
}
const gchar *
GstAlsaMixerOptions *alsa_opts = GST_ALSA_MIXER_OPTIONS (opts);
g_return_val_if_fail (mixer->handle != NULL, NULL);
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx);
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
if (ret == 0)
return g_list_nth_data (opts->values, idx);
else
GST_WARNING ("Cannot send update notifications, no GstMixer * given");
return;
}
- g_static_rec_mutex_lock (mixer->rec_mutex);
+ GST_ALSA_MIXER_LOCK (mixer);
ret = snd_mixer_selem_get_enum_item (alsa_opts->element, 0, &idx);
- g_static_rec_mutex_unlock (mixer->rec_mutex);
+ GST_ALSA_MIXER_UNLOCK (mixer);
if (ret == 0) {
option = g_list_nth_data (GST_MIXER_OPTIONS (alsa_opts)->values, idx);
gst_mixer_option_changed (mixer->interface, GST_MIXER_OPTIONS (alsa_opts),
snd_mixer_t * handle;
GstTask * task;
- GStaticRecMutex * task_mutex;
- GStaticRecMutex * rec_mutex;
+ GStaticRecMutex task_mutex;
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+ GStaticRecMutex rec_mutex;
+#else
+ GRecMutex rec_mutex;
+#endif
int pfd[2];
GstAlsaMixerDirection dir;
};
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+#define GST_ALSA_MIXER_LOCK(mixer) g_static_rec_mutex_lock (&mixer->rec_mutex)
+#define GST_ALSA_MIXER_UNLOCK(mixer) g_static_rec_mutex_unlock (&mixer->rec_mutex)
+#else
+#define GST_ALSA_MIXER_LOCK(mixer) g_rec_mutex_lock (&mixer->rec_mutex)
+#define GST_ALSA_MIXER_UNLOCK(mixer) g_rec_mutex_unlock (&mixer->rec_mutex)
+#endif
GstAlsaMixer* gst_alsa_mixer_new (const gchar *device,
GstAlsaMixerDirection dir);
#include "gstalsadeviceprobe.h"
#include <gst/gst-i18n-plugin.h>
+#include "gst/glib-compat-private.h"
#define DEFAULT_DEVICE "default"
#define DEFAULT_DEVICE_NAME ""
"Audio sink (ALSA)", "Sink/Audio",
"Output to a sound card via ALSA", "Wim Taymans <wim@fluendo.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&alsasink_sink_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &alsasink_sink_factory);
}
static void
rrate = alsa->rate;
CHECK (snd_pcm_hw_params_set_rate_near (alsa->handle, params, &rrate, NULL),
no_rate);
- if (rrate != alsa->rate)
- goto rate_match;
#ifndef GST_DISABLE_GST_DEBUG
/* get and dump some limits */
alsa->rate, snd_strerror (err)));
return err;
}
-rate_match:
- {
- GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
- ("Rate doesn't match (requested %iHz, get %iHz)", alsa->rate, err));
- snd_pcm_hw_params_free (params);
- return -EINVAL;
- }
buffer_size:
{
GST_ELEMENT_ERROR (alsa, RESOURCE, SETTINGS, (NULL),
#include "gstalsasrc.h"
#include "gstalsadeviceprobe.h"
+#include "gst/glib-compat-private.h"
#include <gst/gst-i18n-plugin.h>
"Audio source (ALSA)", "Source/Audio",
"Read from a sound card via ALSA", "Wim Taymans <wim@fluendo.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&alsasrc_src_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &alsasrc_src_factory);
}
static void
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
am_libgstcdparanoia_la_OBJECTS = \
libgstcdparanoia_la-gstcdparanoiasrc.lo
libgstcdparanoia_la_OBJECTS = $(am_libgstcdparanoia_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
libgstcdparanoia_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstcdparanoia_la_LIBTOOLFLAGS) $(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 = $(libgstcdparanoia_la_SOURCES)
DIST_SOURCES = $(libgstcdparanoia_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstcdparanoia.la: $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_DEPENDENCIES)
+libgstcdparanoia.la: $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_DEPENDENCIES) $(EXTRA_libgstcdparanoia_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstcdparanoia_la_LINK) -rpath $(plugindir) $(libgstcdparanoia_la_OBJECTS) $(libgstcdparanoia_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstcdparanoia_la-gstcdparanoiasrc.lo: gstcdparanoiasrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdparanoia_la_CFLAGS) $(CFLAGS) -MT libgstcdparanoia_la-gstcdparanoiasrc.lo -MD -MP -MF $(DEPDIR)/libgstcdparanoia_la-gstcdparanoiasrc.Tpo -c -o libgstcdparanoia_la-gstcdparanoiasrc.lo `test -f 'gstcdparanoiasrc.c' || echo '$(srcdir)/'`gstcdparanoiasrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcdparanoia_la-gstcdparanoiasrc.Tpo $(DEPDIR)/libgstcdparanoia_la-gstcdparanoiasrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcdparanoiasrc.c' object='libgstcdparanoia_la-gstcdparanoiasrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcdparanoiasrc.c' object='libgstcdparanoia_la-gstcdparanoiasrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdparanoia_la_CFLAGS) $(CFLAGS) -c -o libgstcdparanoia_la-gstcdparanoiasrc.lo `test -f 'gstcdparanoiasrc.c' || echo '$(srcdir)/'`gstcdparanoiasrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdparanoia_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdparanoia_la_CFLAGS) $(CFLAGS) -c -o libgstcdparanoia_la-gstcdparanoiasrc.lo `test -f 'gstcdparanoiasrc.c' || echo '$(srcdir)/'`gstcdparanoiasrc.c
mostlyclean-libtool:
-rm -f *.lo
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:
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
#endif
-
return TRUE;
}
-
GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
GST_VERSION_MINOR,
"cdparanoia",
"Read audio from CD in paranoid mode",
- plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
+ plugin_init, GST_PLUGINS_BASE_VERSION, "LGPL", GST_PACKAGE_NAME,
+ GST_PACKAGE_ORIGIN)
#define size16 gint16
#define size32 gint32
+/* on OSX the cdparanoia headers include IOKit framework headers (in particular
+ * SCSICmds_INQUIRY_Definitions.h) which define a structure that has a member
+ * named VERSION, so we must #undef VERSION here for things to compile on OSX */
+static char GST_PLUGINS_BASE_VERSION[] = VERSION;
+#undef VERSION
+
#ifdef CDPARANOIA_HEADERS_IN_DIR
#include <cdda/cdda_interface.h>
#include <cdda/cdda_paranoia.h>
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstgio_la-gstgiostreamsink.lo \
libgstgio_la-gstgiostreamsrc.lo
libgstgio_la_OBJECTS = $(am_libgstgio_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
libgstgio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstgio_la_SOURCES)
DIST_SOURCES = $(libgstgio_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstgio.la: $(libgstgio_la_OBJECTS) $(libgstgio_la_DEPENDENCIES)
+libgstgio.la: $(libgstgio_la_OBJECTS) $(libgstgio_la_DEPENDENCIES) $(EXTRA_libgstgio_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstgio_la_LINK) -rpath $(plugindir) $(libgstgio_la_OBJECTS) $(libgstgio_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstgio_la-gstgio.lo: gstgio.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgio.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgio.Tpo -c -o libgstgio_la-gstgio.lo `test -f 'gstgio.c' || echo '$(srcdir)/'`gstgio.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgio.Tpo $(DEPDIR)/libgstgio_la-gstgio.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgio.c' object='libgstgio_la-gstgio.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgio.c' object='libgstgio_la-gstgio.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgio.lo `test -f 'gstgio.c' || echo '$(srcdir)/'`gstgio.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgio.lo `test -f 'gstgio.c' || echo '$(srcdir)/'`gstgio.c
libgstgio_la-gstgiobasesink.lo: gstgiobasesink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiobasesink.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiobasesink.Tpo -c -o libgstgio_la-gstgiobasesink.lo `test -f 'gstgiobasesink.c' || echo '$(srcdir)/'`gstgiobasesink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiobasesink.Tpo $(DEPDIR)/libgstgio_la-gstgiobasesink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgiobasesink.c' object='libgstgio_la-gstgiobasesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgiobasesink.c' object='libgstgio_la-gstgiobasesink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesink.lo `test -f 'gstgiobasesink.c' || echo '$(srcdir)/'`gstgiobasesink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesink.lo `test -f 'gstgiobasesink.c' || echo '$(srcdir)/'`gstgiobasesink.c
libgstgio_la-gstgiobasesrc.lo: gstgiobasesrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiobasesrc.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiobasesrc.Tpo -c -o libgstgio_la-gstgiobasesrc.lo `test -f 'gstgiobasesrc.c' || echo '$(srcdir)/'`gstgiobasesrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiobasesrc.Tpo $(DEPDIR)/libgstgio_la-gstgiobasesrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgiobasesrc.c' object='libgstgio_la-gstgiobasesrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgiobasesrc.c' object='libgstgio_la-gstgiobasesrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesrc.lo `test -f 'gstgiobasesrc.c' || echo '$(srcdir)/'`gstgiobasesrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiobasesrc.lo `test -f 'gstgiobasesrc.c' || echo '$(srcdir)/'`gstgiobasesrc.c
libgstgio_la-gstgiosink.lo: gstgiosink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiosink.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiosink.Tpo -c -o libgstgio_la-gstgiosink.lo `test -f 'gstgiosink.c' || echo '$(srcdir)/'`gstgiosink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiosink.Tpo $(DEPDIR)/libgstgio_la-gstgiosink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgiosink.c' object='libgstgio_la-gstgiosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgiosink.c' object='libgstgio_la-gstgiosink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosink.lo `test -f 'gstgiosink.c' || echo '$(srcdir)/'`gstgiosink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosink.lo `test -f 'gstgiosink.c' || echo '$(srcdir)/'`gstgiosink.c
libgstgio_la-gstgiosrc.lo: gstgiosrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiosrc.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiosrc.Tpo -c -o libgstgio_la-gstgiosrc.lo `test -f 'gstgiosrc.c' || echo '$(srcdir)/'`gstgiosrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiosrc.Tpo $(DEPDIR)/libgstgio_la-gstgiosrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgiosrc.c' object='libgstgio_la-gstgiosrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgiosrc.c' object='libgstgio_la-gstgiosrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosrc.lo `test -f 'gstgiosrc.c' || echo '$(srcdir)/'`gstgiosrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiosrc.lo `test -f 'gstgiosrc.c' || echo '$(srcdir)/'`gstgiosrc.c
libgstgio_la-gstgiostreamsink.lo: gstgiostreamsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiostreamsink.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiostreamsink.Tpo -c -o libgstgio_la-gstgiostreamsink.lo `test -f 'gstgiostreamsink.c' || echo '$(srcdir)/'`gstgiostreamsink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiostreamsink.Tpo $(DEPDIR)/libgstgio_la-gstgiostreamsink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgiostreamsink.c' object='libgstgio_la-gstgiostreamsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgiostreamsink.c' object='libgstgio_la-gstgiostreamsink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsink.lo `test -f 'gstgiostreamsink.c' || echo '$(srcdir)/'`gstgiostreamsink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsink.lo `test -f 'gstgiostreamsink.c' || echo '$(srcdir)/'`gstgiostreamsink.c
libgstgio_la-gstgiostreamsrc.lo: gstgiostreamsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -MT libgstgio_la-gstgiostreamsrc.lo -MD -MP -MF $(DEPDIR)/libgstgio_la-gstgiostreamsrc.Tpo -c -o libgstgio_la-gstgiostreamsrc.lo `test -f 'gstgiostreamsrc.c' || echo '$(srcdir)/'`gstgiostreamsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgio_la-gstgiostreamsrc.Tpo $(DEPDIR)/libgstgio_la-gstgiostreamsrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgiostreamsrc.c' object='libgstgio_la-gstgiostreamsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgiostreamsrc.c' object='libgstgio_la-gstgiostreamsrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsrc.lo `test -f 'gstgiostreamsrc.c' || echo '$(srcdir)/'`gstgiostreamsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgio_la_CFLAGS) $(CFLAGS) -c -o libgstgio_la-gstgiostreamsrc.lo `test -f 'gstgiostreamsrc.c' || echo '$(srcdir)/'`gstgiostreamsrc.c
mostlyclean-libtool:
-rm -f *.lo
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:
GST_DEBUG_CATEGORY_INIT (gst_gio_base_sink_debug, "gio_base_sink", 0,
"GIO base sink");
- 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);
}
static void
GST_DEBUG_CATEGORY_INIT (gst_gio_base_src_debug, "gio_base_src", 0,
"GIO base source");
- 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);
}
static void
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstgnomevfs_la-gstgnomevfssrc.lo \
libgstgnomevfs_la-gstgnomevfsuri.lo
libgstgnomevfs_la_OBJECTS = $(am_libgstgnomevfs_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
libgstgnomevfs_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstgnomevfs_la_SOURCES)
DIST_SOURCES = $(libgstgnomevfs_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstgnomevfs.la: $(libgstgnomevfs_la_OBJECTS) $(libgstgnomevfs_la_DEPENDENCIES)
+libgstgnomevfs.la: $(libgstgnomevfs_la_OBJECTS) $(libgstgnomevfs_la_DEPENDENCIES) $(EXTRA_libgstgnomevfs_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstgnomevfs_la_LINK) -rpath $(plugindir) $(libgstgnomevfs_la_OBJECTS) $(libgstgnomevfs_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstgnomevfs_la-gstgnomevfs.lo: gstgnomevfs.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfs.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfs.Tpo -c -o libgstgnomevfs_la-gstgnomevfs.lo `test -f 'gstgnomevfs.c' || echo '$(srcdir)/'`gstgnomevfs.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfs.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfs.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgnomevfs.c' object='libgstgnomevfs_la-gstgnomevfs.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgnomevfs.c' object='libgstgnomevfs_la-gstgnomevfs.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfs.lo `test -f 'gstgnomevfs.c' || echo '$(srcdir)/'`gstgnomevfs.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfs.lo `test -f 'gstgnomevfs.c' || echo '$(srcdir)/'`gstgnomevfs.c
libgstgnomevfs_la-gstgnomevfssink.lo: gstgnomevfssink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfssink.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssink.Tpo -c -o libgstgnomevfs_la-gstgnomevfssink.lo `test -f 'gstgnomevfssink.c' || echo '$(srcdir)/'`gstgnomevfssink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssink.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgnomevfssink.c' object='libgstgnomevfs_la-gstgnomevfssink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgnomevfssink.c' object='libgstgnomevfs_la-gstgnomevfssink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssink.lo `test -f 'gstgnomevfssink.c' || echo '$(srcdir)/'`gstgnomevfssink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssink.lo `test -f 'gstgnomevfssink.c' || echo '$(srcdir)/'`gstgnomevfssink.c
libgstgnomevfs_la-gstgnomevfssrc.lo: gstgnomevfssrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfssrc.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssrc.Tpo -c -o libgstgnomevfs_la-gstgnomevfssrc.lo `test -f 'gstgnomevfssrc.c' || echo '$(srcdir)/'`gstgnomevfssrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssrc.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfssrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgnomevfssrc.c' object='libgstgnomevfs_la-gstgnomevfssrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgnomevfssrc.c' object='libgstgnomevfs_la-gstgnomevfssrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssrc.lo `test -f 'gstgnomevfssrc.c' || echo '$(srcdir)/'`gstgnomevfssrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfssrc.lo `test -f 'gstgnomevfssrc.c' || echo '$(srcdir)/'`gstgnomevfssrc.c
libgstgnomevfs_la-gstgnomevfsuri.lo: gstgnomevfsuri.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -MT libgstgnomevfs_la-gstgnomevfsuri.lo -MD -MP -MF $(DEPDIR)/libgstgnomevfs_la-gstgnomevfsuri.Tpo -c -o libgstgnomevfs_la-gstgnomevfsuri.lo `test -f 'gstgnomevfsuri.c' || echo '$(srcdir)/'`gstgnomevfsuri.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgnomevfs_la-gstgnomevfsuri.Tpo $(DEPDIR)/libgstgnomevfs_la-gstgnomevfsuri.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgnomevfsuri.c' object='libgstgnomevfs_la-gstgnomevfsuri.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgnomevfsuri.c' object='libgstgnomevfs_la-gstgnomevfsuri.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfsuri.lo `test -f 'gstgnomevfsuri.c' || echo '$(srcdir)/'`gstgnomevfsuri.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgnomevfs_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgnomevfs_la_CFLAGS) $(CFLAGS) -c -o libgstgnomevfs_la-gstgnomevfsuri.lo `test -f 'gstgnomevfsuri.c' || echo '$(srcdir)/'`gstgnomevfsuri.c
mostlyclean-libtool:
-rm -f *.lo
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:
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sinktemplate));
+ gst_element_class_add_static_pad_template (element_class, &sinktemplate);
gst_element_class_set_details_simple (element_class,
"GnomeVFS Sink", "Sink/File",
#include "gst/gst-i18n-plugin.h"
#include "gstgnomevfssrc.h"
+#include <gnome-vfs-module-2.0/libgnomevfs/gnome-vfs-cancellable-ops.h>
#include <stdio.h>
#include <stdlib.h>
static gboolean gst_gnome_vfs_src_start (GstBaseSrc * src);
static gboolean gst_gnome_vfs_src_is_seekable (GstBaseSrc * src);
static gboolean gst_gnome_vfs_src_check_get_range (GstBaseSrc * src);
+static gboolean gst_gnome_vfs_src_unlock (GstBaseSrc * basesrc);
+static gboolean gst_gnome_vfs_src_unlock_stop (GstBaseSrc * basesrc);
static gboolean gst_gnome_vfs_src_get_size (GstBaseSrc * src, guint64 * size);
static GstFlowReturn gst_gnome_vfs_src_create (GstBaseSrc * basesrc,
guint64 offset, guint size, GstBuffer ** buffer);
{
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,
"GnomeVFS Source", "Source/File",
"Read from any GnomeVFS-supported file",
gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_start);
gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_stop);
+ gstbasesrc_class->unlock = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_unlock);
+ gstbasesrc_class->unlock_stop =
+ GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_unlock_stop);
gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_get_size);
gstbasesrc_class->is_seekable =
GST_DEBUG_FUNCPTR (gst_gnome_vfs_src_is_seekable);
{
gnomevfssrc->uri = NULL;
gnomevfssrc->uri_name = NULL;
+ gnomevfssrc->context = NULL;
gnomevfssrc->handle = NULL;
+ gnomevfssrc->interrupted = FALSE;
gnomevfssrc->curoffset = 0;
gnomevfssrc->seekable = FALSE;
guint8 *data;
guint todo;
GstGnomeVFSSrc *src;
+ gboolean interrupted = FALSE;
src = GST_GNOME_VFS_SRC (basesrc);
data = GST_BUFFER_DATA (buf);
todo = size;
- while (todo > 0) {
+ while (!src->interrupted && todo > 0) {
/* this can return less that we ask for */
- res = gnome_vfs_read (src->handle, data, todo, &readbytes);
+ res =
+ gnome_vfs_read_cancellable (src->handle, data, todo, &readbytes,
+ src->context);
+
+ if (G_UNLIKELY (res == GNOME_VFS_ERROR_CANCELLED)) {
+ GST_DEBUG_OBJECT (src, "interrupted");
+
+ /* Just take what we've so far gotten and return */
+ size = size - todo;
+ GST_BUFFER_SIZE (buf) = size;
+ todo = 0;
+ interrupted = TRUE;
+ break;
+ }
if (G_UNLIKELY (res == GNOME_VFS_ERROR_EOF || (res == GNOME_VFS_OK
&& readbytes == 0)))
}
GST_LOG (" got size %" G_GUINT64_FORMAT, readbytes);
}
+
+ if (interrupted)
+ goto interrupted;
+
GST_BUFFER_OFFSET (buf) = src->curoffset;
src->curoffset += size;
("Failed to read data: %s", gnome_vfs_result_to_string (res)));
return GST_FLOW_ERROR;
}
+interrupted:
+ {
+ gst_buffer_unref (buf);
+ return GST_FLOW_WRONG_STATE;
+ }
eos:
{
gst_buffer_unref (buf);
}
}
+/* Interrupt a blocking request. */
+static gboolean
+gst_gnome_vfs_src_unlock (GstBaseSrc * basesrc)
+{
+ GstGnomeVFSSrc *src;
+
+ src = GST_GNOME_VFS_SRC (basesrc);
+ GST_DEBUG_OBJECT (src, "unlock()");
+ src->interrupted = TRUE;
+ if (src->context) {
+ GnomeVFSCancellation *cancel =
+ gnome_vfs_context_get_cancellation (src->context);
+ if (cancel)
+ gnome_vfs_cancellation_cancel (cancel);
+ }
+ return TRUE;
+}
+
+/* Interrupt interrupt. */
+static gboolean
+gst_gnome_vfs_src_unlock_stop (GstBaseSrc * basesrc)
+{
+ GstGnomeVFSSrc *src;
+
+ src = GST_GNOME_VFS_SRC (basesrc);
+ GST_DEBUG_OBJECT (src, "unlock_stop()");
+
+ src->interrupted = FALSE;
+ return TRUE;
+}
+
static gboolean
gst_gnome_vfs_src_get_size (GstBaseSrc * basesrc, guint64 * size)
{
gst_gnome_vfs_src_push_callbacks (src);
+ src->context = gnome_vfs_context_new ();
if (src->uri != NULL) {
GnomeVFSOpenMode mode = GNOME_VFS_OPEN_READ;
src->handle = NULL;
}
src->curoffset = 0;
+ src->interrupted = FALSE;
+ gnome_vfs_context_free (src->context);
+ src->context = NULL;
return TRUE;
}
/* uri, file, ... */
GnomeVFSURI *uri;
gchar *uri_name;
+ GnomeVFSContext *context;
GnomeVFSHandle *handle;
gboolean own_handle;
+ gboolean interrupted;
GnomeVFSFileOffset curoffset; /* current offset in file */
gboolean seekable;
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
$(am__DEPENDENCIES_1)
am_libgstlibvisual_la_OBJECTS = libgstlibvisual_la-visual.lo
libgstlibvisual_la_OBJECTS = $(am_libgstlibvisual_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
libgstlibvisual_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstlibvisual_la_SOURCES)
DIST_SOURCES = $(libgstlibvisual_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstlibvisual.la: $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_DEPENDENCIES)
+libgstlibvisual.la: $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_DEPENDENCIES) $(EXTRA_libgstlibvisual_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstlibvisual_la_LINK) -rpath $(plugindir) $(libgstlibvisual_la_OBJECTS) $(libgstlibvisual_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstlibvisual_la-visual.lo: visual.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -MT libgstlibvisual_la-visual.lo -MD -MP -MF $(DEPDIR)/libgstlibvisual_la-visual.Tpo -c -o libgstlibvisual_la-visual.lo `test -f 'visual.c' || echo '$(srcdir)/'`visual.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlibvisual_la-visual.Tpo $(DEPDIR)/libgstlibvisual_la-visual.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='visual.c' object='libgstlibvisual_la-visual.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='visual.c' object='libgstlibvisual_la-visual.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -c -o libgstlibvisual_la-visual.lo `test -f 'visual.c' || echo '$(srcdir)/'`visual.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlibvisual_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlibvisual_la_CFLAGS) $(CFLAGS) -c -o libgstlibvisual_la-visual.lo `test -f 'visual.c' || echo '$(srcdir)/'`visual.c
mostlyclean-libtool:
-rm -f *.lo
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:
klass->plugin->info->name, klass->plugin->info->version);
/* FIXME: improve to only register what plugin supports? */
- gst_element_class_add_pad_template (element,
- gst_static_pad_template_get (&src_template));
- gst_element_class_add_pad_template (element,
- gst_static_pad_template_get (&sink_template));
+ gst_element_class_add_static_pad_template (element, &src_template);
+ gst_element_class_add_static_pad_template (element, &sink_template);
gst_element_class_set_details_simple (element,
longname, "Visualization",
klass->plugin->info->about, "Benjamin Otte <otte@gnome.org>");
GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
- /* the max samples we must buffer buffer */
+ /* the max samples we must buffer */
max_samples = MAX (VISUAL_SAMPLES, visual->spf);
our_latency =
gst_util_uint64_scale_int (max_samples, GST_SECOND, visual->rate);
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstogg_la-gstoggparse.lo libgstogg_la-gstoggstream.lo \
libgstogg_la-dirac_parse.lo libgstogg_la-vorbis_parse.lo
libgstogg_la_OBJECTS = $(am_libgstogg_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
libgstogg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstogg_la_SOURCES)
DIST_SOURCES = $(libgstogg_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstogg.la: $(libgstogg_la_OBJECTS) $(libgstogg_la_DEPENDENCIES)
+libgstogg.la: $(libgstogg_la_OBJECTS) $(libgstogg_la_DEPENDENCIES) $(EXTRA_libgstogg_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstogg_la_LINK) -rpath $(plugindir) $(libgstogg_la_OBJECTS) $(libgstogg_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstogg_la-gstogg.lo: gstogg.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstogg.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstogg.Tpo -c -o libgstogg_la-gstogg.lo `test -f 'gstogg.c' || echo '$(srcdir)/'`gstogg.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstogg.Tpo $(DEPDIR)/libgstogg_la-gstogg.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstogg.c' object='libgstogg_la-gstogg.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstogg.c' object='libgstogg_la-gstogg.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogg.lo `test -f 'gstogg.c' || echo '$(srcdir)/'`gstogg.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogg.lo `test -f 'gstogg.c' || echo '$(srcdir)/'`gstogg.c
libgstogg_la-gstoggdemux.lo: gstoggdemux.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggdemux.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggdemux.Tpo -c -o libgstogg_la-gstoggdemux.lo `test -f 'gstoggdemux.c' || echo '$(srcdir)/'`gstoggdemux.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggdemux.Tpo $(DEPDIR)/libgstogg_la-gstoggdemux.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstoggdemux.c' object='libgstogg_la-gstoggdemux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstoggdemux.c' object='libgstogg_la-gstoggdemux.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggdemux.lo `test -f 'gstoggdemux.c' || echo '$(srcdir)/'`gstoggdemux.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggdemux.lo `test -f 'gstoggdemux.c' || echo '$(srcdir)/'`gstoggdemux.c
libgstogg_la-gstoggmux.lo: gstoggmux.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggmux.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggmux.Tpo -c -o libgstogg_la-gstoggmux.lo `test -f 'gstoggmux.c' || echo '$(srcdir)/'`gstoggmux.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggmux.Tpo $(DEPDIR)/libgstogg_la-gstoggmux.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstoggmux.c' object='libgstogg_la-gstoggmux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstoggmux.c' object='libgstogg_la-gstoggmux.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggmux.lo `test -f 'gstoggmux.c' || echo '$(srcdir)/'`gstoggmux.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggmux.lo `test -f 'gstoggmux.c' || echo '$(srcdir)/'`gstoggmux.c
libgstogg_la-gstogmparse.lo: gstogmparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstogmparse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstogmparse.Tpo -c -o libgstogg_la-gstogmparse.lo `test -f 'gstogmparse.c' || echo '$(srcdir)/'`gstogmparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstogmparse.Tpo $(DEPDIR)/libgstogg_la-gstogmparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstogmparse.c' object='libgstogg_la-gstogmparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstogmparse.c' object='libgstogg_la-gstogmparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogmparse.lo `test -f 'gstogmparse.c' || echo '$(srcdir)/'`gstogmparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstogmparse.lo `test -f 'gstogmparse.c' || echo '$(srcdir)/'`gstogmparse.c
libgstogg_la-gstoggaviparse.lo: gstoggaviparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggaviparse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggaviparse.Tpo -c -o libgstogg_la-gstoggaviparse.lo `test -f 'gstoggaviparse.c' || echo '$(srcdir)/'`gstoggaviparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggaviparse.Tpo $(DEPDIR)/libgstogg_la-gstoggaviparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstoggaviparse.c' object='libgstogg_la-gstoggaviparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstoggaviparse.c' object='libgstogg_la-gstoggaviparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggaviparse.lo `test -f 'gstoggaviparse.c' || echo '$(srcdir)/'`gstoggaviparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggaviparse.lo `test -f 'gstoggaviparse.c' || echo '$(srcdir)/'`gstoggaviparse.c
libgstogg_la-gstoggparse.lo: gstoggparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggparse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggparse.Tpo -c -o libgstogg_la-gstoggparse.lo `test -f 'gstoggparse.c' || echo '$(srcdir)/'`gstoggparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggparse.Tpo $(DEPDIR)/libgstogg_la-gstoggparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstoggparse.c' object='libgstogg_la-gstoggparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstoggparse.c' object='libgstogg_la-gstoggparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggparse.lo `test -f 'gstoggparse.c' || echo '$(srcdir)/'`gstoggparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggparse.lo `test -f 'gstoggparse.c' || echo '$(srcdir)/'`gstoggparse.c
libgstogg_la-gstoggstream.lo: gstoggstream.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-gstoggstream.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-gstoggstream.Tpo -c -o libgstogg_la-gstoggstream.lo `test -f 'gstoggstream.c' || echo '$(srcdir)/'`gstoggstream.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-gstoggstream.Tpo $(DEPDIR)/libgstogg_la-gstoggstream.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstoggstream.c' object='libgstogg_la-gstoggstream.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstoggstream.c' object='libgstogg_la-gstoggstream.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggstream.lo `test -f 'gstoggstream.c' || echo '$(srcdir)/'`gstoggstream.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-gstoggstream.lo `test -f 'gstoggstream.c' || echo '$(srcdir)/'`gstoggstream.c
libgstogg_la-dirac_parse.lo: dirac_parse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-dirac_parse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-dirac_parse.Tpo -c -o libgstogg_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-dirac_parse.Tpo $(DEPDIR)/libgstogg_la-dirac_parse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dirac_parse.c' object='libgstogg_la-dirac_parse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dirac_parse.c' object='libgstogg_la-dirac_parse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-dirac_parse.lo `test -f 'dirac_parse.c' || echo '$(srcdir)/'`dirac_parse.c
libgstogg_la-vorbis_parse.lo: vorbis_parse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -MT libgstogg_la-vorbis_parse.lo -MD -MP -MF $(DEPDIR)/libgstogg_la-vorbis_parse.Tpo -c -o libgstogg_la-vorbis_parse.lo `test -f 'vorbis_parse.c' || echo '$(srcdir)/'`vorbis_parse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstogg_la-vorbis_parse.Tpo $(DEPDIR)/libgstogg_la-vorbis_parse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vorbis_parse.c' object='libgstogg_la-vorbis_parse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vorbis_parse.c' object='libgstogg_la-vorbis_parse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-vorbis_parse.lo `test -f 'vorbis_parse.c' || echo '$(srcdir)/'`vorbis_parse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstogg_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstogg_la_CFLAGS) $(CFLAGS) -c -o libgstogg_la-vorbis_parse.lo `test -f 'vorbis_parse.c' || echo '$(srcdir)/'`vorbis_parse.c
mostlyclean-libtool:
-rm -f *.lo
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:
key frame ("i frame"), and the number of frames since the last key frame
("p frame"). The granulepos is constructed as the sum of the first number,
shifted to the left for granuleshift bits, and the second number:
-granulepos = pframe << granuleshift + iframe
+granulepos = (pframe << granuleshift) + iframe
(This means that given a framenumber or a timestamp, one cannot generate
the one and only granulepos for that page; several granulepos possibilities
1) the streaming mode.
In this mode, the ogg demuxer receives buffers in the _chain() function which
-are then simply submited to the ogg sync layer. Pages are then processed when
+are then simply submitted to the ogg sync layer. Pages are then processed when
the sync layer detects them, pads are created for new chains and packets are
sent to the peer elements of the pads.
"parse an ogg avi stream into pages (info about ogg: http://xiph.org)",
"Wim Taymans <wim@fluendo.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&ogg_avi_parse_sink_template_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&ogg_avi_parse_src_template_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &ogg_avi_parse_sink_template_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &ogg_avi_parse_src_template_factory);
}
static void
#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 <string.h>
#include <gst/gst-i18n-plugin.h>
#include <gst/tag/tag.h>
#include "gstoggdemux.h"
+#include "gst/glib-compat-private.h"
+
#define CHUNKSIZE (8500) /* this is out of vorbisfile */
+/* we hope we get a granpos within this many bytes off the end */
+#define DURATION_CHUNK_OFFSET (64*1024)
+
+/* stop duration checks within this much of EOS */
+#define EOS_AVOIDANCE_THRESHOLD 8192
+
#define GST_FLOW_LIMIT GST_FLOW_CUSTOM_ERROR
+#define GST_FLOW_SKIP_PUSH GST_FLOW_CUSTOM_SUCCESS_1
#define GST_CHAIN_LOCK(ogg) g_mutex_lock((ogg)->chain_lock)
#define GST_CHAIN_UNLOCK(ogg) g_mutex_unlock((ogg)->chain_lock)
+#define GST_PUSH_LOCK(ogg) \
+ do { \
+ GST_TRACE_OBJECT(ogg, "Push lock"); \
+ g_mutex_lock((ogg)->push_lock); \
+ } while(0)
+
+#define GST_PUSH_UNLOCK(ogg) \
+ do { \
+ GST_TRACE_OBJECT(ogg, "Push unlock"); \
+ g_mutex_unlock((ogg)->push_lock); \
+ } while(0)
+
GST_DEBUG_CATEGORY (gst_ogg_demux_debug);
GST_DEBUG_CATEGORY (gst_ogg_demux_setup_debug);
#define GST_CAT_DEFAULT gst_ogg_demux_debug
static ogg_packet *
_ogg_packet_copy (const ogg_packet * packet)
{
- ogg_packet *ret = g_new0 (ogg_packet, 1);
+ ogg_packet *ret = g_slice_new (ogg_packet);
*ret = *packet;
ret->packet = g_memdup (packet->packet, packet->bytes);
_ogg_packet_free (ogg_packet * packet)
{
g_free (packet->packet);
- g_free (packet);
+ g_slice_free (ogg_packet, packet);
}
static ogg_page *
gst_ogg_page_copy (ogg_page * page)
{
- ogg_page *p = g_new0 (ogg_page, 1);
+ ogg_page *p = g_slice_new (ogg_page);
/* make a copy of the page */
p->header = g_memdup (page->header, page->header_len);
{
g_free (page->header);
g_free (page->body);
- g_free (page);
+ g_slice_free (ogg_page, page);
}
static gboolean gst_ogg_demux_collect_chain_info (GstOggDemux * ogg,
GstOggChain * chain);
static gboolean gst_ogg_demux_activate_chain (GstOggDemux * ogg,
GstOggChain * chain, GstEvent * event);
+static void gst_ogg_pad_mark_discont (GstOggPad * pad);
static void gst_ogg_chain_mark_discont (GstOggChain * chain);
static gboolean gst_ogg_demux_perform_seek (GstOggDemux * ogg,
static gboolean gst_ogg_pad_event (GstPad * pad, GstEvent * event);
static GstCaps *gst_ogg_pad_getcaps (GstPad * pad);
static GstOggPad *gst_ogg_chain_get_stream (GstOggChain * chain,
- glong serialno);
+ guint32 serialno);
static GstFlowReturn gst_ogg_demux_combine_flows (GstOggDemux * ogg,
GstOggPad * pad, GstFlowReturn ret);
GstCaps *gst_ogg_demux_set_header_on_caps (GstOggDemux * ogg,
GstCaps * caps, GList * headers);
+static gboolean gst_ogg_demux_send_event (GstOggDemux * ogg, GstEvent * event);
+static gboolean gst_ogg_demux_perform_seek_push (GstOggDemux * ogg,
+ GstEvent * event);
+static gboolean gst_ogg_demux_check_duration_push (GstOggDemux * ogg,
+ GstSeekFlags flags, GstEvent * event);
GType gst_ogg_pad_get_type (void);
G_DEFINE_TYPE (GstOggPad, gst_ogg_pad, GST_TYPE_PAD);
pad->continued = NULL;
pad->map.headers = NULL;
pad->map.queued = NULL;
+
+ pad->map.granulerate_n = 0;
+ pad->map.granulerate_d = 0;
+ pad->map.granuleshift = -1;
}
static void
if (ogg->pullmode) {
seekable = TRUE;
stop = ogg->total_time;
+ } else if (ogg->push_disable_seeking) {
+ seekable = FALSE;
} else if (ogg->current_chain->streams->len) {
gint i;
GstOggPad *pad =
g_array_index (ogg->current_chain->streams, GstOggPad *, i);
- seekable |= (pad->map.index != NULL && pad->map.n_index != 0);
-
+ seekable = TRUE;
if (pad->map.index != NULL && pad->map.n_index != 0) {
GstOggIndex *idx;
GstClockTime idx_time;
stop = idx_time;
else
stop = MAX (idx_time, stop);
+ } else {
+ stop = -1; /* we've no clue, sadly, without seeking */
}
}
}
GstOggDemux *ogg = pad->ogg;
#endif
- GST_DEBUG_OBJECT (ogg, "%p queueing data serial %08lx", pad,
- pad->map.serialno);
+ GST_DEBUG_OBJECT (ogg, "%p queueing data serial %08x",
+ pad, pad->map.serialno);
pad->map.queued = g_list_append (pad->map.queued, _ogg_packet_copy (packet));
cret = GST_FLOW_OK;
+ GST_DEBUG_OBJECT (pad, "Chaining %d %d %" GST_TIME_FORMAT " %d %p",
+ ogg->pullmode, ogg->push_state, GST_TIME_ARGS (ogg->push_time_length),
+ ogg->push_disable_seeking, ogg->building_chain);
+ GST_PUSH_LOCK (ogg);
+ if (!ogg->pullmode && ogg->push_state == PUSH_PLAYING
+ && ogg->push_time_length == GST_CLOCK_TIME_NONE
+ && !ogg->push_disable_seeking) {
+ if (!ogg->building_chain) {
+ /* we got all headers, now try to get duration */
+ if (!gst_ogg_demux_check_duration_push (ogg, GST_SEEK_FLAG_FLUSH, NULL)) {
+ GST_PUSH_UNLOCK (ogg);
+ return GST_FLOW_OK;
+ }
+ }
+ GST_PUSH_UNLOCK (ogg);
+ return GST_FLOW_OK;
+ }
+ GST_PUSH_UNLOCK (ogg);
+
GST_DEBUG_OBJECT (ogg,
- "%p streaming to peer serial %08lx", pad, pad->map.serialno);
+ "%p streaming to peer serial %08x", pad, pad->map.serialno);
if (pad->map.is_ogm) {
const guint8 *data;
}
/* get timing info for the packet */
- duration = gst_ogg_stream_get_packet_duration (&pad->map, packet);
- GST_DEBUG_OBJECT (ogg, "packet duration %" G_GUINT64_FORMAT, duration);
+ if (gst_ogg_stream_packet_is_header (&pad->map, packet)) {
+ duration = 0;
+ GST_DEBUG_OBJECT (ogg, "packet is header");
+ } else {
+ duration = gst_ogg_stream_get_packet_duration (&pad->map, packet);
+ GST_DEBUG_OBJECT (ogg, "packet duration %" G_GUINT64_FORMAT, duration);
+ }
if (packet->b_o_s) {
out_timestamp = GST_CLOCK_TIME_NONE;
pad->current_granule);
} else if (ogg->segment.rate > 0.0 && pad->current_granule != -1) {
pad->current_granule += duration;
- GST_DEBUG_OBJECT (ogg, "interpollating granule %" G_GUINT64_FORMAT,
+ if (gst_ogg_stream_packet_is_key_frame (&pad->map, packet)) {
+ pad->keyframe_granule = pad->current_granule;
+ }
+ GST_DEBUG_OBJECT (ogg, "interpolating granule %" G_GUINT64_FORMAT,
pad->current_granule);
}
if (ogg->segment.rate < 0.0 && packet->granulepos == -1) {
for (i = 0; i < chain->streams->len; i++) {
GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
- if (pad->map.is_sparse)
+ if (pad->map.is_skeleton)
continue;
/* can do this if the pad start time is not defined */
+ GST_DEBUG_OBJECT (ogg, "Pad %08x (%s) start time is %" GST_TIME_FORMAT,
+ pad->map.serialno, gst_ogg_stream_get_media_type (&pad->map),
+ GST_TIME_ARGS (pad->start_time));
if (pad->start_time == GST_CLOCK_TIME_NONE) {
- start_time = G_MAXUINT64;
- break;
+ if (!pad->map.is_sparse) {
+ start_time = G_MAXUINT64;
+ break;
+ }
} else {
start_time = MIN (start_time, pad->start_time);
}
return start_time;
}
+static GstClockTime
+gst_ogg_demux_collect_sync_time (GstOggDemux * ogg, GstOggChain * chain)
+{
+ gint i;
+ GstClockTime sync_time = GST_CLOCK_TIME_NONE;
+
+ if (!chain) {
+ GST_WARNING_OBJECT (ogg, "No chain!");
+ return GST_CLOCK_TIME_NONE;
+ }
+
+ for (i = 0; i < chain->streams->len; i++) {
+ GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+
+ if (pad->map.is_sparse)
+ continue;
+
+ if (pad->push_sync_time == GST_CLOCK_TIME_NONE) {
+ sync_time = GST_CLOCK_TIME_NONE;
+ break;
+ } else {
+ if (sync_time == GST_CLOCK_TIME_NONE)
+ sync_time = pad->push_sync_time;
+ else
+ sync_time = MAX (sync_time, pad->push_sync_time);
+ }
+ }
+ return sync_time;
+}
+
/* submit a packet to the oggpad, this function will run the
* typefind code for the pad if this is the first packet for this
* stream
GstOggDemux *ogg = pad->ogg;
- GST_DEBUG_OBJECT (ogg, "%p submit packet serial %08lx", pad,
- pad->map.serialno);
+ GST_DEBUG_OBJECT (ogg, "%p submit packet serial %08x",
+ pad, pad->map.serialno);
if (!pad->have_type) {
pad->have_type = gst_ogg_stream_setup_map (&pad->map, packet);
if (gst_ogg_map_parse_fisbone (&pad->map, packet->packet, packet->bytes,
&serialno, &type)) {
- GST_WARNING_OBJECT (pad->ogg,
+ GST_DEBUG_OBJECT (pad->ogg,
"got skeleton packet for stream 0x%08x", serialno);
skel_pad = gst_ogg_chain_get_stream (pad->chain, serialno);
pad->start_time = gst_ogg_stream_granule_to_time (&pad->map,
start_granule);
- GST_DEBUG ("start time %" G_GINT64_FORMAT, pad->start_time);
+ GST_DEBUG_OBJECT (ogg,
+ "start time %" GST_TIME_FORMAT " (%" GST_TIME_FORMAT ") for %s "
+ "from granpos %" G_GINT64_FORMAT " (granule %" G_GINT64_FORMAT ", "
+ "accumulated granule %" G_GINT64_FORMAT,
+ GST_TIME_ARGS (pad->start_time), GST_TIME_ARGS (pad->start_time),
+ gst_ogg_stream_get_media_type (&pad->map),
+ (gint64) packet->granulepos, granule, pad->map.accumulated_granule);
} else {
packet->granulepos = gst_ogg_stream_granule_to_granulepos (&pad->map,
pad->map.accumulated_granule, pad->keyframe_granule);
segment_time = chain->begin_time;
/* create the newsegment event we are going to send out */
- event = gst_event_new_new_segment (FALSE, ogg->segment.rate,
- GST_FORMAT_TIME, start_time, chain->segment_stop, segment_time);
+ GST_PUSH_LOCK (ogg);
+ if (!ogg->pullmode && ogg->push_state == PUSH_LINEAR2) {
+ /* if we are fast forwarding to the actual seek target,
+ ensure previous frames are clipped */
+ GST_DEBUG_OBJECT (ogg,
+ "Resynced, starting segment at %" GST_TIME_FORMAT
+ ", start_time %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ogg->push_seek_time_original_target),
+ GST_TIME_ARGS (start_time));
+ event =
+ gst_event_new_new_segment (FALSE, ogg->push_seek_rate,
+ GST_FORMAT_TIME, ogg->push_seek_time_original_target, -1,
+ ogg->push_seek_time_original_target);
+ ogg->push_state = PUSH_PLAYING;
+ } else {
+ event = gst_event_new_new_segment (FALSE, ogg->segment.rate,
+ GST_FORMAT_TIME, start_time, chain->segment_stop, segment_time);
+ }
+ GST_PUSH_UNLOCK (ogg);
ogg->resync = FALSE;
}
break;
case -1:
GST_LOG_OBJECT (ogg, "packetout discont");
- gst_ogg_chain_mark_discont (pad->chain);
+ if (!pad->map.is_sparse) {
+ gst_ogg_chain_mark_discont (pad->chain);
+ } else {
+ gst_ogg_pad_mark_discont (pad);
+ }
break;
case 1:
GST_LOG_OBJECT (ogg, "packetout gave packet of size %ld", packet.bytes);
+ if (packet.bytes > ogg->max_packet_size)
+ ogg->max_packet_size = packet.bytes;
result = gst_ogg_pad_submit_packet (pad, &packet);
/* not linked is not a problem, it's possible that we are still
* collecting headers and that we don't have exposed the pads yet */
could_not_submit:
{
GST_WARNING_OBJECT (ogg,
- "could not submit packet for stream %08lx, error: %d",
- pad->map.serialno, result);
+ "could not submit packet for stream %08x, "
+ "error: %d", pad->map.serialno, result);
gst_ogg_pad_reset (pad);
return result;
}
}
+static void
+gst_ogg_demux_setup_bisection_bounds (GstOggDemux * ogg)
+{
+ if (ogg->push_last_seek_time >= ogg->push_seek_time_target) {
+ GST_DEBUG_OBJECT (ogg, "We overshot by %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ogg->push_last_seek_time - ogg->push_seek_time_target));
+ ogg->push_offset1 = ogg->push_last_seek_offset;
+ ogg->push_time1 = ogg->push_last_seek_time;
+ ogg->seek_undershot = FALSE;
+ } else {
+ GST_DEBUG_OBJECT (ogg, "We undershot by %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ogg->push_seek_time_target - ogg->push_last_seek_time));
+ ogg->push_offset0 = ogg->push_last_seek_offset;
+ ogg->push_time0 = ogg->push_last_seek_time;
+ ogg->seek_undershot = TRUE;
+ }
+}
+
+static gint64
+gst_ogg_demux_estimate_bisection_target (GstOggDemux * ogg, float seek_quality)
+{
+ gint64 best;
+ gint64 segment_bitrate;
+ gint64 skew;
+
+ /* we might not know the length of the stream in time,
+ so push_time1 might not be set */
+ GST_DEBUG_OBJECT (ogg,
+ "push time 1: %" GST_TIME_FORMAT ", dbytes %" G_GINT64_FORMAT,
+ GST_TIME_ARGS (ogg->push_time1), ogg->push_offset1 - ogg->push_offset0);
+ if (ogg->push_time1 == GST_CLOCK_TIME_NONE) {
+ GST_DEBUG_OBJECT (ogg,
+ "New segment to consider: bytes %" G_GINT64_FORMAT " %" G_GINT64_FORMAT
+ ", time %" GST_TIME_FORMAT " (open ended)", ogg->push_offset0,
+ ogg->push_offset1, GST_TIME_ARGS (ogg->push_time0));
+ if (ogg->push_last_seek_time == ogg->push_start_time) {
+ /* if we're at start and don't know the end time, we can't estimate
+ bitrate, so get the nominal declared bitrate as a failsafe, or some
+ random constant which will be discarded after we made a (probably
+ dire) first guess */
+ segment_bitrate = (ogg->bitrate > 0 ? ogg->bitrate : 1000);
+ } else {
+ segment_bitrate =
+ gst_util_uint64_scale (ogg->push_last_seek_offset - 0,
+ 8 * GST_SECOND, ogg->push_last_seek_time - ogg->push_start_time);
+ }
+ best =
+ ogg->push_offset0 +
+ gst_util_uint64_scale (ogg->push_seek_time_target - ogg->push_time0,
+ segment_bitrate, 8 * GST_SECOND);
+ ogg->seek_secant = TRUE;
+ } else {
+ GST_DEBUG_OBJECT (ogg,
+ "New segment to consider: bytes %" G_GINT64_FORMAT " %" G_GINT64_FORMAT
+ ", time %" GST_TIME_FORMAT " %" GST_TIME_FORMAT, ogg->push_offset0,
+ ogg->push_offset1, GST_TIME_ARGS (ogg->push_time0),
+ GST_TIME_ARGS (ogg->push_time1));
+ if (ogg->push_time0 == ogg->push_time1) {
+ best = ogg->push_offset0;
+ } else {
+ segment_bitrate =
+ gst_util_uint64_scale (ogg->push_offset1 - ogg->push_offset0,
+ 8 * GST_SECOND, ogg->push_time1 - ogg->push_time0);
+ GST_DEBUG_OBJECT (ogg,
+ "Local bitrate on the %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT
+ " segment: %" G_GINT64_FORMAT, GST_TIME_ARGS (ogg->push_time0),
+ GST_TIME_ARGS (ogg->push_time1), segment_bitrate);
+
+ best =
+ ogg->push_offset0 +
+ gst_util_uint64_scale (ogg->push_seek_time_target - ogg->push_time0,
+ segment_bitrate, 8 * GST_SECOND);
+ if (seek_quality < 0.5f && ogg->seek_secant) {
+ gint64 new_best, best2 = (ogg->push_offset0 + ogg->push_offset1) / 2;
+ /* if dire result, give as much as 25% weight to a dumb bisection guess */
+ float secant_weight = 1.0f - ((0.5 - seek_quality) / 0.5f) * 0.25;
+ new_best = (best * secant_weight + best2 * (1.0f - secant_weight));
+ GST_DEBUG_OBJECT (ogg,
+ "Secant says %" G_GINT64_FORMAT ", straight is %" G_GINT64_FORMAT
+ ", new best %" G_GINT64_FORMAT " with secant_weight %f", best,
+ best2, new_best, secant_weight);
+ best = new_best;
+ ogg->seek_secant = FALSE;
+ } else {
+ ogg->seek_secant = TRUE;
+ }
+ }
+ }
+
+ GST_DEBUG_OBJECT (ogg, "Raw best guess: %" G_GINT64_FORMAT, best);
+
+ /* offset the guess down as we need to capture the start of the
+ page we are targetting - but only do so if we did not undershoot
+ last time, as we're likely to still do this time */
+ if (!ogg->seek_undershot) {
+ /* very small packets are packed on pages, so offset by at least
+ a value which is likely to get us at least one page where the
+ packet starts */
+ skew =
+ ogg->max_packet_size >
+ ogg->max_page_size ? ogg->max_packet_size : ogg->max_page_size;
+ GST_DEBUG_OBJECT (ogg, "Offsetting by %" G_GINT64_FORMAT, skew);
+ best -= skew;
+ }
+
+ /* do not seek too close to the bounds, as we stop seeking
+ when we get to within max_packet_size before the target */
+ if (best > ogg->push_offset1 - ogg->max_packet_size) {
+ best = ogg->push_offset1 - ogg->max_packet_size;
+ GST_DEBUG_OBJECT (ogg,
+ "Too close to high bound, pushing back to %" G_GINT64_FORMAT, best);
+ } else if (best < ogg->push_offset0 + ogg->max_packet_size) {
+ best = ogg->push_offset0 + ogg->max_packet_size;
+ GST_DEBUG_OBJECT (ogg,
+ "Too close to low bound, pushing forth to %" G_GINT64_FORMAT, best);
+ }
+
+ /* keep within bounds */
+ if (best > ogg->push_offset1)
+ best = ogg->push_offset1;
+ if (best < ogg->push_offset0)
+ best = ogg->push_offset0;
+
+ GST_DEBUG_OBJECT (ogg, "Choosing target %" G_GINT64_FORMAT, best);
+ return best;
+}
+
+static void
+gst_ogg_demux_record_keyframe_time (GstOggDemux * ogg, GstOggPad * pad,
+ ogg_int64_t granpos)
+{
+ gint64 kf_granule;
+ GstClockTime kf_time;
+
+ kf_granule = gst_ogg_stream_granulepos_to_key_granule (&pad->map, granpos);
+ kf_time = gst_ogg_stream_granule_to_time (&pad->map, kf_granule);
+
+ pad->push_kf_time = kf_time;
+}
+
+/* returns the earliest keyframe time for all non sparse pads in the chain,
+ * if known, and GST_CLOCK_TIME_NONE if not */
+static GstClockTime
+gst_ogg_demux_get_earliest_keyframe_time (GstOggDemux * ogg)
+{
+ GstClockTime t = GST_CLOCK_TIME_NONE;
+ GstOggChain *chain = ogg->building_chain;
+ int i;
+
+ if (!chain) {
+ GST_WARNING_OBJECT (ogg, "No chain!");
+ return GST_CLOCK_TIME_NONE;
+ }
+ for (i = 0; i < chain->streams->len; i++) {
+ GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+
+ if (pad->map.is_sparse)
+ continue;
+ if (pad->push_kf_time == GST_CLOCK_TIME_NONE)
+ return GST_CLOCK_TIME_NONE;
+ if (t == GST_CLOCK_TIME_NONE || pad->push_kf_time < t)
+ t = pad->push_kf_time;
+ }
+
+ return t;
+}
+
+/* MUST be called with the push lock locked, and will unlock it
+ regardless of return value. */
+static GstFlowReturn
+gst_ogg_demux_seek_back_after_push_duration_check_unlock (GstOggDemux * ogg)
+{
+ GstEvent *event;
+
+ /* Get the delayed event, if any */
+ event = ogg->push_mode_seek_delayed_event;
+ ogg->push_mode_seek_delayed_event = NULL;
+
+ ogg->push_state = PUSH_PLAYING;
+
+ GST_PUSH_UNLOCK (ogg);
+
+ if (event) {
+ /* If there is one, perform it */
+ gst_ogg_demux_perform_seek_push (ogg, event);
+ } else {
+ /* If there wasn't, seek back at start to start normal playback */
+ GST_INFO_OBJECT (ogg, "Seeking back to 0 after duration check");
+ event = gst_event_new_seek (1.0, GST_FORMAT_BYTES,
+ GST_SEEK_FLAG_ACCURATE | GST_SEEK_FLAG_FLUSH,
+ GST_SEEK_TYPE_SET, 1, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
+ if (!gst_pad_push_event (ogg->sinkpad, event)) {
+ GST_WARNING_OBJECT (ogg, "Failed seeking back to start");
+ return GST_FLOW_ERROR;
+ }
+ }
+
+ return GST_FLOW_OK;
+}
+
+static float
+gst_ogg_demux_estimate_seek_quality (GstOggDemux * ogg)
+{
+ gint64 diff; /* how far from the goal we ended up */
+ gint64 dist; /* how far we moved this iteration */
+ float seek_quality;
+
+ if (ogg->push_prev_seek_time == GST_CLOCK_TIME_NONE) {
+ /* for the first seek, we pretend we got a good seek,
+ as we don't have a previous seek yet */
+ return 1.0f;
+ }
+
+ /* We take a guess at how good the last seek was at guessing
+ the byte target by comparing the amplitude of the last
+ seek to the error */
+ diff = ogg->push_seek_time_target - ogg->push_last_seek_time;
+ if (diff < 0)
+ diff = -diff;
+ dist = ogg->push_last_seek_time - ogg->push_prev_seek_time;
+ if (dist < 0)
+ dist = -dist;
+
+ seek_quality = (dist == 0) ? 0.0f : 1.0f / (1.0f + diff / (float) dist);
+
+ GST_DEBUG_OBJECT (ogg,
+ "We moved %" GST_TIME_FORMAT ", we're off by %" GST_TIME_FORMAT
+ ", seek quality %f", GST_TIME_ARGS (dist), GST_TIME_ARGS (diff),
+ seek_quality);
+ return seek_quality;
+}
+
+static void
+gst_ogg_demux_update_bisection_stats (GstOggDemux * ogg)
+{
+ int n;
+
+ GST_INFO_OBJECT (ogg, "Bisection needed %d + %d steps",
+ ogg->push_bisection_steps[0], ogg->push_bisection_steps[1]);
+
+ for (n = 0; n < 2; ++n) {
+ ogg->stats_bisection_steps[n] += ogg->push_bisection_steps[n];
+ if (ogg->stats_bisection_max_steps[n] < ogg->push_bisection_steps[n])
+ ogg->stats_bisection_max_steps[n] = ogg->push_bisection_steps[n];
+ }
+ ogg->stats_nbisections++;
+
+ GST_INFO_OBJECT (ogg,
+ "So far, %.2f + %.2f bisections needed per seek (max %d + %d)",
+ ogg->stats_bisection_steps[0] / (float) ogg->stats_nbisections,
+ ogg->stats_bisection_steps[1] / (float) ogg->stats_nbisections,
+ ogg->stats_bisection_max_steps[0], ogg->stats_bisection_max_steps[1]);
+}
+
+static gboolean
+gst_ogg_pad_handle_push_mode_state (GstOggPad * pad, ogg_page * page)
+{
+ GstOggDemux *ogg = pad->ogg;
+ ogg_int64_t granpos = ogg_page_granulepos (page);
+
+ GST_PUSH_LOCK (ogg);
+ if (granpos >= 0) {
+ if (ogg->push_start_time == GST_CLOCK_TIME_NONE) {
+ ogg->push_start_time =
+ gst_ogg_stream_get_start_time_for_granulepos (&pad->map, granpos);
+ GST_DEBUG_OBJECT (ogg, "Stream start time: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ogg->push_start_time));
+ }
+ ogg->push_time_offset =
+ gst_ogg_stream_get_end_time_for_granulepos (&pad->map, granpos);
+ if (ogg->push_time_offset > 0) {
+ GST_DEBUG_OBJECT (ogg, "Bitrate since start: %" G_GUINT64_FORMAT,
+ gst_util_uint64_scale (ogg->push_byte_offset, 8 * GST_SECOND,
+ ogg->push_time_offset));
+ }
+
+ if (ogg->push_state == PUSH_DURATION) {
+ GstClockTime t =
+ gst_ogg_stream_get_end_time_for_granulepos (&pad->map, granpos);
+
+ if (ogg->total_time == GST_CLOCK_TIME_NONE || t > ogg->total_time) {
+ GST_DEBUG_OBJECT (ogg, "New total time: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (t));
+ ogg->total_time = t;
+ ogg->push_time_length = t;
+ }
+
+ /* If we were determining the duration of the stream, we're now done,
+ and can get back to sending the original event we delayed.
+ We stop a bit before the end of the stream, as if we get a EOS
+ event and there is a queue2 upstream (such as when using playbin2),
+ it will pause the task *after* we come back from the EOS handler,
+ so we cannot prevent the pausing by issuing a seek. */
+ if (ogg->push_byte_offset + EOS_AVOIDANCE_THRESHOLD >=
+ ogg->push_byte_length) {
+ GstMessage *message;
+ GstFlowReturn res;
+
+ /* tell the pipeline we've just found out the duration */
+ ogg->push_time_length = ogg->total_time;
+ GST_INFO_OBJECT (ogg, "New duration found: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ogg->total_time));
+ message =
+ gst_message_new_duration (GST_OBJECT (ogg), GST_FORMAT_TIME,
+ ogg->total_time);
+ gst_element_post_message (GST_ELEMENT (ogg), message);
+
+ GST_DEBUG_OBJECT (ogg,
+ "We're close enough to the end, and we're scared "
+ "to get too close, seeking back to start");
+
+ res = gst_ogg_demux_seek_back_after_push_duration_check_unlock (ogg);
+ if (res != GST_FLOW_OK)
+ return res;
+ return GST_FLOW_SKIP_PUSH;
+ } else {
+ GST_PUSH_UNLOCK (ogg);
+ }
+ return GST_FLOW_SKIP_PUSH;
+ }
+ }
+
+ /* if we're seeking, look at time, and decide what to do */
+ if (ogg->push_state != PUSH_PLAYING && ogg->push_state != PUSH_LINEAR2) {
+ GstClockTime t;
+ gint64 best = -1;
+ GstEvent *sevent;
+ int res;
+ gboolean close_enough;
+ float seek_quality;
+
+ /* ignore -1 granpos when seeking, we want to sync on a real granpos */
+ if (granpos < 0) {
+ GST_PUSH_UNLOCK (ogg);
+ if (ogg_stream_pagein (&pad->map.stream, page) != 0)
+ goto choked;
+ return GST_FLOW_SKIP_PUSH;
+ }
+
+ t = gst_ogg_stream_get_end_time_for_granulepos (&pad->map, granpos);
+
+ if (ogg->push_state == PUSH_BISECT1 || ogg->push_state == PUSH_BISECT2) {
+ GstClockTime sync_time;
+
+ if (pad->push_sync_time == GST_CLOCK_TIME_NONE)
+ pad->push_sync_time = t;
+ GST_DEBUG_OBJECT (ogg, "Got timestamp %" GST_TIME_FORMAT " for %s",
+ GST_TIME_ARGS (t), gst_ogg_stream_get_media_type (&pad->map));
+ sync_time = gst_ogg_demux_collect_sync_time (ogg, ogg->building_chain);
+ if (sync_time == GST_CLOCK_TIME_NONE) {
+ GST_PUSH_UNLOCK (ogg);
+ GST_DEBUG_OBJECT (ogg,
+ "Not enough timing info collected for sync, waiting for more");
+ if (ogg_stream_pagein (&pad->map.stream, page) != 0)
+ goto choked;
+ return GST_FLOW_SKIP_PUSH;
+ }
+ ogg->push_last_seek_time = sync_time;
+
+ GST_DEBUG_OBJECT (ogg,
+ "Bisection just seeked at %" G_GINT64_FORMAT ", time %"
+ GST_TIME_FORMAT ", target was %" GST_TIME_FORMAT,
+ ogg->push_last_seek_offset,
+ GST_TIME_ARGS (ogg->push_last_seek_time),
+ GST_TIME_ARGS (ogg->push_seek_time_target));
+
+ if (ogg->push_time1 != GST_CLOCK_TIME_NONE) {
+ seek_quality = gst_ogg_demux_estimate_seek_quality (ogg);
+ GST_DEBUG_OBJECT (ogg,
+ "Interval was %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT " (%"
+ G_GINT64_FORMAT "), time %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT
+ " (%" GST_TIME_FORMAT "), seek quality %f", ogg->push_offset0,
+ ogg->push_offset1, ogg->push_offset1 - ogg->push_offset0,
+ GST_TIME_ARGS (ogg->push_time0), GST_TIME_ARGS (ogg->push_time1),
+ GST_TIME_ARGS (ogg->push_time1 - ogg->push_time0), seek_quality);
+ } else {
+ /* in a open ended seek, we can't do bisection, so we pretend
+ we like our result so far */
+ seek_quality = 1.0f;
+ GST_DEBUG_OBJECT (ogg,
+ "Interval was %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT " (%"
+ G_GINT64_FORMAT "), time %" GST_TIME_FORMAT " - unknown",
+ ogg->push_offset0, ogg->push_offset1,
+ ogg->push_offset1 - ogg->push_offset0,
+ GST_TIME_ARGS (ogg->push_time0));
+ }
+ ogg->push_prev_seek_time = ogg->push_last_seek_time;
+
+ gst_ogg_demux_setup_bisection_bounds (ogg);
+
+ best = gst_ogg_demux_estimate_bisection_target (ogg, seek_quality);
+
+ if (ogg->push_seek_time_target == 0) {
+ GST_DEBUG_OBJECT (ogg, "Seeking to 0, deemed close enough");
+ close_enough = (ogg->push_last_seek_time == 0);
+ } else {
+ /* TODO: make this dependent on framerate ? */
+ GstClockTime time_threshold = GST_SECOND / 2;
+ guint64 byte_threshold =
+ (ogg->max_packet_size >
+ 64 * 1024 ? ogg->max_packet_size : 64 * 1024);
+
+ /* We want to be within half a second before the target,
+ or before the target and half less or equal to the max
+ packet size left to search in */
+ if (time_threshold > ogg->push_seek_time_target)
+ time_threshold = ogg->push_seek_time_target;
+ close_enough = ogg->push_last_seek_time < ogg->push_seek_time_target
+ && (ogg->push_last_seek_time >=
+ ogg->push_seek_time_target - time_threshold
+ || ogg->push_offset1 <= ogg->push_offset0 + byte_threshold);
+ GST_DEBUG_OBJECT (ogg,
+ "testing if we're close enough: %" GST_TIME_FORMAT " <= %"
+ GST_TIME_FORMAT " < %" GST_TIME_FORMAT ", or %" G_GUINT64_FORMAT
+ " <= %" G_GUINT64_FORMAT " ? %s",
+ GST_TIME_ARGS (ogg->push_seek_time_target - time_threshold),
+ GST_TIME_ARGS (ogg->push_last_seek_time),
+ GST_TIME_ARGS (ogg->push_seek_time_target),
+ ogg->push_offset1 - ogg->push_offset0, byte_threshold,
+ close_enough ? "Yes" : "No");
+ }
+
+ if (close_enough || best == ogg->push_last_seek_offset) {
+ if (ogg->push_state == PUSH_BISECT1) {
+ /* we now know the time segment we'll have to search for
+ the second bisection */
+ ogg->push_time0 = ogg->push_start_time;
+ ogg->push_offset0 = 0;
+
+ GST_DEBUG_OBJECT (ogg,
+ "Seek to %" GST_TIME_FORMAT
+ " (%lx) done, now gathering pages for all non-sparse streams",
+ GST_TIME_ARGS (ogg->push_seek_time_target), (long) granpos);
+ ogg->push_state = PUSH_LINEAR1;
+ } else {
+ /* If we're asked for an accurate seek, we'll go forward till
+ we get to the original seek target time, else we'll just drop
+ here at the keyframe */
+ if (ogg->push_seek_flags & GST_SEEK_FLAG_ACCURATE) {
+ GST_INFO_OBJECT (ogg,
+ "Seek to keyframe at %" GST_TIME_FORMAT " done (we're at %"
+ GST_TIME_FORMAT "), skipping to original target (%"
+ GST_TIME_FORMAT ")",
+ GST_TIME_ARGS (ogg->push_seek_time_target),
+ GST_TIME_ARGS (sync_time),
+ GST_TIME_ARGS (ogg->push_seek_time_original_target));
+ ogg->push_state = PUSH_LINEAR2;
+ } else {
+ GST_INFO_OBJECT (ogg, "Seek to keyframe done, playing");
+
+ /* we're synced to the seek target, so flush stream and stuff
+ any queued pages into the stream so we start decoding there */
+ ogg->push_state = PUSH_PLAYING;
+ }
+ gst_ogg_demux_update_bisection_stats (ogg);
+ }
+ }
+ } else if (ogg->push_state == PUSH_LINEAR1) {
+ if (pad->push_kf_time == GST_CLOCK_TIME_NONE) {
+ GstClockTime earliest_keyframe_time;
+
+ gst_ogg_demux_record_keyframe_time (ogg, pad, granpos);
+ GST_DEBUG_OBJECT (ogg,
+ "Previous keyframe for %s stream at %" GST_TIME_FORMAT,
+ gst_ogg_stream_get_media_type (&pad->map),
+ GST_TIME_ARGS (pad->push_kf_time));
+ earliest_keyframe_time = gst_ogg_demux_get_earliest_keyframe_time (ogg);
+ if (earliest_keyframe_time != GST_CLOCK_TIME_NONE) {
+ if (earliest_keyframe_time > ogg->push_last_seek_time) {
+ GST_INFO_OBJECT (ogg,
+ "All non sparse streams now have a previous keyframe time, "
+ "and we already decoded it, switching to playing");
+ ogg->push_state = PUSH_PLAYING;
+ gst_ogg_demux_update_bisection_stats (ogg);
+ } else {
+ GST_INFO_OBJECT (ogg,
+ "All non sparse streams now have a previous keyframe time, "
+ "bisecting again to %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (earliest_keyframe_time));
+
+ ogg->push_seek_time_target = earliest_keyframe_time;
+ ogg->push_offset0 = 0;
+ ogg->push_time0 = ogg->push_start_time;
+ ogg->push_offset1 = ogg->push_last_seek_offset;
+ ogg->push_time1 = ogg->push_last_seek_time;
+ ogg->push_prev_seek_time = GST_CLOCK_TIME_NONE;
+ ogg->seek_secant = FALSE;
+ ogg->seek_undershot = FALSE;
+
+ ogg->push_state = PUSH_BISECT2;
+ best = gst_ogg_demux_estimate_bisection_target (ogg, 1.0f);
+ }
+ }
+ }
+ }
+
+ if (ogg->push_state == PUSH_BISECT1 || ogg->push_state == PUSH_BISECT2) {
+ gint i;
+
+ ogg_sync_reset (&ogg->sync);
+ for (i = 0; i < ogg->building_chain->streams->len; i++) {
+ GstOggPad *pad =
+ g_array_index (ogg->building_chain->streams, GstOggPad *, i);
+
+ pad->push_sync_time = GST_CLOCK_TIME_NONE;
+ ogg_stream_reset (&pad->map.stream);
+ }
+
+ GST_DEBUG_OBJECT (ogg,
+ "seeking to %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT, best,
+ (gint64) - 1);
+ /* do seek */
+ g_assert (best != -1);
+ ogg->push_bisection_steps[ogg->push_state == PUSH_BISECT2 ? 1 : 0]++;
+ sevent =
+ gst_event_new_seek (ogg->push_seek_rate, GST_FORMAT_BYTES,
+ ogg->push_seek_flags, GST_SEEK_TYPE_SET, best,
+ GST_SEEK_TYPE_NONE, -1);
+
+ GST_PUSH_UNLOCK (ogg);
+ res = gst_pad_push_event (ogg->sinkpad, sevent);
+ if (!res) {
+ /* We failed to send the seek event, notify the pipeline */
+ GST_ELEMENT_ERROR (ogg, RESOURCE, SEEK, (NULL), ("Failed to seek"));
+ return GST_FLOW_ERROR;
+ }
+ return GST_FLOW_SKIP_PUSH;
+ }
+
+ if (ogg->push_state != PUSH_PLAYING) {
+ GST_PUSH_UNLOCK (ogg);
+ return GST_FLOW_SKIP_PUSH;
+ }
+ }
+ GST_PUSH_UNLOCK (ogg);
+
+ return GST_FLOW_OK;
+
+choked:
+ {
+ GST_WARNING_OBJECT (ogg,
+ "ogg stream choked on page (serial %08x), "
+ "resetting stream", pad->map.serialno);
+ gst_ogg_pad_reset (pad);
+ /* we continue to recover */
+ return GST_FLOW_SKIP_PUSH;
+ }
+}
+
/* submit a page to an oggpad, this function will then submit all
* the packets in the page.
*/
ogg = pad->ogg;
- /* for negative rates we read pages backwards and must therefore be carefull
+ /* for negative rates we read pages backwards and must therefore be careful
* with continued pages */
if (ogg->segment.rate < 0.0) {
gint npackets;
}
}
+ /* keep track of time in push mode */
+ if (!ogg->pullmode) {
+ result = gst_ogg_pad_handle_push_mode_state (pad, page);
+ if (result == GST_FLOW_SKIP_PUSH)
+ return GST_FLOW_OK;
+ if (result != GST_FLOW_OK)
+ return result;
+ }
+
+ if (page->header_len + page->body_len > ogg->max_page_size)
+ ogg->max_page_size = page->header_len + page->body_len;
+
if (ogg_stream_pagein (&pad->map.stream, page) != 0)
goto choked;
choked:
{
GST_WARNING_OBJECT (ogg,
- "ogg stream choked on page (serial %08lx), resetting stream",
- pad->map.serialno);
+ "ogg stream choked on page (serial %08x), "
+ "resetting stream", pad->map.serialno);
gst_ogg_pad_reset (pad);
/* we continue to recover */
return GST_FLOW_OK;
static GstOggChain *
gst_ogg_chain_new (GstOggDemux * ogg)
{
- GstOggChain *chain = g_new0 (GstOggChain, 1);
+ GstOggChain *chain = g_slice_new0 (GstOggChain);
GST_DEBUG_OBJECT (ogg, "creating new chain %p", chain);
chain->ogg = ogg;
gst_object_unref (pad);
}
g_array_free (chain->streams, TRUE);
- g_free (chain);
+ g_slice_free (GstOggChain, chain);
}
static void
}
static GstOggPad *
-gst_ogg_chain_new_stream (GstOggChain * chain, glong serialno)
+gst_ogg_chain_new_stream (GstOggChain * chain, guint32 serialno)
{
GstOggPad *ret;
GstTagList *list;
gchar *name;
- GST_DEBUG_OBJECT (chain->ogg, "creating new stream %08lx in chain %p",
- serialno, chain);
+ GST_DEBUG_OBJECT (chain->ogg,
+ "creating new stream %08x in chain %p", serialno, chain);
- ret = g_object_new (GST_TYPE_OGG_PAD, NULL);
+ name = g_strdup_printf ("serial_%08x", serialno);
+ ret = g_object_new (GST_TYPE_OGG_PAD, "name", name, NULL);
+ g_free (name);
/* we own this one */
gst_object_ref (ret);
gst_object_sink (ret);
if (ogg_stream_init (&ret->map.stream, serialno) != 0)
goto init_failed;
- name = g_strdup_printf ("serial_%08lx", serialno);
- gst_object_set_name (GST_OBJECT (ret), name);
- g_free (name);
-
/* FIXME: either do something with it or remove it */
list = gst_tag_list_new ();
gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, GST_TAG_SERIAL, serialno,
gst_tag_list_free (list);
GST_DEBUG_OBJECT (chain->ogg,
- "created new ogg src %p for stream with serial %08lx", ret, serialno);
+ "created new ogg src %p for stream with serial %08x", ret, serialno);
g_array_append_val (chain->streams, ret);
/* ERRORS */
init_failed:
{
- GST_ERROR ("Could not initialize ogg_stream struct for serial %08lx.",
+ GST_ERROR ("Could not initialize ogg_stream struct for serial %08x",
serialno);
gst_object_unref (ret);
return NULL;
}
static GstOggPad *
-gst_ogg_chain_get_stream (GstOggChain * chain, glong serialno)
+gst_ogg_chain_get_stream (GstOggChain * chain, guint32 serialno)
{
gint i;
}
static gboolean
-gst_ogg_chain_has_stream (GstOggChain * chain, glong serialno)
+gst_ogg_chain_has_stream (GstOggChain * chain, guint32 serialno)
{
return gst_ogg_chain_get_stream (chain, serialno) != NULL;
}
gboolean active);
static GstStateChangeReturn gst_ogg_demux_change_state (GstElement * element,
GstStateChange transition);
-static gboolean gst_ogg_demux_send_event (GstOggDemux * ogg, GstEvent * event);
static void gst_ogg_print (GstOggDemux * demux);
"demux ogg streams (info about ogg: http://xiph.org)",
"Wim Taymans <wim@fluendo.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&ogg_demux_sink_template_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&ogg_demux_src_template_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &ogg_demux_sink_template_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &ogg_demux_src_template_factory);
}
static void
gst_element_add_pad (GST_ELEMENT (ogg), ogg->sinkpad);
ogg->chain_lock = g_mutex_new ();
+ ogg->push_lock = g_mutex_new ();
ogg->chains = g_array_new (FALSE, TRUE, sizeof (GstOggChain *));
+ ogg->stats_nbisections = 0;
+ ogg->stats_bisection_steps[0] = 0;
+ ogg->stats_bisection_steps[1] = 0;
+ ogg->stats_bisection_max_steps[0] = 0;
+ ogg->stats_bisection_max_steps[1] = 0;
+
ogg->newsegment = NULL;
}
g_array_free (ogg->chains, TRUE);
g_mutex_free (ogg->chain_lock);
+ g_mutex_free (ogg->push_lock);
ogg_sync_clear (&ogg->sync);
if (ogg->newsegment)
stream->map.accumulated_granule = 0;
}
ogg->building_chain = chain;
+ GST_DEBUG_OBJECT (ogg, "Resetting current chain");
ogg->current_chain = NULL;
ogg->resync = TRUE;
}
GST_DEBUG_OBJECT (ogg, "got a flush stop event");
ogg_sync_reset (&ogg->sync);
res = gst_ogg_demux_send_event (ogg, event);
- gst_ogg_demux_reset_streams (ogg);
+ if (ogg->pullmode || ogg->push_state != PUSH_DURATION) {
+ /* it's starting to feel reaaaally dirty :(
+ if we're on a spliced seek to get duration, don't reset streams,
+ we'll need them for the delayed seek */
+ gst_ogg_demux_reset_streams (ogg);
+ }
break;
case GST_EVENT_NEWSEGMENT:
GST_DEBUG_OBJECT (ogg, "got a new segment event");
+ {
+ gboolean update;
+ GstFormat format;
+ gdouble rate, arate;
+ gint64 start, stop, time;
+
+ gst_event_parse_new_segment_full (event, &update, &rate, &arate,
+ &format, &start, &stop, &time);
+ if (format == GST_FORMAT_BYTES) {
+ GST_PUSH_LOCK (ogg);
+ ogg->push_byte_offset = start;
+ ogg->push_last_seek_offset = start;
+ GST_PUSH_UNLOCK (ogg);
+ } else {
+ GST_WARNING_OBJECT (ogg, "unexpected segment format: %s",
+ gst_format_get_name (format));
+ }
+ }
gst_event_unref (event);
res = TRUE;
break;
case GST_EVENT_EOS:
{
GST_DEBUG_OBJECT (ogg, "got an EOS event");
+#if 0
+ /* This would be what is needed (recover from EOS by going on to
+ the next step (issue the delayed seek)), but it does not work
+ if there is a queue2 upstream - see more details comment in
+ gst_ogg_pad_submit_page.
+ If I could find a way to bypass queue2 behavior, this should
+ be enabled. */
+ GST_PUSH_LOCK (ogg);
+ if (ogg->push_state == PUSH_DURATION) {
+ GST_DEBUG_OBJECT (ogg, "Got EOS while determining length");
+ res = gst_ogg_demux_seek_back_after_push_duration_check_unlock (ogg);
+ if (res != GST_FLOW_OK) {
+ GST_DEBUG_OBJECT (ogg, "Error seeking back after duration check: %d",
+ res);
+ }
+ break;
+ }
+ GST_PUSH_UNLOCK (ogg);
+#endif
res = gst_ogg_demux_send_event (ogg, event);
if (ogg->current_chain == NULL) {
GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL),
if (G_UNLIKELY (ogg_sync_wrote (&ogg->sync, size) < 0))
goto write_failed;
+ if (!ogg->pullmode) {
+ GST_PUSH_LOCK (ogg);
+ ogg->push_byte_offset += size;
+ GST_PUSH_UNLOCK (ogg);
+ }
+
done:
gst_buffer_unref (buffer);
if (ret == GST_FLOW_UNEXPECTED) {
new_offset = 0;
GST_LOG_OBJECT (ogg, "got unexpected");
+ /* We hit EOS. */
+ goto beach;
} else if (ret != GST_FLOW_OK) {
GST_LOG_OBJECT (ogg, "got error %d", ret);
return ret;
if (offset)
*offset = cur_offset;
+beach:
return ret;
}
pad->added = FALSE;
}
+
/* if we cannot seek back to the chain, we can destroy the chain
* completely */
if (!ogg->pullmode) {
gst_ogg_chain_free (chain);
}
- ogg->current_chain = NULL;
return TRUE;
}
return caps;
}
+static void
+gst_ogg_demux_push_queued_buffers (GstOggDemux * ogg, GstOggPad * pad)
+{
+ GList *walk;
+
+ /* push queued packets */
+ for (walk = pad->map.queued; walk; walk = g_list_next (walk)) {
+ ogg_packet *p = walk->data;
+
+ gst_ogg_demux_chain_peer (pad, p, TRUE);
+ _ogg_packet_free (p);
+ }
+ /* and free the queued buffers */
+ g_list_free (pad->map.queued);
+ pad->map.queued = NULL;
+}
+
static gboolean
gst_ogg_demux_activate_chain (GstOggDemux * ogg, GstOggChain * chain,
GstEvent * event)
if (chain == ogg->current_chain) {
if (event)
gst_event_unref (event);
+
+ for (i = 0; i < chain->streams->len; i++) {
+ GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+ gst_ogg_demux_push_queued_buffers (ogg, pad);
+ }
return TRUE;
}
/* after adding the new pads, remove the old pads */
gst_ogg_demux_deactivate_current_chain (ogg);
+ GST_DEBUG_OBJECT (ogg, "Setting current chain to %p", chain);
ogg->current_chain = chain;
/* we are finished now */
}
GST_DEBUG_OBJECT (ogg, "pushing queued buffers");
- /* push queued packets */
- for (walk = pad->map.queued; walk; walk = g_list_next (walk)) {
- ogg_packet *p = walk->data;
-
- gst_ogg_demux_chain_peer (pad, p, TRUE);
- _ogg_packet_free (p);
- }
- /* and free the queued buffers */
- g_list_free (pad->map.queued);
- pad->map.queued = NULL;
+ gst_ogg_demux_push_queued_buffers (ogg, pad);
}
return TRUE;
}
/* get time of the keyframe */
keyframe_time =
gst_ogg_stream_granule_to_time (&pad->map, pad->keyframe_granule);
- GST_LOG_OBJECT (ogg, "stream %08lx granule time %" GST_TIME_FORMAT,
+ GST_LOG_OBJECT (ogg,
+ "stream %08x granule time %" GST_TIME_FORMAT,
pad->map.serialno, GST_TIME_ARGS (keyframe_time));
/* collect smallest value */
}
static gboolean
+gst_ogg_demux_get_duration_push (GstOggDemux * ogg, int flags)
+{
+ /* In push mode, we get to the end of the stream to get the duration */
+ gint64 position;
+ GstEvent *sevent;
+ gboolean res;
+
+ /* A full Ogg page can be almost 64 KB. There's no guarantee that there'll be a
+ granpos there, but it's fairly likely */
+ position =
+ ogg->push_byte_length - DURATION_CHUNK_OFFSET - EOS_AVOIDANCE_THRESHOLD;
+ if (position < 0)
+ position = 0;
+
+ GST_DEBUG_OBJECT (ogg,
+ "Getting duration, seeking near the end, to %" G_GINT64_FORMAT, position);
+ ogg->push_state = PUSH_DURATION;
+ /* do not read the last byte */
+ sevent = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags, GST_SEEK_TYPE_SET,
+ position, GST_SEEK_TYPE_SET, ogg->push_byte_length - 1);
+ res = gst_pad_push_event (ogg->sinkpad, sevent);
+ if (res) {
+ GST_DEBUG_OBJECT (ogg, "Seek succesful");
+ return TRUE;
+ } else {
+ GST_INFO_OBJECT (ogg, "Seek failed, duration will stay unknown");
+ ogg->push_state = PUSH_PLAYING;
+ ogg->push_disable_seeking = TRUE;
+ return FALSE;
+ }
+}
+
+static gboolean
+gst_ogg_demux_check_duration_push (GstOggDemux * ogg, GstSeekFlags flags,
+ GstEvent * event)
+{
+ if (ogg->push_byte_length < 0) {
+ GstPad *peer;
+
+ GST_DEBUG_OBJECT (ogg, "Trying to find byte/time length");
+ if ((peer = gst_pad_get_peer (ogg->sinkpad)) != NULL) {
+ GstFormat format = GST_FORMAT_BYTES;
+ gint64 length;
+ int res;
+
+ res = gst_pad_query_duration (peer, &format, &length);
+ if (res && length > 0) {
+ ogg->push_byte_length = length;
+ GST_DEBUG_OBJECT (ogg,
+ "File byte length %" G_GINT64_FORMAT, ogg->push_byte_length);
+ } else {
+ GST_DEBUG_OBJECT (ogg, "File byte length unknown, assuming live");
+ ogg->push_disable_seeking = TRUE;
+ return TRUE;
+ }
+ format = GST_FORMAT_TIME;
+ res = gst_pad_query_duration (peer, &format, &length);
+ gst_object_unref (peer);
+ if (res && length >= 0) {
+ ogg->push_time_length = length;
+ GST_DEBUG_OBJECT (ogg, "File time length %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ogg->push_time_length));
+ } else if (!ogg->push_disable_seeking) {
+ gboolean res;
+
+ res = gst_ogg_demux_get_duration_push (ogg, flags);
+ if (res) {
+ GST_DEBUG_OBJECT (ogg,
+ "File time length unknown, trying to determine");
+ ogg->push_mode_seek_delayed_event = NULL;
+ if (event) {
+ GST_DEBUG_OBJECT (ogg,
+ "Let me intercept this innocent looking seek request");
+ ogg->push_mode_seek_delayed_event = gst_event_copy (event);
+ }
+ return FALSE;
+ }
+ }
+ }
+ }
+ return TRUE;
+}
+
+static gboolean
gst_ogg_demux_perform_seek_push (GstOggDemux * ogg, GstEvent * event)
{
gint bitrate;
GstEvent *sevent;
GstOggChain *chain;
gint64 best, best_time;
+ gint i;
+
+ GST_DEBUG_OBJECT (ogg, "Push mode seek request received");
gst_event_parse_seek (event, &rate, &format, &flags,
&start_type, &start, &stop_type, &stop);
goto error;
}
+ if (start_type != GST_SEEK_TYPE_SET) {
+ GST_DEBUG_OBJECT (ogg, "can only seek to a SET target");
+ goto error;
+ }
+
+ if (!(flags & GST_SEEK_FLAG_FLUSH)) {
+ GST_DEBUG_OBJECT (ogg, "can only do flushing seeks");
+ goto error;
+ }
+
+ GST_DEBUG_OBJECT (ogg, "Push mode seek request: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (start));
+
chain = ogg->current_chain;
- if (!chain)
+ if (!chain) {
+ GST_WARNING_OBJECT (ogg, "No chain to seek on");
+ goto error;
+ }
+
+ /* start accessing push_* members */
+ GST_PUSH_LOCK (ogg);
+
+ /* not if we disabled seeking (chained streams) */
+ if (ogg->push_disable_seeking) {
+ GST_DEBUG_OBJECT (ogg, "Seeking disabled");
+ goto error_locked;
+ }
+
+ /* not when we're trying to work out duration */
+ if (ogg->push_state == PUSH_DURATION) {
+ GST_DEBUG_OBJECT (ogg, "Busy working out duration, try again later");
+ goto error_locked;
+ }
+
+ /* actually, not if we're doing any seeking already */
+ if (ogg->push_state != PUSH_PLAYING) {
+ GST_DEBUG_OBJECT (ogg, "Already doing some seeking, try again later");
+ goto error_locked;
+ }
+
+ /* on the first seek, get length if we can */
+ if (!gst_ogg_demux_check_duration_push (ogg, flags, event)) {
+ GST_PUSH_UNLOCK (ogg);
return FALSE;
+ }
if (do_index_search (ogg, chain, 0, -1, 0, -1, start, &best, &best_time)) {
/* the index gave some result */
GST_DEBUG_OBJECT (ogg,
"found offset %" G_GINT64_FORMAT " with time %" G_GUINT64_FORMAT,
best, best_time);
- start = best;
- } else if ((bitrate = ogg->bitrate) > 0) {
- /* try with bitrate convert the seek positions to bytes */
- if (start_type != GST_SEEK_TYPE_NONE) {
- start = gst_util_uint64_scale (start, bitrate, 8 * GST_SECOND);
- }
- if (stop_type != GST_SEEK_TYPE_NONE) {
- stop = gst_util_uint64_scale (stop, bitrate, 8 * GST_SECOND);
- }
} else {
- /* we don't know */
- res = FALSE;
+ if (ogg->push_time_length > 0) {
+ /* if we know the time length, we know the full segment bitrate */
+ GST_DEBUG_OBJECT (ogg, "Using real file bitrate");
+ bitrate =
+ gst_util_uint64_scale (ogg->push_byte_length, 8 * GST_SECOND,
+ ogg->push_time_length);
+ } else if (ogg->push_time_offset > 0) {
+ /* get a first approximation using known bitrate to the current position */
+ GST_DEBUG_OBJECT (ogg, "Using file bitrate so far");
+ bitrate =
+ gst_util_uint64_scale (ogg->push_byte_offset, 8 * GST_SECOND,
+ ogg->push_time_offset);
+ } else if (ogg->bitrate > 0) {
+ /* nominal bitrate is better than nothing, even if it lies often */
+ GST_DEBUG_OBJECT (ogg, "Using nominal bitrate");
+ bitrate = ogg->bitrate;
+ } else {
+ /* meh */
+ GST_DEBUG_OBJECT (ogg,
+ "At stream start, and no nominal bitrate, using some random magic "
+ "number to seed");
+ /* the bisection, once started, should give us a better approximation */
+ bitrate = 1000;
+ }
+ best = gst_util_uint64_scale (start, bitrate, 8 * GST_SECOND);
}
- if (res) {
- GST_DEBUG_OBJECT (ogg,
- "seeking to %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT, start, stop);
- /* do seek */
- sevent = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
- start_type, start, stop_type, stop);
-
- res = gst_pad_push_event (ogg->sinkpad, sevent);
+ /* offset by typical page length, and ensure our best guess is within
+ reasonable bounds */
+ best -= CHUNKSIZE;
+ if (best < 0)
+ best = 0;
+ if (ogg->push_byte_length > 0 && best >= ogg->push_byte_length)
+ best = ogg->push_byte_length - 1;
+
+ /* set up bisection search */
+ ogg->push_offset0 = 0;
+ ogg->push_offset1 = ogg->push_byte_length - 1;
+ ogg->push_time0 = ogg->push_start_time;
+ ogg->push_time1 = ogg->push_time_length;
+ ogg->push_seek_time_target = start;
+ ogg->push_prev_seek_time = GST_CLOCK_TIME_NONE;
+ ogg->push_seek_time_original_target = start;
+ ogg->push_state = PUSH_BISECT1;
+ ogg->seek_secant = FALSE;
+ ogg->seek_undershot = FALSE;
+
+ /* reset pad push mode seeking state */
+ for (i = 0; i < chain->streams->len; i++) {
+ GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
+ pad->push_kf_time = GST_CLOCK_TIME_NONE;
+ pad->push_sync_time = GST_CLOCK_TIME_NONE;
}
+ GST_DEBUG_OBJECT (ogg,
+ "Setting up bisection search for %" G_GINT64_FORMAT " - %" G_GINT64_FORMAT
+ " (time %" GST_TIME_FORMAT " - %" GST_TIME_FORMAT ")", ogg->push_offset0,
+ ogg->push_offset1, GST_TIME_ARGS (ogg->push_time0),
+ GST_TIME_ARGS (ogg->push_time1));
+ GST_DEBUG_OBJECT (ogg,
+ "Target time is %" GST_TIME_FORMAT ", best first guess is %"
+ G_GINT64_FORMAT, GST_TIME_ARGS (ogg->push_seek_time_target), best);
+
+ ogg->push_seek_rate = rate;
+ ogg->push_seek_flags = flags;
+ ogg->push_mode_seek_delayed_event = NULL;
+ ogg->push_bisection_steps[0] = 1;
+ ogg->push_bisection_steps[1] = 0;
+ sevent = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
+ start_type, best, GST_SEEK_TYPE_NONE, -1);
+
+ GST_PUSH_UNLOCK (ogg);
+ res = gst_pad_push_event (ogg->sinkpad, sevent);
+
return res;
/* ERRORS */
GST_DEBUG_OBJECT (ogg, "seek failed");
return FALSE;
}
+
+error_locked:
+ GST_PUSH_UNLOCK (ogg);
+ goto error;
}
static gboolean
if (ret == GST_FLOW_UNEXPECTED) {
endsearched = bisect;
} else if (ret == GST_FLOW_OK) {
- glong serial = ogg_page_serialno (&og);
+ guint32 serial = ogg_page_serialno (&og);
if (!gst_ogg_chain_has_stream (chain, serial)) {
endsearched = bisect;
GstFlowReturn ret;
GstOggChain *chain = NULL;
gint64 offset = ogg->offset;
- ogg_page op;
+ ogg_page og;
gboolean done;
gint i;
* the decoders, send data to the decoders. */
while (TRUE) {
GstOggPad *pad;
- glong serial;
+ guint32 serial;
- ret = gst_ogg_demux_get_next_page (ogg, &op, -1, NULL);
+ ret = gst_ogg_demux_get_next_page (ogg, &og, -1, NULL);
if (ret != GST_FLOW_OK) {
- GST_WARNING_OBJECT (ogg, "problem reading BOS page: ret=%d", ret);
+ if (ret == GST_FLOW_UNEXPECTED) {
+ GST_DEBUG_OBJECT (ogg, "Reached EOS, done reading end chain");
+ } else {
+ GST_WARNING_OBJECT (ogg, "problem reading BOS page: ret=%d", ret);
+ }
break;
}
- if (!ogg_page_bos (&op)) {
- GST_WARNING_OBJECT (ogg, "page is not BOS page");
+ if (!ogg_page_bos (&og)) {
+ GST_INFO_OBJECT (ogg, "page is not BOS page, all streams identified");
/* if we did not find a chain yet, assume this is a bogus stream and
* ignore it */
- if (!chain)
+ if (!chain) {
+ GST_WARNING_OBJECT (ogg, "No chain found, no Ogg data in stream ?");
ret = GST_FLOW_UNEXPECTED;
+ }
break;
}
chain->offset = offset;
}
- serial = ogg_page_serialno (&op);
+ serial = ogg_page_serialno (&og);
if (gst_ogg_chain_get_stream (chain, serial) != NULL) {
- GST_WARNING_OBJECT (ogg, "found serial %08lx BOS page twice, ignoring",
- serial);
+ GST_WARNING_OBJECT (ogg,
+ "found serial %08x BOS page twice, ignoring", serial);
continue;
}
pad = gst_ogg_chain_new_stream (chain, serial);
- gst_ogg_pad_submit_page (pad, &op);
+ gst_ogg_pad_submit_page (pad, &og);
}
if (ret != GST_FLOW_OK || chain == NULL) {
done = FALSE;
while (!done) {
- glong serial;
+ guint32 serial;
gboolean known_serial = FALSE;
GstFlowReturn ret;
- serial = ogg_page_serialno (&op);
+ serial = ogg_page_serialno (&og);
done = TRUE;
for (i = 0; i < chain->streams->len; i++) {
GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
- GST_LOG_OBJECT (ogg, "serial %08lx time %" GST_TIME_FORMAT,
+ GST_LOG_OBJECT (ogg,
+ "serial %08x time %" GST_TIME_FORMAT,
pad->map.serialno, GST_TIME_ARGS (pad->start_time));
if (pad->map.serialno == serial) {
/* submit the page now, this will fill in the start_time when the
* internal decoder finds it */
- gst_ogg_pad_submit_page (pad, &op);
+ gst_ogg_pad_submit_page (pad, &og);
if (!pad->map.is_skeleton && pad->start_time == -1
- && ogg_page_eos (&op)) {
+ && ogg_page_eos (&og)) {
/* got EOS on a pad before we could find its start_time.
* We have no chance of finding a start_time for every pad so
* stop searching for the other start_time(s).
if (!pad->map.is_sparse)
done &= (pad->start_time != GST_CLOCK_TIME_NONE);
- GST_LOG_OBJECT (ogg, "done %08lx now %d", pad->map.serialno, done);
+ GST_LOG_OBJECT (ogg, "done %08x now %d", pad->map.serialno, done);
}
/* we read a page not belonging to the current chain: seek back to the
* beginning of the chain
*/
if (!known_serial) {
- GST_LOG_OBJECT (ogg, "unknown serial %08lx", serial);
+ GST_LOG_OBJECT (ogg, "unknown serial %08x", serial);
gst_ogg_demux_seek (ogg, offset);
break;
}
if (!done) {
- ret = gst_ogg_demux_get_next_page (ogg, &op, -1, NULL);
+ ret = gst_ogg_demux_get_next_page (ogg, &og, -1, NULL);
if (ret != GST_FLOW_OK)
break;
}
for (i = 0; i < chain->streams->len; i++) {
GstOggPad *pad = g_array_index (chain->streams, GstOggPad *, i);
- if (pad->map.is_sparse)
+ if (pad->map.is_skeleton)
continue;
if (pad->map.serialno == ogg_page_serialno (&og)) {
/* find a pad with a given serial number
*/
static GstOggPad *
-gst_ogg_demux_find_pad (GstOggDemux * ogg, glong serialno)
+gst_ogg_demux_find_pad (GstOggDemux * ogg, guint32 serialno)
{
GstOggPad *pad;
gint i;
/* find a chain with a given serial number
*/
static GstOggChain *
-gst_ogg_demux_find_chain (GstOggDemux * ogg, glong serialno)
+gst_ogg_demux_find_chain (GstOggDemux * ogg, guint32 serialno)
{
GstOggPad *pad;
GstPad *peer;
GstFormat format;
gboolean res;
- gulong serialno;
+ guint32 serialno;
GstOggChain *chain;
GstFlowReturn ret;
{
GstOggPad *pad;
gint64 granule;
- glong serialno;
+ guint32 serialno;
GstFlowReturn result = GST_FLOW_OK;
serialno = ogg_page_serialno (page);
granule = ogg_page_granulepos (page);
GST_LOG_OBJECT (ogg,
- "processing ogg page (serial %08lx, pageno %ld, granulepos %"
- G_GINT64_FORMAT ", bos %d)",
- serialno, ogg_page_pageno (page), granule, ogg_page_bos (page));
+ "processing ogg page (serial %08x, "
+ "pageno %ld, granulepos %" G_GINT64_FORMAT ", bos %d)", serialno,
+ ogg_page_pageno (page), granule, ogg_page_bos (page));
if (ogg_page_bos (page)) {
GstOggChain *chain;
if (pad) {
result = gst_ogg_pad_submit_page (pad, page);
} else {
- /* no pad. This means an ogg page without bos has been seen for this
- * serialno. we just ignore it but post a warning... */
- GST_ELEMENT_WARNING (ogg, STREAM, DECODE,
- (NULL), ("unknown ogg pad for serial %08lx detected", serialno));
- return GST_FLOW_OK;
+ GST_PUSH_LOCK (ogg);
+ if (!ogg->pullmode && !ogg->push_disable_seeking) {
+ /* no pad while probing for duration, we must have a chained stream,
+ and we don't support them, so back off */
+ GST_INFO_OBJECT (ogg, "We seem to have a chained stream, we won't seek");
+ if (ogg->push_state == PUSH_DURATION) {
+ GstFlowReturn res;
+
+ res = gst_ogg_demux_seek_back_after_push_duration_check_unlock (ogg);
+ if (res != GST_FLOW_OK)
+ return res;
+ }
+
+ /* only once we seeked back */
+ GST_PUSH_LOCK (ogg);
+ ogg->push_disable_seeking = TRUE;
+ } else {
+ GST_PUSH_UNLOCK (ogg);
+ /* no pad. This means an ogg page without bos has been seen for this
+ * serialno. we just ignore it but post a warning... */
+ GST_ELEMENT_WARNING (ogg, STREAM, DECODE,
+ (NULL), ("unknown ogg pad for serial %08x detected", serialno));
+ return GST_FLOW_OK;
+ }
+ GST_PUSH_UNLOCK (ogg);
}
return result;
unknown_chain:
{
GST_ELEMENT_ERROR (ogg, STREAM, DECODE,
- (NULL), ("unknown ogg chain for serial %08lx detected", serialno));
+ (NULL), ("unknown ogg chain for serial %08x detected", serialno));
return GST_FLOW_ERROR;
}
}
ogg = GST_OGG_DEMUX (GST_OBJECT_PARENT (pad));
- GST_DEBUG_OBJECT (ogg, "chain");
+ GST_DEBUG_OBJECT (ogg, "enter");
result = gst_ogg_demux_submit_buffer (ogg, buffer);
+ if (result < 0) {
+ GST_DEBUG_OBJECT (ogg, "gst_ogg_demux_submit_buffer returned %d", result);
+ }
while (result == GST_FLOW_OK) {
ogg_page page;
GST_DEBUG_OBJECT (ogg, "discont in page found, continuing");
} else {
result = gst_ogg_demux_handle_page (ogg, &page);
+ if (result < 0) {
+ GST_DEBUG_OBJECT (ogg, "gst_ogg_demux_handle_page returned %d", result);
+ }
}
}
if (ret == 0 || result == GST_FLOW_OK) {
gst_ogg_demux_sync_streams (ogg);
}
+ GST_DEBUG_OBJECT (ogg, "leave with %d", result);
return result;
}
GstOggChain *chain = ogg->current_chain;
gboolean res = TRUE;
+ if (!chain)
+ chain = ogg->building_chain;
+
if (chain) {
gint i;
GST_DEBUG_OBJECT (pad, "Pushing event %" GST_PTR_FORMAT, event);
res &= gst_pad_push_event (GST_PAD (pad), event);
}
+ } else {
+ GST_WARNING_OBJECT (ogg, "No chain to forward event to");
}
gst_event_unref (event);
* e.g. because of a flushing seek.
*/
if (event) {
- gst_event_set_seqnum (event, ogg->seqnum);
- gst_ogg_demux_send_event (ogg, event);
+ /* guard against corrupt/truncated files, where one can hit EOS
+ before prerolling is done and a chain created. If we have no
+ chain to send the event to, error out. */
+ if (ogg->current_chain || ogg->building_chain) {
+ gst_event_set_seqnum (event, ogg->seqnum);
+ gst_ogg_demux_send_event (ogg, event);
+ } else {
+ gst_event_unref (event);
+ GST_ELEMENT_ERROR (ogg, STREAM, DEMUX, (NULL),
+ ("EOS before finding a chain"));
+ }
}
return;
}
ogg->bitrate = 0;
ogg->segment_running = FALSE;
ogg->total_time = -1;
+ GST_PUSH_LOCK (ogg);
+ ogg->push_byte_offset = 0;
+ ogg->push_byte_length = -1;
+ ogg->push_time_length = GST_CLOCK_TIME_NONE;
+ ogg->push_time_offset = GST_CLOCK_TIME_NONE;
+ ogg->push_state = PUSH_PLAYING;
+
+ ogg->push_disable_seeking = FALSE;
+ if (!ogg->pullmode) {
+ GstPad *peer;
+ if ((peer = gst_pad_get_peer (ogg->sinkpad)) != NULL) {
+ GstFormat format = GST_FORMAT_BYTES;
+ gint64 length = -1;
+ if (!gst_pad_query_duration (peer, &format, &length) || length <= 0) {
+ GST_DEBUG_OBJECT (ogg,
+ "Unable to determine stream size, assuming live, seeking disabled");
+ ogg->push_disable_seeking = TRUE;
+ }
+ gst_object_unref (peer);
+ }
+ }
+
+ GST_PUSH_UNLOCK (ogg);
gst_segment_init (&ogg->segment, GST_FORMAT_TIME);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
for (j = 0; j < chain->streams->len; j++) {
GstOggPad *stream = g_array_index (chain->streams, GstOggPad *, j);
- GST_INFO_OBJECT (ogg, " stream %08lx:", stream->map.serialno);
+ GST_INFO_OBJECT (ogg, " stream %08x: %s", stream->map.serialno,
+ gst_ogg_stream_get_media_type (&stream->map));
GST_INFO_OBJECT (ogg, " start time: %" GST_TIME_FORMAT,
GST_TIME_ARGS (stream->start_time));
}
gboolean is_eos;
gboolean added;
+
+ /* push mode seeking */
+ GstClockTime push_kf_time;
+ GstClockTime push_sync_time;
};
struct _GstOggPadClass
gboolean need_chains;
gboolean resync;
+ /* keep track of how large pages and packets are,
+ useful for skewing when seeking */
+ guint64 max_packet_size, max_page_size;
+
/* state */
GMutex *chain_lock; /* we need the lock to protect the chains */
GArray *chains; /* list of chains we know */
gint64 basetime;
gint64 prestime;
+ /* push mode seeking support */
+ GMutex *push_lock; /* we need the lock to protect the push mode variables */
+ gint64 push_byte_offset; /* where were are at in the stream, in bytes */
+ gint64 push_byte_length; /* length in bytes of the stream, -1 if unknown */
+ GstClockTime push_time_length; /* length in time of the stream */
+ GstClockTime push_start_time; /* start time of the stream */
+ GstClockTime push_time_offset; /* where were are at in the stream, in time */
+ enum { PUSH_PLAYING, PUSH_DURATION, PUSH_BISECT1, PUSH_LINEAR1, PUSH_BISECT2, PUSH_LINEAR2 } push_state;
+
+ GstClockTime push_seek_time_original_target;
+ GstClockTime push_seek_time_target;
+ gint64 push_last_seek_offset;
+ GstClockTime push_last_seek_time;
+ gint64 push_offset0, push_offset1; /* bisection search offset bounds */
+ GstClockTime push_time0, push_time1; /* bisection search time bounds */
+
+ double push_seek_rate;
+ GstSeekFlags push_seek_flags;
+ GstEvent *push_mode_seek_delayed_event;
+ gboolean push_disable_seeking;
+ gboolean seek_secant;
+ gboolean seek_undershot;
+ GstClockTime push_prev_seek_time;
+
+ gint push_bisection_steps[2];
+ gint stats_bisection_steps[2];
+ gint stats_bisection_max_steps[2];
+ gint stats_nbisections;
+
/* ogg stuff */
ogg_sync_state sync;
};
#endif
#include <gst/gst.h>
-#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstbytewriter.h>
#include <gst/tag/tag.h>
#include "gstoggmux.h"
? GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf) \
: GST_BUFFER_TIMESTAMP (buf))
-#define GST_BUFFER_RUNNING_TIME(buf, oggpad) \
- (GST_BUFFER_DURATION_IS_VALID (buf) \
- ? gst_segment_to_running_time (&(oggpad)->segment, GST_FORMAT_TIME, \
- GST_BUFFER_TIMESTAMP (buf)) : 0)
-
#define GST_GP_FORMAT "[gp %8" G_GINT64_FORMAT "]"
#define GST_GP_CAST(_gp) ((gint64) _gp)
/* set to 0.5 seconds by default */
#define DEFAULT_MAX_DELAY G_GINT64_CONSTANT(500000000)
#define DEFAULT_MAX_PAGE_DELAY G_GINT64_CONSTANT(500000000)
+#define DEFAULT_MAX_TOLERANCE G_GINT64_CONSTANT(40000000)
+#define DEFAULT_SKELETON FALSE
+
enum
{
ARG_0,
ARG_MAX_DELAY,
ARG_MAX_PAGE_DELAY,
+ ARG_MAX_TOLERANCE,
+ ARG_SKELETON
};
static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
"audio/x-vorbis; audio/x-flac; audio/x-speex; audio/x-celt; "
"application/x-ogm-video; application/x-ogm-audio; video/x-dirac; "
"video/x-smoke; video/x-vp8; text/x-cmml, encoded = (boolean) TRUE; "
- "subtitle/x-kate; application/x-kate")
+ "subtitle/x-kate; application/x-kate; audio/x-opus")
);
static void gst_ogg_mux_base_init (gpointer g_class);
static void gst_ogg_mux_finalize (GObject * object);
static GstFlowReturn
-gst_ogg_mux_collected (GstCollectPads * pads, GstOggMux * ogg_mux);
+gst_ogg_mux_collected (GstCollectPads2 * pads, GstOggMux * ogg_mux);
static gboolean gst_ogg_mux_handle_src_event (GstPad * pad, GstEvent * event);
static GstPad *gst_ogg_mux_request_new_pad (GstElement * element,
GstPadTemplate * templ, const gchar * name);
{
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,
"Ogg muxer", "Codec/Muxer",
"Maximum delay for sending out a page", 0, G_MAXUINT64,
DEFAULT_MAX_PAGE_DELAY,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, ARG_MAX_TOLERANCE,
+ g_param_spec_uint64 ("max-tolerance", "Max time tolerance",
+ "Maximum timestamp difference for maintaining perfect granules",
+ 0, G_MAXUINT64, DEFAULT_MAX_TOLERANCE,
+ (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, ARG_SKELETON,
+ g_param_spec_boolean ("skeleton", "Skeleton",
+ "Whether to include a Skeleton track",
+ DEFAULT_SKELETON,
+ (GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gstelement_class->change_state = gst_ogg_mux_change_state;
/* seed random number generator for creation of serial numbers */
srand (time (NULL));
- ogg_mux->collect = gst_collect_pads_new ();
- gst_collect_pads_set_function (ogg_mux->collect,
- (GstCollectPadsFunction) GST_DEBUG_FUNCPTR (gst_ogg_mux_collected),
+ ogg_mux->collect = gst_collect_pads2_new ();
+ gst_collect_pads2_set_function (ogg_mux->collect,
+ (GstCollectPads2Function) GST_DEBUG_FUNCPTR (gst_ogg_mux_collected),
ogg_mux);
ogg_mux->max_delay = DEFAULT_MAX_DELAY;
ogg_mux->max_page_delay = DEFAULT_MAX_PAGE_DELAY;
+ ogg_mux->max_tolerance = DEFAULT_MAX_TOLERANCE;
gst_ogg_mux_clear (ogg_mux);
}
}
static void
-gst_ogg_mux_ogg_pad_destroy_notify (GstCollectData * data)
+gst_ogg_mux_ogg_pad_destroy_notify (GstCollectData2 * data)
{
GstOggPadData *oggpad = (GstOggPadData *) data;
GstBuffer *buf;
gst_segment_init (&ogg_pad->segment, GST_FORMAT_TIME);
break;
}
+ case GST_EVENT_TAG:{
+ GstTagList *tags;
+
+ gst_event_parse_tag (event, &tags);
+ tags = gst_tag_list_merge (ogg_pad->tags, tags, GST_TAG_MERGE_APPEND);
+ if (ogg_pad->tags)
+ gst_tag_list_free (ogg_pad->tags);
+ ogg_pad->tags = tags;
+
+ GST_DEBUG_OBJECT (ogg_mux, "Got tags %" GST_PTR_FORMAT, ogg_pad->tags);
+ break;
+ }
default:
break;
}
goto wrong_template;
{
- gint serial;
+ guint32 serial;
gchar *name;
if (req_name == NULL || strlen (req_name) < 6) {
serial = gst_ogg_mux_generate_serialno (ogg_mux);
} else {
/* parse serial number from requested padname */
- serial = atoi (&req_name[5]);
+ unsigned long long_serial;
+ char *endptr = NULL;
+ long_serial = strtoul (&req_name[5], &endptr, 10);
+ if ((endptr && *endptr) || (long_serial & ~0xffffffff)) {
+ GST_WARNING_OBJECT (ogg_mux, "Invalid serial number specification: %s",
+ req_name + 5);
+ return NULL;
+ }
+ serial = (guint32) long_serial;
}
/* create new pad with the name */
GST_DEBUG_OBJECT (ogg_mux, "Creating new pad for serial %d", serial);
GstOggPadData *oggpad;
oggpad = (GstOggPadData *)
- gst_collect_pads_add_pad_full (ogg_mux->collect, newpad,
- sizeof (GstOggPadData), gst_ogg_mux_ogg_pad_destroy_notify);
+ gst_collect_pads2_add_pad_full (ogg_mux->collect, newpad,
+ sizeof (GstOggPadData), gst_ogg_mux_ogg_pad_destroy_notify, FALSE);
ogg_mux->active_pads++;
oggpad->map.serialno = serial;
- ogg_stream_init (&oggpad->map.stream, oggpad->map.serialno);
oggpad->packetno = 0;
oggpad->pageno = 0;
oggpad->eos = FALSE;
oggpad->first_delta = FALSE;
oggpad->prev_delta = FALSE;
oggpad->data_pushed = FALSE;
- oggpad->pagebuffers = g_queue_new ();
oggpad->map.headers = NULL;
oggpad->map.queued = NULL;
+ oggpad->next_granule = 0;
+ oggpad->keyframe_granule = -1;
+
+ if (GST_STATE (ogg_mux) > GST_STATE_READY) {
+ /* This will be initialized in init_collectpads when going from ready
+ * paused state */
+ ogg_stream_init (&oggpad->map.stream, oggpad->map.serialno);
+ oggpad->pagebuffers = g_queue_new ();
+ }
gst_segment_init (&oggpad->segment, GST_FORMAT_TIME);
ogg_mux = GST_OGG_MUX (gst_pad_get_parent (pad));
- gst_collect_pads_remove_pad (ogg_mux->collect, pad);
+ gst_collect_pads2_remove_pad (ogg_mux->collect, pad);
gst_element_remove_pad (element, pad);
gst_object_unref (ogg_mux);
/* Ensure we have monotonically increasing timestamps in the output. */
if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) {
- gint64 run_time = GST_BUFFER_RUNNING_TIME (buffer, oggpad);
+ gint64 run_time = GST_BUFFER_TIMESTAMP (buffer);
if (mux->last_ts != GST_CLOCK_TIME_NONE && run_time < mux->last_ts)
GST_BUFFER_TIMESTAMP (buffer) = mux->last_ts;
else
/* if the first pad doesn't contain anything or is even NULL, return
* the second pad as best candidate and vice versa */
- if (first == NULL || (first->buffer == NULL && first->next_buffer == NULL))
+ if (first == NULL)
return 1;
- if (second == NULL || (second->buffer == NULL && second->next_buffer == NULL))
+ if (second == NULL)
return -1;
/* no timestamp on first buffer, it must go first */
- if (first->buffer)
- firsttime = GST_BUFFER_TIMESTAMP (first->buffer);
- else
- firsttime = GST_BUFFER_TIMESTAMP (first->next_buffer);
+ firsttime = GST_BUFFER_TIMESTAMP (first->buffer);
if (firsttime == GST_CLOCK_TIME_NONE)
return -1;
/* no timestamp on second buffer, it must go first */
- if (second->buffer)
- secondtime = GST_BUFFER_TIMESTAMP (second->buffer);
- else
- secondtime = GST_BUFFER_TIMESTAMP (second->next_buffer);
+ secondtime = GST_BUFFER_TIMESTAMP (second->buffer);
if (secondtime == GST_CLOCK_TIME_NONE)
return 1;
- firsttime = gst_segment_to_running_time (&first->segment, GST_FORMAT_TIME,
- firsttime);
- secondtime = gst_segment_to_running_time (&second->segment, GST_FORMAT_TIME,
- secondtime);
-
/* first buffer has higher timestamp, second one should go first */
if (secondtime < firsttime)
return 1;
return 0;
}
+static GstBuffer *
+gst_ogg_mux_decorate_buffer (GstOggMux * ogg_mux, GstOggPadData * pad,
+ GstBuffer * buf)
+{
+ GstClockTime time;
+ gint64 duration, granule, limit;
+ GstClockTime next_time;
+ GstClockTimeDiff diff;
+ ogg_packet packet;
+
+ /* ensure messing with metadata is ok */
+ buf = gst_buffer_make_metadata_writable (buf);
+
+ /* convert time to running time, so we need no longer bother about that */
+ time = GST_BUFFER_TIMESTAMP (buf);
+ if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (time))) {
+ time = gst_segment_to_running_time (&pad->segment, GST_FORMAT_TIME, time);
+ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (time))) {
+ gst_buffer_unref (buf);
+ return NULL;
+ } else {
+ GST_BUFFER_TIMESTAMP (buf) = time;
+ }
+ }
+
+ /* now come up with granulepos stuff corresponding to time */
+ if (!pad->have_type ||
+ pad->map.granulerate_n <= 0 || pad->map.granulerate_d <= 0)
+ goto no_granule;
+
+ packet.packet = GST_BUFFER_DATA (buf);
+ packet.bytes = GST_BUFFER_SIZE (buf);
+ duration = gst_ogg_stream_get_packet_duration (&pad->map, &packet);
+
+ /* give up if no duration can be determined, relying on upstream */
+ if (G_UNLIKELY (duration < 0)) {
+ /* well, if some day we really could handle sparse input ... */
+ if (pad->map.is_sparse) {
+ limit = 1;
+ diff = 2;
+ goto resync;
+ }
+ GST_WARNING_OBJECT (pad->collect.pad,
+ "failed to determine packet duration");
+ goto no_granule;
+ }
+
+ GST_LOG_OBJECT (pad->collect.pad, "buffer ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT ", granule duration %" G_GINT64_FORMAT,
+ GST_TIME_ARGS (time), GST_TIME_ARGS (GST_BUFFER_DURATION (buf)),
+ duration);
+
+ /* determine granule corresponding to time,
+ * using the inverse of oggdemux' granule -> time */
+
+ /* see if interpolated granule matches good enough */
+ granule = pad->next_granule;
+ next_time = gst_ogg_stream_granule_to_time (&pad->map, pad->next_granule);
+ diff = GST_CLOCK_DIFF (next_time, time);
+
+ /* we tolerate deviation up to configured or within granule granularity */
+ limit = gst_ogg_stream_granule_to_time (&pad->map, 1) / 2;
+ limit = MAX (limit, ogg_mux->max_tolerance);
+
+ GST_LOG_OBJECT (pad->collect.pad, "expected granule %" G_GINT64_FORMAT " == "
+ "time %" GST_TIME_FORMAT " --> ts diff %" GST_TIME_FORMAT
+ " < tolerance %" GST_TIME_FORMAT " (?)",
+ granule, GST_TIME_ARGS (next_time), GST_TIME_ARGS (ABS (diff)),
+ GST_TIME_ARGS (limit));
+
+resync:
+ /* if not good enough, determine granule based on time */
+ if (diff > limit || diff < -limit) {
+ granule = gst_util_uint64_scale_round (time, pad->map.granulerate_n,
+ GST_SECOND * pad->map.granulerate_d);
+ GST_DEBUG_OBJECT (pad->collect.pad,
+ "resyncing to determined granule %" G_GINT64_FORMAT, granule);
+ }
+
+ if (pad->map.is_ogm || pad->map.is_sparse) {
+ pad->next_granule = granule;
+ } else {
+ granule += duration;
+ pad->next_granule = granule;
+ }
+
+ /* track previous keyframe */
+ if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT))
+ pad->keyframe_granule = granule;
+
+ /* determine corresponding time and granulepos */
+ GST_BUFFER_OFFSET (buf) = gst_ogg_stream_granule_to_time (&pad->map, granule);
+ GST_BUFFER_OFFSET_END (buf) =
+ gst_ogg_stream_granule_to_granulepos (&pad->map, granule,
+ pad->keyframe_granule);
+
+ return buf;
+
+ /* ERRORS */
+no_granule:
+ {
+ GST_DEBUG_OBJECT (pad->collect.pad, "could not determine granulepos, "
+ "falling back to upstream provided metadata");
+ return buf;
+ }
+}
+
+
/* make sure at least one buffer is queued on all pads, two if possible
*
* if pad->buffer == NULL, pad->next_buffer != NULL, then
*
* returns a pointer to an oggpad that holds the best buffer, or
* NULL when no pad was usable. "best" means the buffer marked
- * with the lowest timestamp. If best->buffer == NULL then nothing
- * should be done until more data arrives */
+ * with the lowest timestamp. If best->buffer == NULL then either
+ * we're at EOS (popped = FALSE), or a buffer got dropped, so retry. */
static GstOggPadData *
-gst_ogg_mux_queue_pads (GstOggMux * ogg_mux)
+gst_ogg_mux_queue_pads (GstOggMux * ogg_mux, gboolean * popped)
{
- GstOggPadData *bestpad = NULL, *still_hungry = NULL;
+ GstOggPadData *bestpad = NULL;
GSList *walk;
+ *popped = FALSE;
+
/* try to make sure we have a buffer from each usable pad first */
walk = ogg_mux->collect->data;
while (walk) {
GstOggPadData *pad;
- GstCollectData *data;
+ GstCollectData2 *data;
- data = (GstCollectData *) walk->data;
+ data = (GstCollectData2 *) walk->data;
pad = (GstOggPadData *) data;
walk = g_slist_next (walk);
if (pad->buffer == NULL) {
GstBuffer *buf;
- /* shift the buffer along if needed (it's okay if next_buffer is NULL) */
- if (pad->buffer == NULL) {
- GST_LOG_OBJECT (data->pad, "shifting buffer %" GST_PTR_FORMAT,
- pad->next_buffer);
- pad->buffer = pad->next_buffer;
- pad->next_buffer = NULL;
- }
-
- buf = gst_collect_pads_pop (ogg_mux->collect, data);
+ buf = gst_collect_pads2_pop (ogg_mux->collect, data);
GST_LOG_OBJECT (data->pad, "popped buffer %" GST_PTR_FORMAT, buf);
/* On EOS we get a NULL buffer */
if (buf != NULL) {
+ *popped = TRUE;
+
if (ogg_mux->delta_pad == NULL &&
GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT))
ogg_mux->delta_pad = pad;
packet.packet = GST_BUFFER_DATA (buf);
packet.bytes = GST_BUFFER_SIZE (buf);
- if (GST_BUFFER_OFFSET_END_IS_VALID (buf))
- packet.granulepos = GST_BUFFER_OFFSET_END (buf);
- else
- packet.granulepos = 0;
-
/* if we're not yet in data mode, ensure we're setup on the first packet */
if (!pad->have_type) {
/* Use headers in caps, if any; this will allow us to be resilient
} else {
GST_DEBUG_OBJECT (pad, "caps detected: %" GST_PTR_FORMAT,
pad->map.caps);
+
+ if (pad->map.is_sparse) {
+ GST_DEBUG_OBJECT (pad, "Pad is sparse, marking as such");
+ gst_collect_pads2_set_waiting (ogg_mux->collect,
+ (GstCollectData2 *) pad, FALSE);
+ }
}
}
"got data buffer in control state, switching to data mode");
/* this is a data buffer so switch to data state */
pad->state = GST_OGG_PAD_STATE_DATA;
+
+ /* check if this type of stream allows generating granulepos
+ * metadata here, if not, upstream will have to provide */
+ if (gst_ogg_stream_granule_to_granulepos (&pad->map, 1, 1) < 0) {
+ GST_WARNING_OBJECT (data->pad, "can not generate metadata; "
+ "relying on upstream");
+ /* disable metadata code path, otherwise not used anyway */
+ pad->map.granulerate_n = 0;
+ }
}
}
- } else {
- GST_DEBUG_OBJECT (data->pad, "EOS on pad");
- if (!pad->eos) {
- ogg_page page;
-
- /* it's no longer active */
- ogg_mux->active_pads--;
-
- /* Just gone to EOS. Flush existing page(s) */
- pad->eos = TRUE;
-
- while (ogg_stream_flush (&pad->map.stream, &page)) {
- /* Place page into the per-pad queue */
- gst_ogg_mux_pad_queue_page (ogg_mux, pad, &page, pad->first_delta);
- /* increment the page number counter */
- pad->pageno++;
- /* mark other pages as delta */
- pad->first_delta = TRUE;
- }
+
+ /* so now we should have a real data packet;
+ * see that it is properly decorated */
+ if (G_LIKELY (buf)) {
+ buf = gst_ogg_mux_decorate_buffer (ogg_mux, pad, buf);
+ if (G_UNLIKELY (!buf))
+ GST_DEBUG_OBJECT (data->pad, "buffer clipped");
}
}
- pad->next_buffer = buf;
+ pad->buffer = buf;
}
/* we should have a buffer now, see if it is the best pad to
* pull on */
- if (pad->buffer || pad->next_buffer) {
+ if (pad->buffer) {
if (gst_ogg_mux_compare_pads (ogg_mux, bestpad, pad) > 0) {
GST_LOG_OBJECT (data->pad,
- "new best pad, with buffers %" GST_PTR_FORMAT
- " and %" GST_PTR_FORMAT, pad->buffer, pad->next_buffer);
+ "new best pad, with buffer %" GST_PTR_FORMAT, pad->buffer);
bestpad = pad;
}
- } else if (!pad->eos) {
- GST_LOG_OBJECT (data->pad, "hungry pad");
- still_hungry = pad;
}
}
- if (still_hungry)
- /* drop back into collectpads... */
- return still_hungry;
- else
- return bestpad;
+ return bestpad;
}
static GList *
GST_LOG_OBJECT (thepad, "streamheader is not fixed list");
}
- /* Start a new page for every CMML buffer */
- if (gst_structure_has_name (structure, "text/x-cmml"))
- pad->always_flush_page = TRUE;
} else if (gst_structure_has_name (structure, "video/x-dirac")) {
res = g_list_append (res, pad->buffer);
- pad->buffer = pad->next_buffer;
- pad->next_buffer = NULL;
- pad->always_flush_page = TRUE;
+ pad->buffer = NULL;
} else {
GST_LOG_OBJECT (thepad, "caps don't have streamheader");
}
return caps;
}
+static void
+gst_ogg_mux_create_header_packet_with_flags (ogg_packet * packet,
+ GstBuffer * buf, gboolean bos, gboolean eos)
+{
+ packet->packet = GST_BUFFER_DATA (buf);
+ packet->bytes = GST_BUFFER_SIZE (buf);
+ packet->granulepos = 0;
+ /* mark BOS and packet number */
+ packet->b_o_s = bos;
+ /* mark EOS */
+ packet->e_o_s = eos;
+}
+
+static void
+gst_ogg_mux_create_header_packet (ogg_packet * packet, GstBuffer * buf,
+ GstOggPadData * pad)
+{
+ gst_ogg_mux_create_header_packet_with_flags (packet, buf, pad->packetno == 0,
+ 0);
+ packet->packetno = pad->packetno++;
+}
+
+static void
+gst_ogg_mux_submit_skeleton_header_packet (GstOggMux * mux,
+ ogg_stream_state * os, GstBuffer * buf, gboolean bos, gboolean eos)
+{
+ ogg_packet packet;
+ gst_ogg_mux_create_header_packet_with_flags (&packet, buf, bos, eos);
+ ogg_stream_packetin (os, &packet);
+ gst_buffer_unref (buf);
+}
+
+static void
+gst_ogg_mux_make_fishead (GstOggMux * mux, ogg_stream_state * os)
+{
+ GstByteWriter bw;
+ GstBuffer *fishead;
+
+ GST_DEBUG_OBJECT (mux, "Creating fishead");
+
+ fishead = gst_buffer_new_and_alloc (64);
+ gst_byte_writer_init_with_buffer (&bw, fishead, FALSE);
+ gst_byte_writer_put_string_utf8 (&bw, "fishead");
+ gst_byte_writer_put_int16_le (&bw, 3); /* version major */
+ gst_byte_writer_put_int16_le (&bw, 0); /* version minor */
+ gst_byte_writer_put_int64_le (&bw, 0); /* presentation time numerator */
+ gst_byte_writer_put_int64_le (&bw, 1000); /* ...and denominator */
+ gst_byte_writer_put_int64_le (&bw, 0); /* base time numerator */
+ gst_byte_writer_put_int64_le (&bw, 1000); /* ...and denominator */
+ gst_byte_writer_fill (&bw, ' ', 20); /* UTC time */
+ g_assert (gst_byte_writer_get_pos (&bw) == GST_BUFFER_SIZE (fishead));
+ gst_ogg_mux_submit_skeleton_header_packet (mux, os, fishead, 1, 0);
+}
+
+static void
+gst_ogg_mux_byte_writer_put_string_utf8 (GstByteWriter * bw, const char *s)
+{
+ gst_byte_writer_put_data (bw, (const guint8 *) s, strlen (s));
+}
+
+static void
+gst_ogg_mux_add_fisbone_message_header (GstOggMux * mux, GstByteWriter * bw,
+ const char *tag, const char *value)
+{
+ /* It is valid to pass NULL as the value to omit the tag */
+ if (!value)
+ return;
+ GST_DEBUG_OBJECT (mux, "Adding fisbone message header %s: %s", tag, value);
+ gst_ogg_mux_byte_writer_put_string_utf8 (bw, tag);
+ gst_ogg_mux_byte_writer_put_string_utf8 (bw, ": ");
+ gst_ogg_mux_byte_writer_put_string_utf8 (bw, value);
+ gst_ogg_mux_byte_writer_put_string_utf8 (bw, "\r\n");
+}
+
+static void
+gst_ogg_mux_add_fisbone_message_header_from_tags (GstOggMux * mux,
+ GstByteWriter * bw, const char *header, const char *tag,
+ const GstTagList * tags)
+{
+ GString *s;
+ guint size = gst_tag_list_get_tag_size (tags, tag), n;
+ GST_DEBUG_OBJECT (mux, "Found %u tags for name %s", size, tag);
+ if (size == 0)
+ return;
+ s = g_string_new ("");
+ for (n = 0; n < size; ++n) {
+ gchar *tmp;
+ if (n)
+ g_string_append (s, ", ");
+ gst_tag_list_get_string_index (tags, tag, n, &tmp);
+ g_string_append (s, tmp);
+ g_free (tmp);
+ }
+ gst_ogg_mux_add_fisbone_message_header (mux, bw, header, s->str);
+ g_string_free (s, TRUE);
+}
+
+/* This is a basic placeholder to generate roles for the tracks.
+ For tracks with more than one video, both video tracks will get
+ tagged with a "video/main" role, but we have no way of knowing
+ which one is the main one, if any. We could just pick one. For
+ audio, it's more complicated as we don't know which is music,
+ which is dubbing, etc. For kate, we could take a pretty good
+ guess based on the category, as role essentially is category.
+ For now, leave this as is. */
+static const char *
+gst_ogg_mux_get_default_role (GstOggPadData * pad)
+{
+ const char *type = gst_ogg_stream_get_media_type (&pad->map);
+ if (type) {
+ if (!strncmp (type, "video/", strlen ("video/")))
+ return "video/main";
+ if (!strncmp (type, "audio/", strlen ("audio/")))
+ return "audio/main";
+ if (!strcmp (type + strlen (type) - strlen ("kate"), "kate"))
+ return "text/caption";
+ }
+ return NULL;
+}
+
+static void
+gst_ogg_mux_make_fisbone (GstOggMux * mux, ogg_stream_state * os,
+ GstOggPadData * pad)
+{
+ GstByteWriter bw;
+
+ GST_DEBUG_OBJECT (mux,
+ "Creating %s fisbone for serial %08x",
+ gst_ogg_stream_get_media_type (&pad->map), pad->map.serialno);
+
+ gst_byte_writer_init (&bw);
+ gst_byte_writer_put_string_utf8 (&bw, "fisbone");
+ gst_byte_writer_put_int32_le (&bw, 44); /* offset to message headers */
+ gst_byte_writer_put_uint32_le (&bw, pad->map.serialno);
+ gst_byte_writer_put_uint32_le (&bw, pad->map.n_header_packets);
+ gst_byte_writer_put_uint64_le (&bw, pad->map.granulerate_n);
+ gst_byte_writer_put_uint64_le (&bw, pad->map.granulerate_d);
+ gst_byte_writer_put_uint64_le (&bw, 0); /* base granule */
+ gst_byte_writer_put_uint32_le (&bw, pad->map.preroll);
+ gst_byte_writer_put_uint8 (&bw, pad->map.granuleshift);
+ gst_byte_writer_fill (&bw, 0, 3); /* padding */
+ /* message header fields - MIME type for now */
+ gst_ogg_mux_add_fisbone_message_header (mux, &bw, "Content-Type",
+ gst_ogg_stream_get_media_type (&pad->map));
+ gst_ogg_mux_add_fisbone_message_header (mux, &bw, "Role",
+ gst_ogg_mux_get_default_role (pad));
+ gst_ogg_mux_add_fisbone_message_header_from_tags (mux, &bw, "Language",
+ GST_TAG_LANGUAGE_CODE, pad->tags);
+ gst_ogg_mux_add_fisbone_message_header_from_tags (mux, &bw, "Title",
+ GST_TAG_TITLE, pad->tags);
+
+ gst_ogg_mux_submit_skeleton_header_packet (mux, os,
+ gst_byte_writer_reset_and_get_buffer (&bw), 0, 0);
+}
+
+static void
+gst_ogg_mux_make_fistail (GstOggMux * mux, ogg_stream_state * os)
+{
+ GST_DEBUG_OBJECT (mux, "Creating fistail");
+
+ gst_ogg_mux_submit_skeleton_header_packet (mux, os,
+ gst_buffer_new_and_alloc (0), 0, 1);
+}
+
/*
* For each pad we need to write out one (small) header in one
* page that allows decoders to identify the type of the stream.
GList *hbufs, *hwalk;
GstCaps *caps;
GstFlowReturn ret;
+ ogg_page page;
+ ogg_stream_state skeleton_stream;
hbufs = NULL;
ret = GST_FLOW_OK;
GST_LOG_OBJECT (mux, "looking at pad %s:%s", GST_DEBUG_PAD_NAME (thepad));
- /* if the pad has no buffer, we don't care */
- if (pad->buffer == NULL && pad->next_buffer == NULL)
+ /* if the pad has no buffer and is not sparse, we don't care */
+ if (pad->buffer == NULL && !pad->map.is_sparse)
continue;
/* now figure out the headers */
GstOggPadData *pad;
GstBuffer *buf;
ogg_packet packet;
- ogg_page page;
GstPad *thepad;
GstCaps *caps;
GstStructure *structure;
} else if (pad->buffer) {
buf = pad->buffer;
gst_buffer_ref (buf);
- } else if (pad->next_buffer) {
- buf = pad->next_buffer;
- gst_buffer_ref (buf);
} else {
/* fixme -- should be caught in the previous list traversal. */
GST_OBJECT_LOCK (thepad);
}
/* create a packet from the buffer */
- packet.packet = GST_BUFFER_DATA (buf);
- packet.bytes = GST_BUFFER_SIZE (buf);
- packet.granulepos = GST_BUFFER_OFFSET_END (buf);
- if (packet.granulepos == -1)
- packet.granulepos = 0;
- /* mark BOS and packet number */
- packet.b_o_s = (pad->packetno == 0);
- packet.packetno = pad->packetno++;
- /* mark EOS */
- packet.e_o_s = 0;
+ gst_ogg_mux_create_header_packet (&packet, buf, pad);
/* swap the packet in */
ogg_stream_packetin (&pad->map.stream, &packet);
GST_LOG_OBJECT (mux, "swapped out page with mime type %s",
gst_structure_get_name (structure));
- /* quick hack: put Theora, VP8 and Dirac video pages at the front.
+ /* quick hack: put video pages at the front.
* Ideally, we would have a settable enum for which Ogg
* profile we work with, and order based on that.
* (FIXME: if there is more than one video stream, shouldn't we only put
* one's BOS into the first page, followed by an audio stream's BOS, and
* only then followed by the remaining video and audio streams?) */
- if (gst_structure_has_name (structure, "video/x-theora")) {
- GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "Theora");
- hbufs = g_list_prepend (hbufs, hbuf);
- } else if (gst_structure_has_name (structure, "video/x-dirac")) {
- GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "Dirac");
- hbufs = g_list_prepend (hbufs, hbuf);
- pad->always_flush_page = TRUE;
- } else if (gst_structure_has_name (structure, "video/x-vp8")) {
- GST_DEBUG_OBJECT (thepad, "putting %s page at the front", "VP8");
+ if (pad->map.is_video) {
+ GST_DEBUG_OBJECT (thepad, "putting %s page at the front",
+ gst_structure_get_name (structure));
hbufs = g_list_prepend (hbufs, hbuf);
} else {
hbufs = g_list_append (hbufs, hbuf);
}
+
gst_caps_unref (caps);
}
+ /* The Skeleton BOS goes first - even before the video that went first before */
+ if (mux->use_skeleton) {
+ ogg_stream_init (&skeleton_stream, gst_ogg_mux_generate_serialno (mux));
+ gst_ogg_mux_make_fishead (mux, &skeleton_stream);
+ while (ogg_stream_flush (&skeleton_stream, &page) > 0) {
+ GstBuffer *hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE);
+ hbufs = g_list_append (hbufs, hbuf);
+ }
+ }
+
GST_LOG_OBJECT (mux, "creating next headers");
walk = mux->collect->data;
while (walk) {
walk = walk->next;
+ if (mux->use_skeleton)
+ gst_ogg_mux_make_fisbone (mux, &skeleton_stream, pad);
+
GST_LOG_OBJECT (mux, "looping over headers for pad %s:%s",
GST_DEBUG_PAD_NAME (thepad));
while (hwalk) {
GstBuffer *buf = GST_BUFFER (hwalk->data);
ogg_packet packet;
- ogg_page page;
hwalk = hwalk->next;
/* create a packet from the buffer */
- packet.packet = GST_BUFFER_DATA (buf);
- packet.bytes = GST_BUFFER_SIZE (buf);
- packet.granulepos = GST_BUFFER_OFFSET_END (buf);
- if (packet.granulepos == -1)
- packet.granulepos = 0;
- /* mark BOS and packet number */
- packet.b_o_s = (pad->packetno == 0);
- packet.packetno = pad->packetno++;
- /* mark EOS */
- packet.e_o_s = 0;
+ gst_ogg_mux_create_header_packet (&packet, buf, pad);
/* swap the packet in */
ogg_stream_packetin (&pad->map.stream, &packet);
g_list_free (pad->map.headers);
pad->map.headers = NULL;
}
+
+ if (mux->use_skeleton) {
+ /* flush accumulated fisbones, the fistail must be on a separate page */
+ while (ogg_stream_flush (&skeleton_stream, &page) > 0) {
+ GstBuffer *hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE);
+ hbufs = g_list_append (hbufs, hbuf);
+ }
+ gst_ogg_mux_make_fistail (mux, &skeleton_stream);
+ while (ogg_stream_flush (&skeleton_stream, &page) > 0) {
+ GstBuffer *hbuf = gst_ogg_mux_buffer_from_page (mux, &page, FALSE);
+ hbufs = g_list_append (hbufs, hbuf);
+ }
+ ogg_stream_clear (&skeleton_stream);
+ }
+
/* hbufs holds all buffers for the headers now */
/* create caps with the buffers */
gboolean delta_unit;
gint64 granulepos = 0;
GstClockTime timestamp, gp_time;
+ GstBuffer *next_buf;
GST_LOG_OBJECT (ogg_mux, "best pad %" GST_PTR_FORMAT
", currently pulling from %" GST_PTR_FORMAT, best->collect.pad,
- ogg_mux->pulling);
+ ogg_mux->pulling ? ogg_mux->pulling->collect.pad : NULL);
+
+ if (ogg_mux->pulling) {
+ next_buf = gst_collect_pads2_peek (ogg_mux->collect,
+ &ogg_mux->pulling->collect);
+ if (next_buf) {
+ ogg_mux->pulling->eos = FALSE;
+ gst_buffer_unref (next_buf);
+ } else {
+ GST_DEBUG_OBJECT (ogg_mux->pulling->collect.pad, "setting eos to true");
+ ogg_mux->pulling->eos = TRUE;
+ }
+ }
- /* best->buffer is non-NULL, either the pad is EOS's or there is a next
- * buffer */
- if (best->next_buffer == NULL && !best->eos) {
- GST_WARNING_OBJECT (ogg_mux, "no subsequent buffer and EOS not reached");
- return GST_FLOW_WRONG_STATE;
+ /* We could end up pushing from the best pad instead, so check that
+ * as well */
+ if (best && best != ogg_mux->pulling) {
+ next_buf = gst_collect_pads2_peek (ogg_mux->collect, &best->collect);
+ if (next_buf) {
+ best->eos = FALSE;
+ gst_buffer_unref (next_buf);
+ } else {
+ GST_DEBUG_OBJECT (best->collect.pad, "setting eos to true");
+ best->eos = TRUE;
+ }
}
/* if we were already pulling from one pad, but the new "best" buffer is
GST_GP_CAST (packet.granulepos), (gint64) packet.packetno,
packet.bytes);
- packet.e_o_s = (pad->eos ? 1 : 0);
+ packet.e_o_s = ogg_mux->pulling->eos ? 1 : 0;
tmpbuf = NULL;
/* we flush when we see a new keyframe */
- force_flush = (pad->prev_delta && !delta_unit) || pad->always_flush_page;
+ force_flush = (pad->prev_delta && !delta_unit)
+ || pad->map.always_flush_page;
if (duration != -1) {
pad->duration += duration;
/* if page duration exceeds max, flush page */
* Returns TRUE if all pads are EOS.
*/
static gboolean
-all_pads_eos (GstCollectPads * pads)
+all_pads_eos (GstCollectPads2 * pads)
{
GSList *walk;
- gboolean alleos = TRUE;
walk = pads->data;
while (walk) {
- GstBuffer *buf;
- GstCollectData *data = (GstCollectData *) walk->data;
+ GstOggPadData *oggpad = (GstOggPadData *) walk->data;
- buf = gst_collect_pads_peek (pads, data);
- if (buf) {
- alleos = FALSE;
- gst_buffer_unref (buf);
- goto beach;
- }
- walk = walk->next;
+ GST_DEBUG_OBJECT (oggpad->collect.pad,
+ "oggpad %p eos %d", oggpad, oggpad->eos);
+
+ if (oggpad->eos == FALSE)
+ return FALSE;
+
+ walk = g_slist_next (walk);
}
-beach:
- return alleos;
+
+ return TRUE;
}
/* This function is called when there is data on all pads.
* are all empty, and then sends EOS.
*/
static GstFlowReturn
-gst_ogg_mux_collected (GstCollectPads * pads, GstOggMux * ogg_mux)
+gst_ogg_mux_collected (GstCollectPads2 * pads, GstOggMux * ogg_mux)
{
GstOggPadData *best;
GstFlowReturn ret;
- gint activebefore;
+ gboolean popped;
GST_LOG_OBJECT (ogg_mux, "collected");
- activebefore = ogg_mux->active_pads;
-
/* queue buffers on all pads; find a buffer with the lowest timestamp */
- best = gst_ogg_mux_queue_pads (ogg_mux);
- if (best && !best->buffer) {
- GST_DEBUG_OBJECT (ogg_mux, "No buffer available on best pad");
+ best = gst_ogg_mux_queue_pads (ogg_mux, &popped);
+
+ if (popped)
return GST_FLOW_OK;
- }
- if (!best) {
- return GST_FLOW_WRONG_STATE;
+ if (best == NULL || best->buffer == NULL) {
+ /* This is not supposed to happen */
+ return GST_FLOW_ERROR;
}
ret = gst_ogg_mux_process_best_pad (ogg_mux, best);
- if (ogg_mux->active_pads < activebefore) {
- /* If the active pad count went down, this mean at least one pad has gone
- * EOS. Since CollectPads only calls _collected() once when all pads are
- * EOS, and our code doesn't _pop() from all pads we need to check that by
- * peeking on all pads, else we won't be called again and the muxing will
- * not terminate (push out EOS). */
-
- /* if all the pads have been removed, flush all pending data */
- if ((ret == GST_FLOW_OK) && all_pads_eos (pads)) {
- GST_LOG_OBJECT (ogg_mux, "no pads remaining, flushing data");
-
- do {
- best = gst_ogg_mux_queue_pads (ogg_mux);
- if (best)
- ret = gst_ogg_mux_process_best_pad (ogg_mux, best);
- } while ((ret == GST_FLOW_OK) && (best != NULL));
-
- GST_DEBUG_OBJECT (ogg_mux, "Pushing EOS");
- gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ());
- }
+ if (best->eos && all_pads_eos (pads)) {
+ gst_pad_push_event (ogg_mux->srcpad, gst_event_new_eos ());
+ return GST_FLOW_UNEXPECTED;
}
return ret;
case ARG_MAX_PAGE_DELAY:
g_value_set_uint64 (value, ogg_mux->max_page_delay);
break;
+ case ARG_MAX_TOLERANCE:
+ g_value_set_uint64 (value, ogg_mux->max_tolerance);
+ break;
+ case ARG_SKELETON:
+ g_value_set_boolean (value, ogg_mux->use_skeleton);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case ARG_MAX_PAGE_DELAY:
ogg_mux->max_page_delay = g_value_get_uint64 (value);
break;
+ case ARG_MAX_TOLERANCE:
+ ogg_mux->max_tolerance = g_value_get_uint64 (value);
+ break;
+ case ARG_SKELETON:
+ ogg_mux->use_skeleton = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
/* reset all variables in the ogg pads. */
static void
-gst_ogg_mux_init_collectpads (GstCollectPads * collect)
+gst_ogg_mux_init_collectpads (GstCollectPads2 * collect)
{
GSList *walk;
/* Clear all buffers from the collectpads object */
static void
-gst_ogg_mux_clear_collectpads (GstCollectPads * collect)
+gst_ogg_mux_clear_collectpads (GstCollectPads2 * collect)
{
GSList *walk;
gst_buffer_unref (oggpad->buffer);
oggpad->buffer = NULL;
}
- if (oggpad->next_buffer) {
- gst_buffer_unref (oggpad->next_buffer);
- oggpad->next_buffer = NULL;
+
+ if (oggpad->tags) {
+ gst_tag_list_free (oggpad->tags);
+ oggpad->tags = NULL;
}
gst_segment_init (&oggpad->segment, GST_FORMAT_TIME);
case GST_STATE_CHANGE_READY_TO_PAUSED:
gst_ogg_mux_clear (ogg_mux);
gst_ogg_mux_init_collectpads (ogg_mux->collect);
- gst_collect_pads_start (ogg_mux->collect);
+ gst_collect_pads2_start (ogg_mux->collect);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
- gst_collect_pads_stop (ogg_mux->collect);
+ gst_collect_pads2_stop (ogg_mux->collect);
break;
default:
break;
#include <ogg/ogg.h>
#include <gst/gst.h>
-#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstcollectpads2.h>
#include "gstoggstream.h"
G_BEGIN_DECLS
/* all information needed for one ogg stream */
typedef struct
{
- GstCollectData collect; /* we extend the CollectData */
+ GstCollectData2 collect; /* we extend the CollectData */
GstOggStream map;
gboolean have_type;
GstSegment segment;
- /* These two buffers make a very simple queue - they enter as 'next_buffer'
- * and (usually) leave as 'buffer', except at EOS, when buffer will be NULL */
GstBuffer *buffer; /* the first waiting buffer for the pad */
- GstBuffer *next_buffer; /* the second waiting buffer for the pad */
gint64 packetno; /* number of next packet */
gint64 pageno; /* number of next page */
gboolean prev_delta; /* was the previous buffer a delta frame */
gboolean data_pushed; /* whether we pushed data already */
+ gint64 next_granule; /* expected granule of next buffer ts */
+ gint64 keyframe_granule; /* granule of last preceding keyframe */
+
GstPadEventFunction collect_event;
- gboolean always_flush_page;
+ GstTagList *tags;
}
GstOggPadData;
GstPad *srcpad;
/* sinkpads */
- GstCollectPads *collect;
+ GstCollectPads2 *collect;
/* number of pads which have not received EOS */
gint active_pads;
guint64 max_delay;
guint64 max_page_delay;
+ guint64 max_tolerance;
GstOggPadData *delta_pad; /* when a delta frame is detected on a stream, we mark
pages as delta frames up to the page that has the
keyframe */
+
+ /* whether to create a skeleton track */
+ gboolean use_skeleton;
};
struct _GstOggMuxClass
g_list_foreach (stream->unknown_pages, (GFunc) gst_mini_object_unref, NULL);
g_list_foreach (stream->stored_buffers, (GFunc) gst_mini_object_unref, NULL);
- g_free (stream);
+ g_slice_free (GstOggStream, stream);
}
static void
GST_DEBUG_OBJECT (parser, "creating new stream %08x", serialno);
- stream = g_new0 (GstOggStream, 1);
+ stream = g_slice_new0 (GstOggStream);
stream->serialno = serialno;
stream->in_headers = 1;
"parse ogg streams into pages (info about ogg: http://xiph.org)",
"Michael Smith <msmith@fluendo.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&ogg_parse_sink_template_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&ogg_parse_src_template_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &ogg_parse_sink_template_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &ogg_parse_src_template_factory);
}
static void
GstOggStream *stream = gst_ogg_parse_find_stream (ogg, serialno);
if (stream != NULL) {
- GST_LOG_OBJECT (ogg, "Incorrect stream; repeats serial number %u "
+ GST_LOG_OBJECT (ogg, "Incorrect stream; repeats serial number %08x "
"at offset %" G_GINT64_FORMAT, serialno, ogg->offset);
}
GstOggStream *stream = (GstOggStream *) l->data;
if (g_list_length (stream->headers) == 0) {
- GST_LOG_OBJECT (ogg, "No primary header found for stream %08lx",
+ GST_LOG_OBJECT (ogg, "No primary header found for stream %08x",
stream->serialno);
goto failure;
}
gint64 granule, gint64 keyframe_granule);
/* returns TRUE if the granulepos denotes a key frame */
-typedef gboolean (*GstOggMapIsKeyFrameFunc) (GstOggStream * pad,
+typedef gboolean (*GstOggMapIsGranuleposKeyFrameFunc) (GstOggStream * pad,
gint64 granulepos);
+/* returns TRUE if the packet is a key frame */
+typedef gboolean (*GstOggMapIsPacketKeyFrameFunc) (GstOggStream * pad,
+ ogg_packet * packet);
+
/* returns TRUE if the given packet is a stream header packet */
typedef gboolean (*GstOggMapIsHeaderPacketFunc) (GstOggStream * pad,
ogg_packet * packet);
GstOggMapSetupFunc setup_func;
GstOggMapToGranuleFunc granulepos_to_granule_func;
GstOggMapToGranuleposFunc granule_to_granulepos_func;
- GstOggMapIsKeyFrameFunc is_key_frame_func;
+ GstOggMapIsGranuleposKeyFrameFunc is_granulepos_key_frame_func;
+ GstOggMapIsPacketKeyFrameFunc is_packet_key_frame_func;
GstOggMapIsHeaderPacketFunc is_header_func;
GstOggMapPacketDurationFunc packet_duration_func;
GstOggMapGranuleposToKeyGranuleFunc granulepos_to_key_granule_func;
if (granule == 0 || pad->granulerate_n == 0 || pad->granulerate_d == 0)
return 0;
+ granule += pad->granule_offset;
+ if (granule < 0)
+ return 0;
+
return gst_util_uint64_scale (granule, GST_SECOND * pad->granulerate_d,
pad->granulerate_n);
}
}
if (mappers[pad->map].granulepos_to_granule_func == NULL) {
- GST_WARNING ("Failed to convert granulepos to granule");
+ GST_WARNING ("Failed to convert %s granulepos to granule",
+ gst_ogg_stream_get_media_type (pad));
return -1;
}
}
if (mappers[pad->map].granule_to_granulepos_func == NULL) {
- GST_WARNING ("Failed to convert granule to granulepos");
+ GST_WARNING ("Failed to convert %s granule to granulepos",
+ gst_ogg_stream_get_media_type (pad));
return -1;
}
return FALSE;
}
- if (mappers[pad->map].is_key_frame_func == NULL) {
- GST_WARNING ("Failed to determine key frame");
+ if (mappers[pad->map].is_granulepos_key_frame_func == NULL) {
+ GST_WARNING ("Failed to determine keyframeness for %s granulepos",
+ gst_ogg_stream_get_media_type (pad));
+ return FALSE;
+ }
+
+ return mappers[pad->map].is_granulepos_key_frame_func (pad, granulepos);
+}
+
+gboolean
+gst_ogg_stream_packet_is_key_frame (GstOggStream * pad, ogg_packet * packet)
+{
+ if (mappers[pad->map].is_packet_key_frame_func == NULL) {
+ GST_WARNING ("Failed to determine keyframeness of %s packet",
+ gst_ogg_stream_get_media_type (pad));
return FALSE;
}
- return mappers[pad->map].is_key_frame_func (pad, granulepos);
+ return mappers[pad->map].is_packet_key_frame_func (pad, packet);
}
gboolean
gst_ogg_stream_packet_is_header (GstOggStream * pad, ogg_packet * packet)
{
if (mappers[pad->map].is_header_func == NULL) {
- GST_WARNING ("Failed to determine header");
+ GST_WARNING ("Failed to determine headerness of %s packet",
+ gst_ogg_stream_get_media_type (pad));
return FALSE;
}
gst_ogg_stream_get_packet_duration (GstOggStream * pad, ogg_packet * packet)
{
if (mappers[pad->map].packet_duration_func == NULL) {
- GST_WARNING ("Failed to determine packet duration");
+ GST_WARNING ("Failed to determine %s packet duration",
+ gst_ogg_stream_get_media_type (pad));
return -1;
}
mappers[pad->map].extract_tags_func (pad, packet);
}
+const char *
+gst_ogg_stream_get_media_type (GstOggStream * pad)
+{
+ const GstCaps *caps = pad->caps;
+ const GstStructure *structure;
+ if (!caps)
+ return NULL;
+ structure = gst_caps_get_structure (caps, 0);
+ if (!structure)
+ return NULL;
+ return gst_structure_get_name (structure);
+}
+
/* some generic functions */
static gboolean
-is_keyframe_true (GstOggStream * pad, gint64 granulepos)
+is_granulepos_keyframe_true (GstOggStream * pad, gint64 granulepos)
+{
+ return TRUE;
+}
+
+static gboolean
+is_packet_keyframe_true (GstOggStream * pad, ogg_packet * packet)
{
return TRUE;
}
/* 2 bits + 3 bits = 5 bits KFGSHIFT */
pad->granuleshift = ((GST_READ_UINT8 (data + 40) & 0x03) << 3) +
(GST_READ_UINT8 (data + 41) >> 5);
+ GST_LOG ("granshift: %d", pad->granuleshift);
pad->is_video = TRUE;
pad->n_header_packets = 3;
}
static gboolean
-is_keyframe_theora (GstOggStream * pad, gint64 granulepos)
+is_granulepos_keyframe_theora (GstOggStream * pad, gint64 granulepos)
{
gint64 frame_mask;
}
static gboolean
+is_packet_keyframe_theora (GstOggStream * pad, ogg_packet * packet)
+{
+ if (packet->bytes == 0)
+ return FALSE;
+ return (packet->packet[0] & 0xc0) == 0x00;
+}
+
+static gboolean
is_header_theora (GstOggStream * pad, ogg_packet * packet)
{
return (packet->bytes > 0 && (packet->packet[0] & 0x80) == 0x80);
}
pad->is_video = TRUE;
+ pad->always_flush_page = TRUE;
pad->granulerate_n = header.frame_rate_numerator * 2;
pad->granulerate_d = header.frame_rate_denominator;
pad->granuleshift = 22;
pad->granulerate_n = GST_READ_UINT32_LE (data);
pad->granulerate_d = 1;
pad->granuleshift = 0;
+ pad->preroll = 2;
pad->last_size = 0;
GST_LOG ("sample rate: %d", pad->granulerate_n);
int size;
int duration;
- if (packet->packet[0] & 1)
+ if (packet->bytes == 0 || packet->packet[0] & 1)
return 0;
mode = (packet->packet[0] >> 1) & ((1 << pad->vorbis_log2_num_modes) - 1);
pad->is_skeleton = TRUE;
pad->is_sparse = TRUE;
- pad->caps = gst_caps_new_simple ("none/none", NULL);
+ pad->caps = gst_caps_new_simple ("application/x-ogg-skeleton", NULL);
return TRUE;
}
GstOggSkeleton stype;
guint serial_offset;
- if (size < SKELETON_FISBONE_MIN_SIZE) {
+ if (size != 0 && size < SKELETON_FISBONE_MIN_SIZE) {
GST_WARNING ("small fisbone packet of size %d, ignoring", size);
return FALSE;
}
- if (memcmp (data, "fisbone\0", 8) == 0) {
+ if (size == 0) {
+ /* Skeleton EOS packet is zero bytes */
+ return FALSE;
+ } else if (memcmp (data, "fisbone\0", 8) == 0) {
GST_INFO ("got fisbone packet");
stype = GST_OGG_SKELETON_FISBONE;
serial_offset = 12;
pad->have_fisbone = TRUE;
- /* we just overwrite whatever was set before by the format-specific setup */
- pad->granulerate_n = GST_READ_UINT64_LE (data);
- pad->granulerate_d = GST_READ_UINT64_LE (data + 8);
+ /* We don't overwrite whatever was set before by the format-specific
+ setup: skeleton contains wrong information sometimes, and the codec
+ headers are authoritative.
+ So we only gather information that was not already filled out by
+ the mapper setup. This should hopefully allow handling unknown
+ streams a bit better, while not trashing correct setup from bad
+ skeleton data. */
+ if (pad->granulerate_n == 0 || pad->granulerate_d == 0) {
+ pad->granulerate_n = GST_READ_UINT64_LE (data);
+ pad->granulerate_d = GST_READ_UINT64_LE (data + 8);
+ }
+ if (pad->granuleshift < 0) {
+ pad->granuleshift = GST_READ_UINT8 (data + 28);
+ }
start_granule = GST_READ_UINT64_LE (data + 16);
pad->preroll = GST_READ_UINT32_LE (data + 24);
- pad->granuleshift = GST_READ_UINT8 (data + 28);
start_time = granulepos_to_granule_default (pad, start_granule);
GST_DEBUG ("blocksize1: %u", 1 << (data[0] & 0x0F));
pad->caps = gst_caps_new_simple ("text/x-cmml", NULL);
+ pad->always_flush_page = TRUE;
pad->is_sparse = TRUE;
return TRUE;
}
pad->is_sparse = TRUE;
+ pad->always_flush_page = TRUE;
return TRUE;
}
/* ensure the comment packet cannot override the category/language
from the identification header */
gst_tag_list_insert (pad->taglist, list, GST_TAG_MERGE_KEEP_ALL);
+ gst_tag_list_free (list);
} else
pad->taglist = list;
}
}
+/* opus */
+
+static gboolean
+setup_opus_mapper (GstOggStream * pad, ogg_packet * packet)
+{
+ if (packet->bytes < 19)
+ return FALSE;
+
+ pad->granulerate_n = 48000;
+ pad->granulerate_d = 1;
+ pad->granuleshift = 0;
+ pad->n_header_packets = 2;
+
+ /* pre-skip is in samples at 48000 Hz, which matches granule one for one */
+ pad->granule_offset = -GST_READ_UINT16_LE (packet->packet + 10);
+ GST_INFO ("Opus has a pre-skip of %" G_GINT64_FORMAT " samples",
+ -pad->granule_offset);
+
+ pad->caps = gst_caps_new_simple ("audio/x-opus", NULL);
+
+ return TRUE;
+}
+
+static gboolean
+is_header_opus (GstOggStream * pad, ogg_packet * packet)
+{
+ return packet->bytes >= 8 && !memcmp (packet->packet, "Opus", 4);
+}
+
+static gint64
+packet_duration_opus (GstOggStream * pad, ogg_packet * packet)
+{
+ static const guint64 durations[32] = {
+ 480, 960, 1920, 2880, /* Silk NB */
+ 480, 960, 1920, 2880, /* Silk MB */
+ 480, 960, 1920, 2880, /* Silk WB */
+ 480, 960, /* Hybrid SWB */
+ 480, 960, /* Hybrid FB */
+ 120, 240, 480, 960, /* CELT NB */
+ 120, 240, 480, 960, /* CELT NB */
+ 120, 240, 480, 960, /* CELT NB */
+ 120, 240, 480, 960, /* CELT NB */
+ };
+
+ gint64 duration;
+ gint64 frame_duration;
+ gint nframes = 0;
+ guint8 toc;
+
+ if (packet->bytes < 1)
+ return 0;
+
+ /* headers */
+ if (is_header_opus (pad, packet))
+ return 0;
+
+ toc = packet->packet[0];
+
+ frame_duration = durations[toc >> 3];
+ switch (toc & 3) {
+ case 0:
+ nframes = 1;
+ break;
+ case 1:
+ nframes = 2;
+ break;
+ case 2:
+ nframes = 2;
+ break;
+ case 3:
+ if (packet->bytes < 2) {
+ GST_WARNING ("Code 3 Opus packet has less than 2 bytes");
+ return 0;
+ }
+ nframes = packet->packet[1] & 63;
+ break;
+ }
+
+ duration = nframes * frame_duration;
+ if (duration > 5760) {
+ GST_WARNING ("Opus packet duration > 120 ms, invalid");
+ return 0;
+ }
+ GST_LOG ("Opus packet: frame size %.1f ms, %d frames, duration %.1f ms",
+ frame_duration / 48.f, nframes, duration / 48.f);
+ return duration;
+}
+
+static void
+extract_tags_opus (GstOggStream * pad, ogg_packet * packet)
+{
+ if (packet->bytes >= 8 && memcmp (packet->packet, "OpusTags", 8) == 0) {
+ tag_list_from_vorbiscomment_packet (packet,
+ (const guint8 *) "OpusTags", 8, &pad->taglist);
+ }
+}
+
/* *INDENT-OFF* */
/* indent hates our freedoms */
setup_theora_mapper,
granulepos_to_granule_theora,
granule_to_granulepos_default,
- is_keyframe_theora,
+ is_granulepos_keyframe_theora,
+ is_packet_keyframe_theora,
is_header_theora,
packet_duration_constant,
NULL,
setup_vorbis_mapper,
granulepos_to_granule_default,
granule_to_granulepos_default,
- is_keyframe_true,
+ is_granulepos_keyframe_true,
+ is_packet_keyframe_true,
is_header_vorbis,
packet_duration_vorbis,
NULL,
setup_speex_mapper,
granulepos_to_granule_default,
granule_to_granulepos_default,
- is_keyframe_true,
+ is_granulepos_keyframe_true,
+ is_packet_keyframe_true,
is_header_count,
packet_duration_constant,
NULL,
NULL,
NULL,
NULL,
+ NULL,
is_header_count,
NULL,
NULL,
NULL,
NULL,
NULL,
+ NULL,
is_header_count,
NULL,
NULL,
granulepos_to_granule_default,
granule_to_granulepos_default,
NULL,
+ NULL,
is_header_count,
NULL,
NULL,
NULL,
NULL,
NULL,
+ NULL,
is_header_true,
NULL,
NULL,
setup_fLaC_mapper,
granulepos_to_granule_default,
granule_to_granulepos_default,
- is_keyframe_true,
+ is_granulepos_keyframe_true,
+ is_packet_keyframe_true,
is_header_fLaC,
packet_duration_flac,
NULL,
setup_flac_mapper,
granulepos_to_granule_default,
granule_to_granulepos_default,
- is_keyframe_true,
+ is_granulepos_keyframe_true,
+ is_packet_keyframe_true,
is_header_flac,
packet_duration_flac,
NULL,
NULL,
NULL,
NULL,
+ NULL,
NULL
},
{
granulepos_to_granule_default,
granule_to_granulepos_default,
NULL,
+ NULL,
is_header_count,
packet_duration_constant,
NULL,
granulepos_to_granule_default,
granule_to_granulepos_default,
NULL,
+ NULL,
is_header_count,
packet_duration_kate,
NULL,
granulepos_to_granule_dirac,
granule_to_granulepos_dirac,
is_keyframe_dirac,
+ NULL,
is_header_count,
packet_duration_constant,
granulepos_to_key_granule_dirac,
granulepos_to_granule_vp8,
granule_to_granulepos_vp8,
is_keyframe_vp8,
+ NULL,
is_header_vp8,
packet_duration_vp8,
granulepos_to_key_granule_vp8,
extract_tags_vp8
},
{
+ "OpusHead", 8, 0,
+ "audio/x-opus",
+ setup_opus_mapper,
+ granulepos_to_granule_default,
+ granule_to_granulepos_default,
+ NULL,
+ NULL,
+ is_header_opus,
+ packet_duration_opus,
+ NULL,
+ extract_tags_opus
+ },
+ {
"\001audio\0\0\0", 9, 53,
"application/x-ogm-audio",
setup_ogmaudio_mapper,
granulepos_to_granule_default,
granule_to_granulepos_default,
- is_keyframe_true,
+ is_granulepos_keyframe_true,
+ is_packet_keyframe_true,
is_header_ogm,
packet_duration_ogm,
NULL,
granulepos_to_granule_default,
granule_to_granulepos_default,
NULL,
+ NULL,
is_header_ogm,
packet_duration_constant,
NULL,
setup_ogmtext_mapper,
granulepos_to_granule_default,
granule_to_granulepos_default,
- is_keyframe_true,
+ is_granulepos_keyframe_true,
+ is_packet_keyframe_true,
is_header_ogm,
packet_duration_ogm,
NULL,
{
ogg_stream_state stream;
- glong serialno;
+ guint32 serialno;
GList *headers;
gboolean have_headers;
GList *queued;
gboolean have_fisbone;
gint granulerate_n;
gint granulerate_d;
+ gint64 granule_offset;
guint32 preroll;
guint granuleshift;
gint n_header_packets;
GstCaps *caps;
gboolean is_video;
+ gboolean always_flush_page;
+
/* vorbis stuff */
int nln_increments[4];
int nsn_increment;
gboolean gst_ogg_stream_granulepos_is_key_frame (GstOggStream *pad,
gint64 granulepos);
gboolean gst_ogg_stream_packet_is_header (GstOggStream *pad, ogg_packet *packet);
+gboolean gst_ogg_stream_packet_is_key_frame (GstOggStream *pad, ogg_packet *packet);
gint64 gst_ogg_stream_get_packet_duration (GstOggStream * pad, ogg_packet *packet);
void gst_ogg_stream_extract_tags (GstOggStream * pad, ogg_packet * packet);
+const char *gst_ogg_stream_get_media_type (GstOggStream * pad);
gboolean gst_ogg_map_parse_fisbone (GstOggStream * pad, const guint8 * data, guint size,
guint32 * serialno, GstOggSkeleton *type);
"parse an OGM audio header and stream",
"GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sink_factory_audio));
+ gst_element_class_add_static_pad_template (element_class,
+ &sink_factory_audio);
audio_src_templ = gst_pad_template_new ("src",
GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
gst_element_class_add_pad_template (element_class, audio_src_templ);
"parse an OGM video header and stream",
"GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sink_factory_video));
+ gst_element_class_add_static_pad_template (element_class,
+ &sink_factory_video);
video_src_templ = gst_pad_template_new ("src",
GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
gst_element_class_add_pad_template (element_class, video_src_templ);
$(GST_CFLAGS) \
$(PANGO_CFLAGS)
libgstpango_la_LIBADD = \
- $(GST_PLUGINS_BASE_LIBS) \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_MAJORMINOR).la \
$(GST_BASE_LIBS) \
$(GST_CONTROLLER_LIBS) \
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstpango_la-gsttextrender.lo \
libgstpango_la-gsttimeoverlay.lo
libgstpango_la_OBJECTS = $(am_libgstpango_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
libgstpango_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstpango_la_SOURCES)
DIST_SOURCES = $(libgstpango_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
$(PANGO_CFLAGS)
libgstpango_la_LIBADD = \
- $(GST_PLUGINS_BASE_LIBS) \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_MAJORMINOR).la \
$(GST_BASE_LIBS) \
$(GST_CONTROLLER_LIBS) \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstpango.la: $(libgstpango_la_OBJECTS) $(libgstpango_la_DEPENDENCIES)
+libgstpango.la: $(libgstpango_la_OBJECTS) $(libgstpango_la_DEPENDENCIES) $(EXTRA_libgstpango_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstpango_la_LINK) -rpath $(plugindir) $(libgstpango_la_OBJECTS) $(libgstpango_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstpango_la-gstclockoverlay.lo: gstclockoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gstclockoverlay.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gstclockoverlay.Tpo -c -o libgstpango_la-gstclockoverlay.lo `test -f 'gstclockoverlay.c' || echo '$(srcdir)/'`gstclockoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gstclockoverlay.Tpo $(DEPDIR)/libgstpango_la-gstclockoverlay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstclockoverlay.c' object='libgstpango_la-gstclockoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstclockoverlay.c' object='libgstpango_la-gstclockoverlay.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gstclockoverlay.lo `test -f 'gstclockoverlay.c' || echo '$(srcdir)/'`gstclockoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gstclockoverlay.lo `test -f 'gstclockoverlay.c' || echo '$(srcdir)/'`gstclockoverlay.c
libgstpango_la-gsttextoverlay.lo: gsttextoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gsttextoverlay.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gsttextoverlay.Tpo -c -o libgstpango_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gsttextoverlay.Tpo $(DEPDIR)/libgstpango_la-gsttextoverlay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttextoverlay.c' object='libgstpango_la-gsttextoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttextoverlay.c' object='libgstpango_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 $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_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 $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttextoverlay.lo `test -f 'gsttextoverlay.c' || echo '$(srcdir)/'`gsttextoverlay.c
libgstpango_la-gsttextrender.lo: gsttextrender.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gsttextrender.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gsttextrender.Tpo -c -o libgstpango_la-gsttextrender.lo `test -f 'gsttextrender.c' || echo '$(srcdir)/'`gsttextrender.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gsttextrender.Tpo $(DEPDIR)/libgstpango_la-gsttextrender.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttextrender.c' object='libgstpango_la-gsttextrender.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttextrender.c' object='libgstpango_la-gsttextrender.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttextrender.lo `test -f 'gsttextrender.c' || echo '$(srcdir)/'`gsttextrender.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttextrender.lo `test -f 'gsttextrender.c' || echo '$(srcdir)/'`gsttextrender.c
libgstpango_la-gsttimeoverlay.lo: gsttimeoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -MT libgstpango_la-gsttimeoverlay.lo -MD -MP -MF $(DEPDIR)/libgstpango_la-gsttimeoverlay.Tpo -c -o libgstpango_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpango_la-gsttimeoverlay.Tpo $(DEPDIR)/libgstpango_la-gsttimeoverlay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttimeoverlay.c' object='libgstpango_la-gsttimeoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttimeoverlay.c' object='libgstpango_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 $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_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 $(libgstpango_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstpango_la_CFLAGS) $(CFLAGS) -c -o libgstpango_la-gsttimeoverlay.lo `test -f 'gsttimeoverlay.c' || echo '$(srcdir)/'`gsttimeoverlay.c
mostlyclean-libtool:
-rm -f *.lo
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:
#include "config.h"
#endif
-#include <gstclockoverlay.h>
+#include "gstclockoverlay.h"
#include <gst/video/video.h>
#include <time.h>
* Uh? What are you talking about?
* I don't understand (18-62s)
* ]|
+ * One can also feed arbitrary live text into the element:
+ * |[
+ * gst-launch fdsrc fd=0 ! text/plain ! txt. videotestsrc ! \
+ * textoverlay name=txt shaded-background=yes font-desc="Serif 40" wait-text=false ! \
+ * xvimagesink
+ * ]| This shows new text as entered on the terminal (stdin). This is not suited
+ * for subtitles as the test overlay is not timed. Subtitles should use
+ * timestamped formats. For the above use case one can also read the text from
+ * the application as set the #GstTextOverlay:text property.
* </para>
* </refsect2>
*/
#include "gsttextrender.h"
#include <string.h>
+#include "gst/glib-compat-private.h"
+
/* FIXME:
* - use proper strides and offset for I420
* - if text is wider than the video picture, it does not get
#define DEFAULT_PROP_TEXT ""
#define DEFAULT_PROP_SHADING FALSE
+#define DEFAULT_PROP_SHADOW TRUE
#define DEFAULT_PROP_VALIGNMENT GST_TEXT_OVERLAY_VALIGN_BASELINE
#define DEFAULT_PROP_HALIGNMENT GST_TEXT_OVERLAY_HALIGN_CENTER
#define DEFAULT_PROP_VALIGN "baseline"
#define DEFAULT_PROP_AUTO_ADJUST_SIZE TRUE
#define DEFAULT_PROP_VERTICAL_RENDER FALSE
#define DEFAULT_PROP_COLOR 0xffffffff
+#define DEFAULT_PROP_OUTLINE_COLOR 0xff000000
/* make a property of me */
#define DEFAULT_SHADING_VALUE -80
#define MINIMUM_OUTLINE_OFFSET 1.0
#define DEFAULT_SCALE_BASIS 640
-#define COMP_Y(ret, r, g, b) \
-{ \
- ret = (int) (((19595 * r) >> 16) + ((38470 * g) >> 16) + ((7471 * b) >> 16)); \
- ret = CLAMP (ret, 0, 255); \
-}
-
-#define COMP_U(ret, r, g, b) \
-{ \
- ret = (int) (-((11059 * r) >> 16) - ((21709 * g) >> 16) + ((32768 * b) >> 16) + 128); \
- ret = CLAMP (ret, 0, 255); \
-}
-
-#define COMP_V(ret, r, g, b) \
-{ \
- ret = (int) (((32768 * r) >> 16) - ((27439 * g) >> 16) - ((5329 * b) >> 16) + 128); \
- ret = CLAMP (ret, 0, 255); \
-}
-
-#define BLEND(ret, alpha, v0, v1) \
-{ \
- ret = (v0 * alpha + v1 * (255 - alpha)) / 255; \
-}
-
-#define OVER(ret, alphaA, Ca, alphaB, Cb, alphaNew) \
-{ \
- gint _tmp; \
- _tmp = (Ca * alphaA + Cb * alphaB * (255 - alphaA) / 255) / alphaNew; \
- ret = CLAMP (_tmp, 0, 255); \
-}
-
#if G_BYTE_ORDER == G_LITTLE_ENDIAN
# define CAIRO_ARGB_A 3
# define CAIRO_ARGB_R 2
PROP_AUTO_ADJUST_SIZE,
PROP_VERTICAL_RENDER,
PROP_COLOR,
+ PROP_SHADOW,
+ PROP_OUTLINE_COLOR,
PROP_LAST
};
+/* FIXME Use GST_VIDEO_CAPS_SURFACE when it lands in base */
static GstStaticPadTemplate src_template_factory =
GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
+ GST_VIDEO_CAPS_RGB ";"
+ GST_VIDEO_CAPS_BGR ";"
GST_VIDEO_CAPS_RGBx ";"
GST_VIDEO_CAPS_xRGB ";"
GST_VIDEO_CAPS_xBGR ";"
GST_VIDEO_CAPS_BGRA ";"
GST_VIDEO_CAPS_ARGB ";"
GST_VIDEO_CAPS_ABGR ";"
- GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
+ "video/x-surface;"
+ GST_VIDEO_CAPS_YUV ("{I420, YV12, AYUV, YUY2, UYVY, v308, v210,"
+ " v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420,"
+ " YUV9, IYU1}"))
);
static GstStaticPadTemplate video_sink_template_factory =
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (GST_VIDEO_CAPS_BGRx ";"
+ GST_VIDEO_CAPS_RGB ";"
+ GST_VIDEO_CAPS_BGR ";"
GST_VIDEO_CAPS_RGBx ";"
GST_VIDEO_CAPS_xRGB ";"
GST_VIDEO_CAPS_xBGR ";"
GST_VIDEO_CAPS_BGRA ";"
GST_VIDEO_CAPS_ARGB ";"
GST_VIDEO_CAPS_ABGR ";"
- GST_VIDEO_CAPS_YUV ("{AYUV, I420, UYVY, NV12, NV21}"))
+ "video/x-surface;"
+ GST_VIDEO_CAPS_YUV ("{I420, YV12, AYUV, YUY2, UYVY, v308, v210,"
+ " v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420,"
+ " YUV9, IYU1}"))
);
static GstStaticPadTemplate text_sink_template_factory =
GstTextOverlayClass *klass = GST_TEXT_OVERLAY_CLASS (g_class);
PangoFontMap *fontmap;
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&src_template_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&video_sink_template_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &src_template_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &video_sink_template_factory);
/* ugh */
if (!GST_IS_TIME_OVERLAY_CLASS (g_class) &&
!GST_IS_CLOCK_OVERLAY_CLASS (g_class)) {
- 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,
+ &text_sink_template_factory);
}
gst_element_class_set_details_simple (element_class, "Text overlay",
g_param_spec_boolean ("shaded-background", "shaded background",
"Whether to shade the background under the text area",
DEFAULT_PROP_SHADING, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstTextOverlay:shadow
+ *
+ * Whether to display a shadow of each letter under the text.
+ *
+ * Since: 0.10.36
+ **/
+ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_SHADOW,
+ g_param_spec_boolean ("shadow", "create shadow of text",
+ "Whether to create a shadow of the letters under the text",
+ DEFAULT_PROP_SHADOW, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VALIGNMENT,
g_param_spec_enum ("valignment", "vertical alignment",
"Vertical alignment of the text", GST_TYPE_TEXT_OVERLAY_VALIGN,
"Color to use for text (big-endian ARGB).", 0, G_MAXUINT32,
DEFAULT_PROP_COLOR,
G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstTextOverlay:outline-color
+ *
+ * Color of the outline of the rendered text.
+ *
+ * Since: 0.10.36
+ **/
+ g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_OUTLINE_COLOR,
+ g_param_spec_uint ("outline-color", "Text Outline Color",
+ "Color to use for outline the text (big-endian ARGB).", 0,
+ G_MAXUINT32, DEFAULT_PROP_OUTLINE_COLOR,
+ G_PARAM_READWRITE | GST_PARAM_CONTROLLABLE | G_PARAM_STATIC_STRINGS));
/**
* GstTextOverlay:line-alignment
g_free (overlay->default_text);
+ if (overlay->composition) {
+ gst_video_overlay_composition_unref (overlay->composition);
+ overlay->composition = NULL;
+ }
+
if (overlay->text_image) {
- g_free (overlay->text_image);
+ gst_buffer_unref (overlay->text_image);
overlay->text_image = NULL;
}
gst_text_overlay_adjust_values_with_fontdesc (overlay, desc);
overlay->color = DEFAULT_PROP_COLOR;
+ overlay->outline_color = DEFAULT_PROP_OUTLINE_COLOR;
overlay->halign = DEFAULT_PROP_HALIGNMENT;
overlay->valign = DEFAULT_PROP_VALIGNMENT;
overlay->xpad = DEFAULT_PROP_XPAD;
overlay->wrap_mode = DEFAULT_PROP_WRAP_MODE;
overlay->want_shading = DEFAULT_PROP_SHADING;
+ overlay->want_shadow = DEFAULT_PROP_SHADOW;
overlay->shading_value = DEFAULT_SHADING_VALUE;
overlay->silent = DEFAULT_PROP_SILENT;
overlay->wait_text = DEFAULT_PROP_WAIT_TEXT;
overlay->default_text = g_strdup (DEFAULT_PROP_TEXT);
overlay->need_render = TRUE;
- overlay->text_image = NULL;
+ overlay->composition = NULL;
overlay->use_vertical_render = DEFAULT_PROP_VERTICAL_RENDER;
gst_text_overlay_update_render_mode (overlay);
GstStructure *structure;
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay))
+ return FALSE;
structure = gst_caps_get_structure (caps, 0);
overlay->have_pango_markup =
g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay))
+ return FALSE;
overlay->width = 0;
overlay->height = 0;
overlay->fps_d = gst_value_get_fraction_denominator (fps);
if (ret) {
+ GstStructure *structure;
+
GST_OBJECT_LOCK (overlay);
g_mutex_lock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+
+ /* FIXME Use the query to the sink to do that when implemented */
+ /* Update wether to attach composition to buffer or do the composition
+ * ourselves */
+ structure = gst_caps_get_structure (caps, 0);
+ if (gst_structure_has_name (structure, "video/x-surface"))
+ overlay->attach_compo_to_buffer = TRUE;
+ else
+ overlay->attach_compo_to_buffer = FALSE;
+
gst_text_overlay_update_wrap_mode (overlay);
g_mutex_unlock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
GST_OBJECT_UNLOCK (overlay);
case PROP_SHADING:
overlay->want_shading = g_value_get_boolean (value);
break;
+ case PROP_SHADOW:
+ overlay->want_shadow = g_value_get_boolean (value);
+ break;
case PROP_XPAD:
overlay->xpad = g_value_get_int (value);
break;
case PROP_COLOR:
overlay->color = g_value_get_uint (value);
break;
+ case PROP_OUTLINE_COLOR:
+ overlay->outline_color = g_value_get_uint (value);
+ break;
case PROP_SILENT:
overlay->silent = g_value_get_boolean (value);
break;
case PROP_SHADING:
g_value_set_boolean (value, overlay->want_shading);
break;
+ case PROP_SHADOW:
+ g_value_set_boolean (value, overlay->want_shadow);
+ break;
case PROP_XPAD:
g_value_set_int (value, overlay->xpad);
break;
case PROP_COLOR:
g_value_set_uint (value, overlay->color);
break;
+ case PROP_OUTLINE_COLOR:
+ g_value_set_uint (value, overlay->outline_color);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
GstTextOverlay *overlay = NULL;
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay))
+ return FALSE;
ret = gst_pad_peer_query (overlay->video_sinkpad, query);
GstTextOverlay *overlay = NULL;
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay)) {
+ gst_event_unref (event);
+ return FALSE;
+ }
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK:{
GstCaps *caps;
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay))
+ return gst_caps_copy (gst_pad_get_pad_template_caps (pad));
if (pad == overlay->srcpad)
otherpad = overlay->video_sinkpad;
}
#define CAIRO_UNPREMULTIPLY(a,r,g,b) G_STMT_START { \
- b = (a > 0) ? MIN ((b * 255 + a / 2) / a, 255) : 0; \
- g = (a > 0) ? MIN ((g * 255 + a / 2) / a, 255) : 0; \
- r = (a > 0) ? MIN ((r * 255 + a / 2) / a, 255) : 0; \
+ *b = (a > 0) ? MIN ((*b * 255 + a / 2) / a, 255) : 0; \
+ *g = (a > 0) ? MIN ((*g * 255 + a / 2) / a, 255) : 0; \
+ *r = (a > 0) ? MIN ((*r * 255 + a / 2) / a, 255) : 0; \
} G_STMT_END
-static inline void
-gst_text_overlay_blit_1 (GstTextOverlay * overlay, guchar * dest, gint xpos,
- gint ypos, guchar * text_image, guint dest_stride)
+static void
+gst_text_overlay_get_pos (GstTextOverlay * overlay, gint * xpos, gint * ypos)
{
- gint i, j = 0;
- gint x, y;
- guchar r, g, b, a;
- guchar *pimage;
- guchar *py;
- gint width = overlay->image_width;
- gint height = overlay->image_height;
-
- if (xpos < 0) {
- xpos = 0;
- }
+ gint width, height;
+ GstTextOverlayVAlign valign;
+ GstTextOverlayHAlign halign;
+
+ width = overlay->image_width;
+ height = overlay->image_height;
+
+ if (overlay->use_vertical_render)
+ halign = GST_TEXT_OVERLAY_HALIGN_RIGHT;
+ else
+ halign = overlay->halign;
- if (xpos + width > overlay->width) {
- width = overlay->width - xpos;
+ switch (halign) {
+ case GST_TEXT_OVERLAY_HALIGN_LEFT:
+ *xpos = overlay->xpad;
+ break;
+ case GST_TEXT_OVERLAY_HALIGN_CENTER:
+ *xpos = (overlay->width - width) / 2;
+ break;
+ case GST_TEXT_OVERLAY_HALIGN_RIGHT:
+ *xpos = overlay->width - width - overlay->xpad;
+ break;
+ case GST_TEXT_OVERLAY_HALIGN_POS:
+ *xpos = (gint) (overlay->width * overlay->xpos) - width / 2;
+ *xpos = CLAMP (*xpos, 0, overlay->width - width);
+ if (*xpos < 0)
+ *xpos = 0;
+ break;
+ default:
+ *xpos = 0;
}
+ *xpos += overlay->deltax;
- if (ypos + height > overlay->height) {
- height = overlay->height - ypos;
+ if (overlay->use_vertical_render)
+ valign = GST_TEXT_OVERLAY_VALIGN_TOP;
+ else
+ valign = overlay->valign;
+
+ switch (valign) {
+ case GST_TEXT_OVERLAY_VALIGN_BOTTOM:
+ *ypos = overlay->height - height - overlay->ypad;
+ break;
+ case GST_TEXT_OVERLAY_VALIGN_BASELINE:
+ *ypos = overlay->height - (height + overlay->ypad);
+ break;
+ case GST_TEXT_OVERLAY_VALIGN_TOP:
+ *ypos = overlay->ypad;
+ break;
+ case GST_TEXT_OVERLAY_VALIGN_POS:
+ *ypos = (gint) (overlay->height * overlay->ypos) - height / 2;
+ *ypos = CLAMP (*ypos, 0, overlay->height - height);
+ break;
+ case GST_TEXT_OVERLAY_VALIGN_CENTER:
+ *ypos = (overlay->height - height) / 2;
+ break;
+ default:
+ *ypos = overlay->ypad;
+ break;
}
+ *ypos += overlay->deltay;
+}
- dest += (ypos / 1) * dest_stride;
+static inline void
+gst_text_overlay_unpremultiply (GstTextOverlay * overlay)
+{
+ guint i, j;
+ guint8 *pimage, *text_image = GST_BUFFER_DATA (overlay->text_image);
- for (i = 0; i < height; i++) {
+ for (i = 0; i < overlay->image_height; i++) {
pimage = text_image + 4 * (i * overlay->image_width);
- py = dest + i * dest_stride + xpos;
- for (j = 0; j < width; j++) {
- b = pimage[CAIRO_ARGB_B];
- g = pimage[CAIRO_ARGB_G];
- r = pimage[CAIRO_ARGB_R];
- a = pimage[CAIRO_ARGB_A];
- CAIRO_UNPREMULTIPLY (a, r, g, b);
+ for (j = 0; j < overlay->image_width; j++) {
+ CAIRO_UNPREMULTIPLY (pimage[CAIRO_ARGB_A], &pimage[CAIRO_ARGB_R],
+ &pimage[CAIRO_ARGB_G], &pimage[CAIRO_ARGB_B]);
pimage += 4;
- if (a == 0) {
- py++;
- continue;
- }
- COMP_Y (y, r, g, b);
- x = *py;
- BLEND (*py++, a, y, x);
}
}
}
static inline void
-gst_text_overlay_blit_sub2x2cbcr (GstTextOverlay * overlay,
- guchar * destcb, guchar * destcr, gint xpos, gint ypos, guchar * text_image,
- guint destcb_stride, guint destcr_stride, guint pix_stride)
+gst_text_overlay_set_composition (GstTextOverlay * overlay)
{
- gint i, j;
- gint x, cb, cr;
- gushort r, g, b, a;
- gushort r1, g1, b1, a1;
- guchar *pimage1, *pimage2;
- guchar *pcb, *pcr;
- gint width = overlay->image_width - 2;
- gint height = overlay->image_height - 2;
-
- xpos *= pix_stride;
-
- if (xpos < 0) {
- xpos = 0;
- }
-
- if (xpos + width > overlay->width) {
- width = overlay->width - xpos;
- }
+ gint xpos, ypos;
+ GstVideoOverlayRectangle *rectangle;
- if (ypos + height > overlay->height) {
- height = overlay->height - ypos;
- }
+ gst_text_overlay_get_pos (overlay, &xpos, &ypos);
- destcb += (ypos / 2) * destcb_stride;
- destcr += (ypos / 2) * destcr_stride;
-
- for (i = 0; i < height; i += 2) {
- pimage1 = text_image + 4 * (i * overlay->image_width);
- pimage2 = pimage1 + 4 * overlay->image_width;
- pcb = destcb + (i / 2) * destcb_stride + xpos / 2;
- pcr = destcr + (i / 2) * destcr_stride + xpos / 2;
- for (j = 0; j < width; j += 2) {
- b = pimage1[CAIRO_ARGB_B];
- g = pimage1[CAIRO_ARGB_G];
- r = pimage1[CAIRO_ARGB_R];
- a = pimage1[CAIRO_ARGB_A];
- CAIRO_UNPREMULTIPLY (a, r, g, b);
- pimage1 += 4;
-
- b1 = pimage1[CAIRO_ARGB_B];
- g1 = pimage1[CAIRO_ARGB_G];
- r1 = pimage1[CAIRO_ARGB_R];
- a1 = pimage1[CAIRO_ARGB_A];
- CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
- b += b1;
- g += g1;
- r += r1;
- a += a1;
- pimage1 += 4;
-
- b1 = pimage2[CAIRO_ARGB_B];
- g1 = pimage2[CAIRO_ARGB_G];
- r1 = pimage2[CAIRO_ARGB_R];
- a1 = pimage2[CAIRO_ARGB_A];
- CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
- b += b1;
- g += g1;
- r += r1;
- a += a1;
- pimage2 += 4;
-
- /* + 2 for rounding */
- b1 = pimage2[CAIRO_ARGB_B];
- g1 = pimage2[CAIRO_ARGB_G];
- r1 = pimage2[CAIRO_ARGB_R];
- a1 = pimage2[CAIRO_ARGB_A];
- CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
- b += b1 + 2;
- g += g1 + 2;
- r += r1 + 2;
- a += a1 + 2;
- pimage2 += 4;
-
- b /= 4;
- g /= 4;
- r /= 4;
- a /= 4;
-
- if (a == 0) {
- pcb += pix_stride;
- pcr += pix_stride;
- continue;
- }
- COMP_U (cb, r, g, b);
- COMP_V (cr, r, g, b);
+ if (overlay->text_image) {
+ rectangle = gst_video_overlay_rectangle_new_argb (overlay->text_image,
+ overlay->image_width, overlay->image_height, 4 * overlay->image_width,
+ xpos, ypos, overlay->image_width, overlay->image_height,
+ GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
- x = *pcb;
- BLEND (*pcb, a, cb, x);
- x = *pcr;
- BLEND (*pcr, a, cr, x);
+ if (overlay->composition)
+ gst_video_overlay_composition_unref (overlay->composition);
+ overlay->composition = gst_video_overlay_composition_new (rectangle);
+ gst_video_overlay_rectangle_unref (rectangle);
- pcb += pix_stride;
- pcr += pix_stride;
- }
+ } else if (overlay->composition) {
+ gst_video_overlay_composition_unref (overlay->composition);
+ overlay->composition = NULL;
}
}
int width, height;
double scalef = 1.0;
double a, r, g, b;
-
+ GstBuffer *buffer;
+ guint8 *text_image;
g_mutex_lock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
if (overlay->auto_adjust_size) {
cairo_matrix_init_scale (&cairo_matrix, scalef, scalef);
}
- /* reallocate surface */
- overlay->text_image = g_realloc (overlay->text_image, 4 * width * height);
+ /* reallocate overlay buffer */
+ buffer = gst_buffer_new_and_alloc (4 * width * height);
+ gst_buffer_replace (&overlay->text_image, buffer);
+ text_image = GST_BUFFER_DATA (buffer);
+ gst_buffer_unref (buffer);
- surface = cairo_image_surface_create_for_data (overlay->text_image,
+ surface = cairo_image_surface_create_for_data (text_image,
CAIRO_FORMAT_ARGB32, width, height, width * 4);
cr = cairo_create (surface);
*/
/* draw shadow text */
- cairo_save (cr);
- cairo_translate (cr, overlay->shadow_offset, overlay->shadow_offset);
- cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);
- pango_cairo_show_layout (cr, overlay->layout);
- cairo_restore (cr);
+ if (overlay->want_shadow) {
+ cairo_save (cr);
+ cairo_translate (cr, overlay->shadow_offset, overlay->shadow_offset);
+ cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 0.5);
+ pango_cairo_show_layout (cr, overlay->layout);
+ cairo_restore (cr);
+ }
+
+ a = (overlay->outline_color >> 24) & 0xff;
+ r = (overlay->outline_color >> 16) & 0xff;
+ g = (overlay->outline_color >> 8) & 0xff;
+ b = (overlay->outline_color >> 0) & 0xff;
/* draw outline text */
cairo_save (cr);
- cairo_set_source_rgb (cr, 0.0, 0.0, 0.0);
+ cairo_set_source_rgba (cr, r / 255.0, g / 255.0, b / 255.0, a / 255.0);
cairo_set_line_width (cr, overlay->outline_offset);
pango_cairo_layout_path (cr, overlay->layout);
cairo_stroke (cr);
overlay->baseline_y = ink_rect.y;
g_mutex_unlock (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
+
+ /* As the GstVideoOverlayComposition supports only unpremultiply ARGB,
+ * we need to unpermultiply it */
+ gst_text_overlay_unpremultiply (overlay);
+ gst_text_overlay_set_composition (overlay);
}
#define BOX_XPAD 6
ARGB_SHADE_FUNCTION (BGRA, 0);
-/* FIXME:
- * - use proper strides and offset for I420
- * - don't draw over the edge of the picture (try a longer
- * text with a huge font size)
- */
-
-static inline void
-gst_text_overlay_blit_NV12_NV21 (GstTextOverlay * overlay,
- guint8 * yuv_pixels, gint xpos, gint ypos)
-{
- int y_stride, uv_stride;
- int u_offset, v_offset;
- int h, w;
-
- /* because U/V is 2x2 subsampled, we need to round, either up or down,
- * to a boundary of integer number of U/V pixels:
- */
- xpos = GST_ROUND_UP_2 (xpos);
- ypos = GST_ROUND_UP_2 (ypos);
-
- w = overlay->width;
- h = overlay->height;
-
- y_stride = gst_video_format_get_row_stride (overlay->format, 0, w);
- uv_stride = gst_video_format_get_row_stride (overlay->format, 1, w);
- u_offset = gst_video_format_get_component_offset (overlay->format, 1, w, h);
- v_offset = gst_video_format_get_component_offset (overlay->format, 2, w, h);
-
- gst_text_overlay_blit_1 (overlay, yuv_pixels, xpos, ypos, overlay->text_image,
- y_stride);
- gst_text_overlay_blit_sub2x2cbcr (overlay, yuv_pixels + u_offset,
- yuv_pixels + v_offset, xpos, ypos, overlay->text_image, uv_stride,
- uv_stride, 2);
-}
-
-static inline void
-gst_text_overlay_blit_I420 (GstTextOverlay * overlay,
- guint8 * yuv_pixels, gint xpos, gint ypos)
-{
- int y_stride, u_stride, v_stride;
- int u_offset, v_offset;
- int h, w;
-
- /* because U/V is 2x2 subsampled, we need to round, either up or down,
- * to a boundary of integer number of U/V pixels:
- */
- xpos = GST_ROUND_UP_2 (xpos);
- ypos = GST_ROUND_UP_2 (ypos);
-
- w = overlay->width;
- h = overlay->height;
-
- y_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 0, w);
- u_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 1, w);
- v_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 2, w);
- u_offset =
- gst_video_format_get_component_offset (GST_VIDEO_FORMAT_I420, 1, w, h);
- v_offset =
- gst_video_format_get_component_offset (GST_VIDEO_FORMAT_I420, 2, w, h);
-
- gst_text_overlay_blit_1 (overlay, yuv_pixels, xpos, ypos, overlay->text_image,
- y_stride);
- gst_text_overlay_blit_sub2x2cbcr (overlay, yuv_pixels + u_offset,
- yuv_pixels + v_offset, xpos, ypos, overlay->text_image, u_stride,
- v_stride, 1);
-}
-
-static inline void
-gst_text_overlay_blit_UYVY (GstTextOverlay * overlay,
- guint8 * yuv_pixels, gint xpos, gint ypos)
-{
- int a0, r0, g0, b0;
- int a1, r1, g1, b1;
- int y0, y1, u, v;
- int i, j;
- int h, w;
- guchar *pimage, *dest;
-
- /* because U/V is 2x horizontally subsampled, we need to round to a
- * boundary of integer number of U/V pixels in x dimension:
- */
- xpos = GST_ROUND_UP_2 (xpos);
-
- w = overlay->image_width - 2;
- h = overlay->image_height - 2;
-
- if (xpos < 0) {
- xpos = 0;
- }
-
- if (xpos + w > overlay->width) {
- w = overlay->width - xpos;
- }
-
- if (ypos + h > overlay->height) {
- h = overlay->height - ypos;
- }
-
- for (i = 0; i < h; i++) {
- pimage = overlay->text_image + i * overlay->image_width * 4;
- dest = yuv_pixels + (i + ypos) * overlay->width * 2 + xpos * 2;
- for (j = 0; j < w; j += 2) {
- b0 = pimage[CAIRO_ARGB_B];
- g0 = pimage[CAIRO_ARGB_G];
- r0 = pimage[CAIRO_ARGB_R];
- a0 = pimage[CAIRO_ARGB_A];
- CAIRO_UNPREMULTIPLY (a0, r0, g0, b0);
- pimage += 4;
-
- b1 = pimage[CAIRO_ARGB_B];
- g1 = pimage[CAIRO_ARGB_G];
- r1 = pimage[CAIRO_ARGB_R];
- a1 = pimage[CAIRO_ARGB_A];
- CAIRO_UNPREMULTIPLY (a1, r1, g1, b1);
- pimage += 4;
-
- a0 += a1 + 2;
- a0 /= 2;
- if (a0 == 0) {
- dest += 4;
- continue;
- }
-
- COMP_Y (y0, r0, g0, b0);
- COMP_Y (y1, r1, g1, b1);
-
- b0 += b1 + 2;
- g0 += g1 + 2;
- r0 += r1 + 2;
-
- b0 /= 2;
- g0 /= 2;
- r0 /= 2;
-
- COMP_U (u, r0, g0, b0);
- COMP_V (v, r0, g0, b0);
-
- BLEND (*dest, a0, u, *dest);
- dest++;
- BLEND (*dest, a0, y0, *dest);
- dest++;
- BLEND (*dest, a0, v, *dest);
- dest++;
- BLEND (*dest, a0, y1, *dest);
- dest++;
- }
- }
-}
-
-static inline void
-gst_text_overlay_blit_AYUV (GstTextOverlay * overlay,
- guint8 * rgb_pixels, gint xpos, gint ypos)
-{
- int a, r, g, b, a1;
- int y, u, v;
- int i, j;
- int h, w;
- guchar *pimage, *dest;
-
- w = overlay->image_width;
- h = overlay->image_height;
-
- if (xpos < 0) {
- xpos = 0;
- }
-
- if (xpos + w > overlay->width) {
- w = overlay->width - xpos;
- }
-
- if (ypos + h > overlay->height) {
- h = overlay->height - ypos;
- }
-
- for (i = 0; i < h; i++) {
- pimage = overlay->text_image + i * overlay->image_width * 4;
- dest = rgb_pixels + (i + ypos) * 4 * overlay->width + xpos * 4;
- for (j = 0; j < w; j++) {
- a = pimage[CAIRO_ARGB_A];
- b = pimage[CAIRO_ARGB_B];
- g = pimage[CAIRO_ARGB_G];
- r = pimage[CAIRO_ARGB_R];
-
- CAIRO_UNPREMULTIPLY (a, r, g, b);
-
- // convert background to yuv
- COMP_Y (y, r, g, b);
- COMP_U (u, r, g, b);
- COMP_V (v, r, g, b);
-
- // preform text "OVER" background alpha compositing
- a1 = a + (dest[0] * (255 - a)) / 255 + 1; // add 1 to prevent divide by 0
- OVER (dest[1], a, y, dest[0], dest[1], a1);
- OVER (dest[2], a, u, dest[0], dest[2], a1);
- OVER (dest[3], a, v, dest[0], dest[3], a1);
- dest[0] = a1 - 1; // remove the temporary 1 we added
-
- pimage += 4;
- dest += 4;
- }
- }
-}
-
-#define xRGB_BLIT_FUNCTION(name, R, G, B) \
-static inline void \
-gst_text_overlay_blit_##name (GstTextOverlay * overlay, \
- guint8 * rgb_pixels, gint xpos, gint ypos) \
-{ \
- int a, r, g, b; \
- int i, j; \
- int h, w; \
- guchar *pimage, *dest; \
- \
- w = overlay->image_width; \
- h = overlay->image_height; \
- \
- if (xpos < 0) { \
- xpos = 0; \
- } \
- \
- if (xpos + w > overlay->width) { \
- w = overlay->width - xpos; \
- } \
- \
- if (ypos + h > overlay->height) { \
- h = overlay->height - ypos; \
- } \
- \
- for (i = 0; i < h; i++) { \
- pimage = overlay->text_image + i * overlay->image_width * 4; \
- dest = rgb_pixels + (i + ypos) * 4 * overlay->width + xpos * 4; \
- for (j = 0; j < w; j++) { \
- a = pimage[CAIRO_ARGB_A]; \
- b = pimage[CAIRO_ARGB_B]; \
- g = pimage[CAIRO_ARGB_G]; \
- r = pimage[CAIRO_ARGB_R]; \
- CAIRO_UNPREMULTIPLY (a, r, g, b); \
- b = (b*a + dest[B] * (255-a)) / 255; \
- g = (g*a + dest[G] * (255-a)) / 255; \
- r = (r*a + dest[R] * (255-a)) / 255; \
- \
- dest[B] = b; \
- dest[G] = g; \
- dest[R] = r; \
- pimage += 4; \
- dest += 4; \
- } \
- } \
-}
-xRGB_BLIT_FUNCTION (xRGB, 1, 2, 3);
-xRGB_BLIT_FUNCTION (BGRx, 2, 1, 0);
-xRGB_BLIT_FUNCTION (xBGR, 3, 2, 1);
-xRGB_BLIT_FUNCTION (RGBx, 0, 1, 2);
-
-#define ARGB_BLIT_FUNCTION(name, A, R, G, B) \
-static inline void \
-gst_text_overlay_blit_##name (GstTextOverlay * overlay, \
- guint8 * rgb_pixels, gint xpos, gint ypos) \
-{ \
- int a, r, g, b, a1; \
- int i, j; \
- int h, w; \
- guchar *pimage, *dest; \
- \
- w = overlay->image_width; \
- h = overlay->image_height; \
- \
- if (xpos < 0) { \
- xpos = 0; \
- } \
- \
- if (xpos + w > overlay->width) { \
- w = overlay->width - xpos; \
- } \
- \
- if (ypos + h > overlay->height) { \
- h = overlay->height - ypos; \
- } \
- \
- for (i = 0; i < h; i++) { \
- pimage = overlay->text_image + i * overlay->image_width * 4; \
- dest = rgb_pixels + (i + ypos) * 4 * overlay->width + xpos * 4; \
- for (j = 0; j < w; j++) { \
- a = pimage[CAIRO_ARGB_A]; \
- b = pimage[CAIRO_ARGB_B]; \
- g = pimage[CAIRO_ARGB_G]; \
- r = pimage[CAIRO_ARGB_R]; \
- CAIRO_UNPREMULTIPLY (a, r, g, b); \
- a1 = a + (dest[A] * (255 - a)) / 255 + 1; \
- OVER (dest[R], a, r, dest[0], dest[R], a1); \
- OVER (dest[G], a, g, dest[0], dest[G], a1); \
- OVER (dest[B], a, b, dest[0], dest[B], a1); \
- dest[A] = a1 - 1; \
- pimage += 4; \
- dest += 4; \
- } \
- } \
-}
-ARGB_BLIT_FUNCTION (RGBA, 3, 0, 1, 2);
-ARGB_BLIT_FUNCTION (BGRA, 3, 2, 1, 0);
-ARGB_BLIT_FUNCTION (ARGB, 0, 1, 2, 3);
-ARGB_BLIT_FUNCTION (ABGR, 0, 3, 2, 1);
-
static void
gst_text_overlay_render_text (GstTextOverlay * overlay,
const gchar * text, gint textlen)
gst_text_overlay_push_frame (GstTextOverlay * overlay, GstBuffer * video_frame)
{
gint xpos, ypos;
- gint width, height;
- GstTextOverlayVAlign valign;
- GstTextOverlayHAlign halign;
-
- width = overlay->image_width;
- height = overlay->image_height;
video_frame = gst_buffer_make_writable (video_frame);
- if (overlay->use_vertical_render)
- halign = GST_TEXT_OVERLAY_HALIGN_RIGHT;
- else
- halign = overlay->halign;
-
- switch (halign) {
- case GST_TEXT_OVERLAY_HALIGN_LEFT:
- xpos = overlay->xpad;
- break;
- case GST_TEXT_OVERLAY_HALIGN_CENTER:
- xpos = (overlay->width - width) / 2;
- break;
- case GST_TEXT_OVERLAY_HALIGN_RIGHT:
- xpos = overlay->width - width - overlay->xpad;
- break;
- case GST_TEXT_OVERLAY_HALIGN_POS:
- xpos = (gint) (overlay->width * overlay->xpos) - width / 2;
- xpos = CLAMP (xpos, 0, overlay->width - width);
- if (xpos < 0)
- xpos = 0;
- break;
- default:
- xpos = 0;
- }
- xpos += overlay->deltax;
-
- if (overlay->use_vertical_render)
- valign = GST_TEXT_OVERLAY_VALIGN_TOP;
- else
- valign = overlay->valign;
-
- switch (valign) {
- case GST_TEXT_OVERLAY_VALIGN_BOTTOM:
- ypos = overlay->height - height - overlay->ypad;
- break;
- case GST_TEXT_OVERLAY_VALIGN_BASELINE:
- ypos = overlay->height - (height + overlay->ypad);
- break;
- case GST_TEXT_OVERLAY_VALIGN_TOP:
- ypos = overlay->ypad;
- break;
- case GST_TEXT_OVERLAY_VALIGN_POS:
- ypos = (gint) (overlay->height * overlay->ypos) - height / 2;
- ypos = CLAMP (ypos, 0, overlay->height - height);
- break;
- case GST_TEXT_OVERLAY_VALIGN_CENTER:
- ypos = (overlay->height - height) / 2;
- break;
- default:
- ypos = overlay->ypad;
- break;
- }
- ypos += overlay->deltay;
-
+ gst_text_overlay_get_pos (overlay, &xpos, &ypos);
/* shaded background box */
if (overlay->want_shading) {
switch (overlay->format) {
case GST_VIDEO_FORMAT_I420:
+ case GST_VIDEO_FORMAT_YV12:
case GST_VIDEO_FORMAT_NV12:
case GST_VIDEO_FORMAT_NV21:
gst_text_overlay_shade_planar_Y (overlay,
}
}
- if (ypos < 0)
- ypos = 0;
-
- if (overlay->text_image) {
- switch (overlay->format) {
- case GST_VIDEO_FORMAT_I420:
- gst_text_overlay_blit_I420 (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_NV12:
- case GST_VIDEO_FORMAT_NV21:
- gst_text_overlay_blit_NV12_NV21 (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_UYVY:
- gst_text_overlay_blit_UYVY (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_AYUV:
- gst_text_overlay_blit_AYUV (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_BGRx:
- gst_text_overlay_blit_BGRx (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_xRGB:
- gst_text_overlay_blit_xRGB (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_RGBx:
- gst_text_overlay_blit_RGBx (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_xBGR:
- gst_text_overlay_blit_xBGR (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_ARGB:
- gst_text_overlay_blit_ARGB (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_ABGR:
- gst_text_overlay_blit_ABGR (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_RGBA:
- gst_text_overlay_blit_RGBA (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- case GST_VIDEO_FORMAT_BGRA:
- gst_text_overlay_blit_BGRA (overlay,
- GST_BUFFER_DATA (video_frame), xpos, ypos);
- break;
- default:
- g_assert_not_reached ();
+ if (overlay->composition) {
+ if (overlay->attach_compo_to_buffer) {
+ GST_DEBUG_OBJECT (overlay, "Attaching text to the buffer");
+ gst_video_buffer_set_overlay_composition (video_frame,
+ overlay->composition);
+ } else {
+ gst_video_overlay_composition_blend (overlay->composition, video_frame);
}
}
+
return gst_pad_push (overlay->srcpad, video_frame);
}
GstTextOverlay *overlay;
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay))
+ return GST_PAD_LINK_REFUSED;
GST_DEBUG_OBJECT (overlay, "Text pad linked");
GstTextOverlay *overlay = NULL;
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay)) {
+ gst_event_unref (event);
+ return FALSE;
+ }
GST_LOG_OBJECT (pad, "received event %s", GST_EVENT_TYPE_NAME (event));
GstTextOverlay *overlay = NULL;
overlay = GST_TEXT_OVERLAY (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (!overlay)) {
+ gst_event_unref (event);
+ return FALSE;
+ }
GST_DEBUG_OBJECT (pad, "received event %s", GST_EVENT_TYPE_NAME (event));
GstFlowReturn ret = GST_FLOW_WRONG_STATE;
GstPad *allocpad;
+ if (G_UNLIKELY (!overlay))
+ return GST_FLOW_WRONG_STATE;
+
GST_OBJECT_LOCK (overlay);
allocpad = overlay->srcpad ? gst_object_ref (overlay->srcpad) : NULL;
GST_OBJECT_UNLOCK (overlay);
else if (GST_BUFFER_DURATION_IS_VALID (buffer))
GST_BUFFER_DURATION (buffer) = clip_stop - clip_start;
- /* Wait for the previous buffer to go away */
- while (overlay->text_buffer != NULL) {
- GST_DEBUG ("Pad %s:%s has a buffer queued, waiting",
- GST_DEBUG_PAD_NAME (pad));
- GST_TEXT_OVERLAY_WAIT (overlay);
- GST_DEBUG ("Pad %s:%s resuming", GST_DEBUG_PAD_NAME (pad));
- if (overlay->text_flushing) {
- GST_OBJECT_UNLOCK (overlay);
- ret = GST_FLOW_WRONG_STATE;
- goto beach;
+ if (overlay->text_buffer
+ && (!GST_BUFFER_TIMESTAMP_IS_VALID (overlay->text_buffer)
+ || !GST_BUFFER_DURATION_IS_VALID (overlay->text_buffer))) {
+ gst_text_overlay_pop_text (overlay);
+ } else {
+ /* Wait for the previous buffer to go away */
+ while (overlay->text_buffer != NULL) {
+ GST_DEBUG ("Pad %s:%s has a buffer queued, waiting",
+ GST_DEBUG_PAD_NAME (pad));
+ GST_TEXT_OVERLAY_WAIT (overlay);
+ GST_DEBUG ("Pad %s:%s resuming", GST_DEBUG_PAD_NAME (pad));
+ if (overlay->text_flushing) {
+ GST_OBJECT_UNLOCK (overlay);
+ ret = GST_FLOW_WRONG_STATE;
+ goto beach;
+ }
}
}
gst_segment_set_last_stop (&overlay->text_segment, GST_FORMAT_TIME,
clip_start);
- overlay->text_buffer = buffer;
+ overlay->text_buffer = gst_buffer_ref (buffer);
/* That's a new text buffer we need to render */
overlay->need_render = TRUE;
beach:
+ gst_buffer_unref (buffer);
return ret;
}
if (overlay->video_eos)
goto have_eos;
- if (overlay->silent) {
+ if (overlay->silent && !overlay->text_linked) {
GST_OBJECT_UNLOCK (overlay);
ret = gst_pad_push (overlay->srcpad, buffer);
!GST_BUFFER_DURATION_IS_VALID (overlay->text_buffer)) {
GST_WARNING_OBJECT (overlay,
"Got text buffer with invalid timestamp or duration");
- pop_text = TRUE;
valid_text_time = FALSE;
} else {
text_start = GST_BUFFER_TIMESTAMP (overlay->text_buffer);
GST_OBJECT_UNLOCK (overlay);
/* Push the video frame */
ret = gst_pad_push (overlay->srcpad, buffer);
+ } else if (overlay->silent) {
+ GST_LOG_OBJECT (overlay, "silent enabled, pushing video buf");
+ GST_OBJECT_UNLOCK (overlay);
+ /* Push the video frame */
+ ret = gst_pad_push (overlay->srcpad, buffer);
} else {
gchar *in_text;
gsize in_size;
#include <gst/gst.h>
#include <gst/video/video.h>
+#include <gst/video/video-overlay-composition.h>
#include <gst/controller/gstcontroller.h>
#include <pango/pangocairo.h>
* Opaque textoverlay object structure
*/
struct _GstTextOverlay {
- GstElement element;
-
- GstPad *video_sinkpad;
- GstPad *text_sinkpad;
- GstPad *srcpad;
-
- GstSegment segment;
- GstSegment text_segment;
- GstBuffer *text_buffer;
- gboolean text_linked;
- gboolean video_flushing;
- gboolean video_eos;
- gboolean text_flushing;
- gboolean text_eos;
-
- GCond *cond; /* to signal removal of a queued text
+ GstElement element;
+
+ GstPad *video_sinkpad;
+ GstPad *text_sinkpad;
+ GstPad *srcpad;
+
+ GstSegment segment;
+ GstSegment text_segment;
+ GstBuffer *text_buffer;
+ gboolean text_linked;
+ gboolean video_flushing;
+ gboolean video_eos;
+ gboolean text_flushing;
+ gboolean text_eos;
+
+ GCond *cond; /* to signal removal of a queued text
* buffer, arrival of a text buffer,
* a text segment update, or a change
* in status (e.g. shutdown, flushing) */
- gint width;
- gint height;
- gint fps_n;
- gint fps_d;
- GstVideoFormat format;
-
- GstTextOverlayVAlign valign;
- GstTextOverlayHAlign halign;
- GstTextOverlayWrapMode wrap_mode;
- GstTextOverlayLineAlign line_align;
-
- gint xpad;
- gint ypad;
- gint deltax;
- gint deltay;
- gdouble xpos;
- gdouble ypos;
- gchar *default_text;
- gboolean want_shading;
- gboolean silent;
- gboolean wait_text;
- guint color;
-
- PangoLayout *layout;
- gdouble shadow_offset;
- gdouble outline_offset;
- guchar *text_image;
- gint image_width;
- gint image_height;
- gint baseline_y;
-
- gboolean auto_adjust_size;
- gboolean need_render;
-
- gint shading_value; /* for timeoverlay subclass */
-
- gboolean have_pango_markup;
- gboolean use_vertical_render;
+ gint width;
+ gint height;
+ gint fps_n;
+ gint fps_d;
+ GstVideoFormat format;
+
+ GstTextOverlayVAlign valign;
+ GstTextOverlayHAlign halign;
+ GstTextOverlayWrapMode wrap_mode;
+ GstTextOverlayLineAlign line_align;
+
+ gint xpad;
+ gint ypad;
+ gint deltax;
+ gint deltay;
+ gdouble xpos;
+ gdouble ypos;
+ gchar *default_text;
+ gboolean want_shading;
+ gboolean silent;
+ gboolean wait_text;
+ guint color, outline_color;
+
+ PangoLayout *layout;
+ gdouble shadow_offset;
+ gboolean want_shadow;
+ gdouble outline_offset;
+ GstBuffer *text_image;
+ gint image_width;
+ gint image_height;
+ gint baseline_y;
+
+ gboolean auto_adjust_size;
+ gboolean need_render;
+
+ gint shading_value; /* for timeoverlay subclass */
+
+ gboolean have_pango_markup;
+ gboolean use_vertical_render;
+
+ gboolean attach_compo_to_buffer;
+
+ GstVideoOverlayComposition *composition;
};
struct _GstTextOverlayClass {
#define DEFAULT_PROP_LINE_ALIGNMENT GST_TEXT_RENDER_LINE_ALIGN_CENTER
#define DEFAULT_PROP_XPAD 25
#define DEFAULT_PROP_YPAD 25
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
-#define DEFAULT_PROP_RENDER_WIDTH 800
-#define DEFAULT_PROP_RENDER_HEIGHT 480
-#define DEFAULT_PROP_RENDER_SILENT FALSE
-#else
+
#define DEFAULT_RENDER_WIDTH 720
#define DEFAULT_RENDER_HEIGHT 576
-#endif
enum
{
PROP_LINE_ALIGNMENT,
PROP_XPAD,
PROP_YPAD,
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- PROP_RENDER_WIDTH,
- PROP_RENDER_HEIGHT,
- PROP_RENDER_SILENT,
-#endif
PROP_FONT_DESC
};
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&src_template_factory));
- 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,
+ &src_template_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &sink_template_factory);
gst_element_class_set_details_simple (element_class, "Text renderer",
"Filter/Editor/Video",
g_param_spec_int ("ypad", "vertical padding",
"Vertical padding when using top/bottom alignment", 0, G_MAXINT,
DEFAULT_PROP_YPAD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_RENDER_WIDTH,
- g_param_spec_int ("width", "render width",
- "Width of rendered video size", 0, G_MAXINT,
- DEFAULT_PROP_RENDER_WIDTH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_RENDER_HEIGHT,
- g_param_spec_int ("height", "render height",
- "Height of rendered video size", 0, G_MAXINT,
- DEFAULT_PROP_RENDER_HEIGHT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_RENDER_SILENT,
- g_param_spec_boolean ("silent", "render silent",
- "Whether to render the text string",
- DEFAULT_PROP_RENDER_SILENT, G_PARAM_READWRITE));
-#endif
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_LINE_ALIGNMENT,
g_param_spec_enum ("line-alignment", "line alignment",
"Alignment of text lines relative to each other.",
GstStructure *s = gst_caps_get_structure (caps, 0);
GST_DEBUG ("Fixating caps %" GST_PTR_FORMAT, caps);
- gst_structure_fixate_field_nearest_int (s, "width", render->image_width);
- gst_structure_fixate_field_nearest_int (s, "height", render->image_height);
+ gst_structure_fixate_field_nearest_int (s, "width", MAX (render->image_width,
+ DEFAULT_RENDER_WIDTH));
+ gst_structure_fixate_field_nearest_int (s, "height",
+ MAX (render->image_height + render->ypad, DEFAULT_RENDER_HEIGHT));
GST_DEBUG ("Fixated to %" GST_PTR_FORMAT, caps);
gst_object_unref (render);
width = render->image_width;
height = render->image_height;
- bitp = render->text_image;
- for (y = 0; y < height; y++) {
+ for (y = 0; y < height && ypos + y < render->height; y++) {
int n;
p = pixbuf + (ypos + y) * stride + xpos * 4;
- for (n = 0; n < width; n++) {
+ bitp = render->text_image + y * width * 4;
+ for (n = 0; n < width && n < render->width; n++) {
b = bitp[CAIRO_ARGB_B];
g = bitp[CAIRO_ARGB_G];
r = bitp[CAIRO_ARGB_R];
width = render->image_width;
height = render->image_height;
- bitp = render->text_image;
- for (i = 0; i < height; i++) {
+ for (i = 0; i < height && ypos + i < render->height; i++) {
p = pixbuf + (ypos + i) * stride + xpos * 4;
- for (j = 0; j < width; j++) {
+ bitp = render->text_image + i * width * 4;
+ for (j = 0; j < width && j < render->width; j++) {
p[0] = bitp[CAIRO_ARGB_A];
p[1] = bitp[CAIRO_ARGB_R];
p[2] = bitp[CAIRO_ARGB_G];
GstTextRender *render;
GstFlowReturn ret;
GstBuffer *outbuf;
- GstCaps *caps = NULL;
+ GstCaps *caps = NULL, *padcaps, *peercaps;
guint8 *data = GST_BUFFER_DATA (inbuf);
guint size = GST_BUFFER_SIZE (inbuf);
gint n;
}
/* render text */
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- if (!render->silent) {
- GST_DEBUG ("rendering '%*s'", size, data);
- pango_layout_set_markup (render->layout, (gchar *) data, size);
- gst_text_render_render_pangocairo (render);
- } else {
- GST_DEBUG ("silent mode is on, not rendering '%*s'", size, data);
- }
-#else
GST_DEBUG ("rendering '%*s'", size, data);
pango_layout_set_markup (render->layout, (gchar *) data, size);
gst_text_render_render_pangocairo (render);
-#endif
gst_text_render_check_argb (render);
- if (!render->use_ARGB) {
- caps =
- gst_video_format_new_caps (GST_VIDEO_FORMAT_AYUV, render->width,
- render->height, 1, 1, 1, 1);
- } else {
- caps =
- gst_video_format_new_caps (GST_VIDEO_FORMAT_ARGB, render->width,
- render->height, 1, 1, 1, 1);
+ peercaps = gst_pad_peer_get_caps (render->srcpad);
+ padcaps = gst_pad_get_caps (render->srcpad);
+ caps = gst_caps_intersect (padcaps, peercaps);
+ gst_caps_unref (padcaps);
+ gst_caps_unref (peercaps);
+
+ if (!caps || gst_caps_is_empty (caps)) {
+ GST_ELEMENT_ERROR (render, CORE, NEGOTIATION, (NULL), (NULL));
+ ret = GST_FLOW_ERROR;
+ goto done;
}
+ gst_caps_truncate (caps);
+ gst_pad_fixate_caps (render->srcpad, caps);
+
if (!gst_pad_set_caps (render->srcpad, caps)) {
- gst_caps_unref (caps);
GST_ELEMENT_ERROR (render, CORE, NEGOTIATION, (NULL), (NULL));
ret = GST_FLOW_ERROR;
goto done;
}
}
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- if (render->silent) {
- ret = gst_pad_push (render->srcpad, outbuf);
- goto done;
- }
-#endif
-
switch (render->halign) {
case GST_TEXT_RENDER_HALIGN_LEFT:
xpos = render->xpad;
render->xpad = DEFAULT_PROP_XPAD;
render->ypad = DEFAULT_PROP_YPAD;
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- render->width = DEFAULT_PROP_RENDER_WIDTH;
- render->height = DEFAULT_PROP_RENDER_HEIGHT;
- render->silent = DEFAULT_PROP_RENDER_SILENT;
-#else
render->width = DEFAULT_RENDER_WIDTH;
render->height = DEFAULT_RENDER_HEIGHT;
-#endif
render->use_ARGB = FALSE;
}
case PROP_YPAD:
render->ypad = g_value_get_int (value);
break;
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- case PROP_RENDER_WIDTH:
- render->width = g_value_get_int (value);
- break;
- case PROP_RENDER_HEIGHT:
- render->height = g_value_get_int (value);
- break;
- case PROP_RENDER_SILENT:
- render->silent = g_value_get_boolean (value);
- break;
-#endif
case PROP_FONT_DESC:
{
PangoFontDescription *desc;
case PROP_YPAD:
g_value_set_int (value, render->ypad);
break;
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- case PROP_RENDER_WIDTH:
- g_value_set_int (value, render->width);
- break;
- case PROP_RENDER_HEIGHT:
- g_value_set_int (value, render->height);
- break;
- case PROP_RENDER_SILENT:
- g_value_set_boolean (value, render->silent);
- break;
-#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
gint xpad;
gint ypad;
-
-#ifdef GST_EXT_TEXTRENDER_ENHANCEMENT
- gboolean silent;
-#endif
-
};
struct _GstTextRenderClass {
#include <gst/video/video.h>
-#include <gsttimeoverlay.h>
+#include "gsttimeoverlay.h"
GST_BOILERPLATE (GstTimeOverlay, gst_time_overlay, GstTextOverlay,
GST_TYPE_TEXT_OVERLAY);
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgsttheora_la-gsttheoradec.lo \
libgsttheora_la-gsttheoraparse.lo
libgsttheora_la_OBJECTS = $(am_libgsttheora_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
libgsttheora_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgsttheora_la_SOURCES)
DIST_SOURCES = $(libgsttheora_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgsttheora.la: $(libgsttheora_la_OBJECTS) $(libgsttheora_la_DEPENDENCIES)
+libgsttheora.la: $(libgsttheora_la_OBJECTS) $(libgsttheora_la_DEPENDENCIES) $(EXTRA_libgsttheora_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgsttheora_la_LINK) -rpath $(plugindir) $(libgsttheora_la_OBJECTS) $(libgsttheora_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgsttheora_la-gsttheora.lo: gsttheora.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheora.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheora.Tpo -c -o libgsttheora_la-gsttheora.lo `test -f 'gsttheora.c' || echo '$(srcdir)/'`gsttheora.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheora.Tpo $(DEPDIR)/libgsttheora_la-gsttheora.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttheora.c' object='libgsttheora_la-gsttheora.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttheora.c' object='libgsttheora_la-gsttheora.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheora.lo `test -f 'gsttheora.c' || echo '$(srcdir)/'`gsttheora.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheora.lo `test -f 'gsttheora.c' || echo '$(srcdir)/'`gsttheora.c
libgsttheora_la-gsttheoraenc.lo: gsttheoraenc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheoraenc.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheoraenc.Tpo -c -o libgsttheora_la-gsttheoraenc.lo `test -f 'gsttheoraenc.c' || echo '$(srcdir)/'`gsttheoraenc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheoraenc.Tpo $(DEPDIR)/libgsttheora_la-gsttheoraenc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttheoraenc.c' object='libgsttheora_la-gsttheoraenc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttheoraenc.c' object='libgsttheora_la-gsttheoraenc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraenc.lo `test -f 'gsttheoraenc.c' || echo '$(srcdir)/'`gsttheoraenc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraenc.lo `test -f 'gsttheoraenc.c' || echo '$(srcdir)/'`gsttheoraenc.c
libgsttheora_la-gsttheoradec.lo: gsttheoradec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheoradec.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheoradec.Tpo -c -o libgsttheora_la-gsttheoradec.lo `test -f 'gsttheoradec.c' || echo '$(srcdir)/'`gsttheoradec.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheoradec.Tpo $(DEPDIR)/libgsttheora_la-gsttheoradec.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttheoradec.c' object='libgsttheora_la-gsttheoradec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttheoradec.c' object='libgsttheora_la-gsttheoradec.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoradec.lo `test -f 'gsttheoradec.c' || echo '$(srcdir)/'`gsttheoradec.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoradec.lo `test -f 'gsttheoradec.c' || echo '$(srcdir)/'`gsttheoradec.c
libgsttheora_la-gsttheoraparse.lo: gsttheoraparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -MT libgsttheora_la-gsttheoraparse.lo -MD -MP -MF $(DEPDIR)/libgsttheora_la-gsttheoraparse.Tpo -c -o libgsttheora_la-gsttheoraparse.lo `test -f 'gsttheoraparse.c' || echo '$(srcdir)/'`gsttheoraparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttheora_la-gsttheoraparse.Tpo $(DEPDIR)/libgsttheora_la-gsttheoraparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttheoraparse.c' object='libgsttheora_la-gsttheoraparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttheoraparse.c' object='libgsttheora_la-gsttheoraparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraparse.lo `test -f 'gsttheoraparse.c' || echo '$(srcdir)/'`gsttheoraparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttheora_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttheora_la_CFLAGS) $(CFLAGS) -c -o libgsttheora_la-gsttheoraparse.lo `test -f 'gsttheoraparse.c' || echo '$(srcdir)/'`gsttheoraparse.c
mostlyclean-libtool:
-rm -f *.lo
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:
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&theora_dec_src_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&theora_dec_sink_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &theora_dec_src_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &theora_dec_sink_factory);
gst_element_class_set_details_simple (element_class,
"Theora video decoder", "Codec/Decoder/Video",
"decode raw theora streams to raw YUV video",
while (dec->queued) {
GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data);
- /* iterate ouput queue an push downstream */
+ /* iterate output queue an push downstream */
res = gst_pad_push (dec->srcpad, buf);
dec->queued = g_list_delete_link (dec->queued, dec->queued);
/* if we copied a keyframe, flush and decode the decode queue */
data = GST_BUFFER_DATA (gbuf);
- if ((data[0] & 0x40) == 0) {
+ if (data && (data[0] & 0x40) == 0) {
GST_DEBUG_OBJECT (dec, "copied keyframe");
res = theora_dec_flush_decode (dec);
}
gint offset_x, offset_y;
gint output_bpp;
- /* telemetry debuging options */
+ /* telemetry debugging options */
gint telemetry_mv;
gint telemetry_mbmode;
gint telemetry_qi;
GST_STATIC_CAPS ("video/x-theora")
);
+static GstCaps *theora_enc_src_caps;
+
static void
_do_init (GType object_type)
{
static gboolean theora_enc_write_multipass_cache (GstTheoraEnc * enc,
gboolean begin, gboolean eos);
+static char *theora_enc_get_supported_formats (void);
+
static void
gst_theora_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 (&theora_enc_src_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&theora_enc_sink_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &theora_enc_src_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &theora_enc_sink_factory);
gst_element_class_set_details_simple (element_class,
"Theora video encoder", "Codec/Encoder/Video",
"encode raw YUV video to a theora stream",
{
GObjectClass *gobject_class = (GObjectClass *) klass;
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+ char *caps_string;
/* query runtime encoder properties */
th_enc_ctx *th_ctx;
th_ctx = dummy_encode_ctx ();
if (th_ctx) {
- if (!check_speed_level (th_ctx, &default_speed_level, &max_speed_level))
+ if (check_speed_level (th_ctx, &default_speed_level, &max_speed_level))
GST_WARNING
("Failed to determine settings for the speed-level property.");
th_encode_free (th_ctx);
THEORA_DEF_VP3_COMPATIBLE,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_DROP_FRAMES,
- g_param_spec_boolean ("drop-frames", "VP3 Compatible",
+ g_param_spec_boolean ("drop-frames", "Drop Frames",
"Allow or disallow frame dropping",
THEORA_DEF_DROP_FRAMES,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_CAP_OVERFLOW,
- g_param_spec_boolean ("cap-overflow", "VP3 Compatible",
+ g_param_spec_boolean ("cap-overflow", "Cap Overflow",
"Enable capping of bit reservoir overflows",
THEORA_DEF_CAP_OVERFLOW,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_CAP_UNDERFLOW,
- g_param_spec_boolean ("cap-underflow", "VP3 Compatible",
+ g_param_spec_boolean ("cap-underflow", "Cap Underflow",
"Enable capping of bit reservoir underflows",
THEORA_DEF_CAP_UNDERFLOW,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
THEORA_DEF_MULTIPASS_MODE,
(GParamFlags) G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ caps_string = g_strdup_printf ("video/x-raw-yuv, "
+ "format = (fourcc) { %s }, "
+ "framerate = (fraction) [1/MAX, MAX], "
+ "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
+ theora_enc_get_supported_formats ());
+ theora_enc_src_caps = gst_caps_from_string (caps_string);
+ g_free (caps_string);
+
gstelement_class->change_state = theora_enc_change_state;
}
enc->srcpad =
gst_pad_new_from_static_template (&theora_enc_src_factory, "src");
gst_pad_set_event_function (enc->srcpad, theora_enc_src_event);
+ gst_pad_use_fixed_caps (enc->srcpad);
gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad);
gst_segment_init (&enc->segment, GST_FORMAT_UNDEFINED);
GST_OBJECT_LOCK (enc);
enc->info.target_bitrate = enc->video_bitrate;
- enc->info.quality = enc->video_quality;
+ if (enc->quality_changed) {
+ enc->info.quality = enc->video_quality;
+ } else {
+ if (enc->video_bitrate == 0) {
+ enc->info.quality = enc->video_quality;
+ }
+ }
enc->bitrate_changed = FALSE;
enc->quality_changed = FALSE;
GST_OBJECT_UNLOCK (enc);
{
th_enc_ctx *encoder;
th_info info;
- struct
+ static const struct
{
th_pixel_fmt pixelformat;
- const char *fourcc;
+ const char fourcc[5];
} formats[] = {
{
TH_PF_420, "I420"}, {
static GstCaps *
theora_enc_sink_getcaps (GstPad * pad)
{
+ GstTheoraEnc *encoder;
+ GstPad *peer;
GstCaps *caps;
- char *supported_formats, *caps_string;
- supported_formats = theora_enc_get_supported_formats ();
- if (!supported_formats) {
- GST_WARNING ("no supported formats found. Encoder disabled?");
+ /* If we already have caps return them */
+ if (GST_PAD_CAPS (pad))
+ return gst_caps_ref (GST_PAD_CAPS (pad));
+
+ encoder = GST_THEORA_ENC (gst_pad_get_parent (pad));
+ if (!encoder)
return gst_caps_new_empty ();
+
+ peer = gst_pad_get_peer (encoder->srcpad);
+ if (peer) {
+ const GstCaps *templ_caps;
+ GstCaps *peer_caps, *tmp_caps;
+ GstStructure *s;
+ guint i, n;
+
+ peer_caps = gst_pad_get_caps (peer);
+
+ /* Translate peercaps to YUV */
+ 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, "video/x-raw-yuv");
+ gst_structure_remove_field (s, "streamheader");
+ }
+
+ templ_caps = gst_pad_get_pad_template_caps (pad);
+
+ tmp_caps = gst_caps_intersect (peer_caps, templ_caps);
+ caps = gst_caps_intersect (tmp_caps, theora_enc_src_caps);
+ gst_caps_unref (tmp_caps);
+ gst_caps_unref (peer_caps);
+ gst_object_unref (peer);
+ peer = NULL;
+ } else {
+ caps = gst_caps_ref (theora_enc_src_caps);
}
- caps_string = g_strdup_printf ("video/x-raw-yuv, "
- "format = (fourcc) { %s }, "
- "framerate = (fraction) [1/MAX, MAX], "
- "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]",
- supported_formats);
- caps = gst_caps_from_string (caps_string);
- g_free (caps_string);
- g_free (supported_formats);
- GST_DEBUG ("Supported caps: %" GST_PTR_FORMAT, caps);
+ gst_object_unref (encoder);
return caps;
}
enc->info.fps_denominator = enc->fps_d = fps_d;
if (par) {
enc->info.aspect_numerator = gst_value_get_fraction_numerator (par);
+ enc->par_n = gst_value_get_fraction_numerator (par);
enc->info.aspect_denominator = gst_value_get_fraction_denominator (par);
+ enc->par_d = gst_value_get_fraction_denominator (par);
} else {
/* setting them to 0 indicates that the decoder can chose a good aspect
* ratio, defaulting to 1/1 */
enc->info.aspect_numerator = 0;
+ enc->par_n = 1;
enc->info.aspect_denominator = 0;
+ enc->par_d = 1;
}
enc->info.colorspace = TH_CS_UNSPECIFIED;
enc->next_discont = FALSE;
}
- /* the second most significant bit of the first data byte is cleared
- * for keyframes */
- if (packet->bytes > 0 && (packet->packet[0] & 0x40) == 0) {
+ /* th_packet_iskeyframe returns positive for keyframes */
+ if (th_packet_iskeyframe (packet) > 0) {
GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
} else {
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
{
GstBuffer *cache_buf;
const guint8 *cache_data;
- gsize bytes_read = 0, bytes_consumed = 0;
+ gsize bytes_read = 0;
+ gint bytes_consumed = 0;
GIOStatus stat = G_IO_STATUS_NORMAL;
gboolean done = FALSE;
}
- if (stat == G_IO_STATUS_ERROR || bytes_read < 0 || bytes_written < 0) {
+ if (stat == G_IO_STATUS_ERROR || bytes_read < 0) {
if (begin) {
if (eos)
GST_ELEMENT_WARNING (enc, RESOURCE, WRITE, (NULL),
}
static GstFlowReturn
+theora_enc_encode_and_push (GstTheoraEnc * enc, ogg_packet op,
+ GstClockTime timestamp, GstClockTime running_time,
+ GstClockTime duration, GstBuffer * buffer)
+{
+ GstFlowReturn ret;
+ th_ycbcr_buffer ycbcr;
+ gint res;
+
+ theora_enc_init_buffer (ycbcr, &enc->info, GST_BUFFER_DATA (buffer));
+
+ if (theora_enc_is_discontinuous (enc, running_time, duration)) {
+ theora_enc_reset (enc);
+ enc->granulepos_offset =
+ gst_util_uint64_scale (running_time, enc->fps_n,
+ GST_SECOND * enc->fps_d);
+ enc->timestamp_offset = running_time;
+ enc->next_ts = 0;
+ enc->next_discont = TRUE;
+ }
+
+ if (enc->multipass_cache_fd
+ && enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS) {
+ if (!theora_enc_read_multipass_cache (enc)) {
+ ret = GST_FLOW_ERROR;
+ goto multipass_read_failed;
+ }
+ }
+
+ res = th_encode_ycbcr_in (enc->encoder, ycbcr);
+ /* none of the failure cases can happen here */
+ g_assert (res == 0);
+
+ if (enc->multipass_cache_fd
+ && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS) {
+ if (!theora_enc_write_multipass_cache (enc, FALSE, FALSE)) {
+ ret = GST_FLOW_ERROR;
+ goto multipass_write_failed;
+ }
+ }
+
+ ret = GST_FLOW_OK;
+ while (th_encode_packetout (enc->encoder, 0, &op)) {
+ GstClockTime next_time;
+
+ next_time = th_granule_time (enc->encoder, op.granulepos) * GST_SECOND;
+
+ ret =
+ theora_push_packet (enc, &op, timestamp, enc->next_ts,
+ next_time - enc->next_ts);
+
+ enc->next_ts = next_time;
+ if (ret != GST_FLOW_OK)
+ goto data_push;
+ }
+ gst_buffer_unref (buffer);
+
+ return ret;
+
+ /* ERRORS */
+multipass_read_failed:
+ {
+ gst_buffer_unref (buffer);
+ return ret;
+ }
+multipass_write_failed:
+ {
+ gst_buffer_unref (buffer);
+ return ret;
+ }
+data_push:
+ {
+ gst_buffer_unref (buffer);
+ return ret;
+ }
+}
+
+static GstFlowReturn
theora_enc_chain (GstPad * pad, GstBuffer * buffer)
{
GstTheoraEnc *enc;
enc = GST_THEORA_ENC (GST_PAD_PARENT (pad));
/* we keep track of two timelines.
- * - The timestamps from the incomming buffers, which we copy to the outgoing
+ * - The timestamps from the incoming buffers, which we copy to the outgoing
* encoded buffers as-is. We need to do this as we simply forward the
* newsegment events.
* - The running_time of the buffers, which we use to construct the granulepos
}
/* make sure we copy the discont flag to the next outgoing buffer when it's
- * set on the incomming buffer */
+ * set on the incoming buffer */
if (GST_BUFFER_IS_DISCONT (buffer)) {
enc->next_discont = TRUE;
}
buffers = g_slist_reverse (buffers);
/* mark buffers and put on caps */
- caps = gst_pad_get_caps (enc->srcpad);
+ caps = gst_caps_new_simple ("video/x-theora",
+ "width", G_TYPE_INT, enc->width,
+ "height", G_TYPE_INT, enc->height,
+ "framerate", GST_TYPE_FRACTION, enc->fps_n, enc->fps_d,
+ "pixel-aspect-ratio", GST_TYPE_FRACTION, enc->par_n, enc->par_d, NULL);
caps = theora_set_header_on_caps (caps, buffers);
GST_DEBUG ("here are the caps: %" GST_PTR_FORMAT, caps);
gst_pad_set_caps (enc->srcpad, caps);
enc->next_ts = 0;
}
- {
- th_ycbcr_buffer ycbcr;
- gint res;
-
- theora_enc_init_buffer (ycbcr, &enc->info, GST_BUFFER_DATA (buffer));
-
- if (theora_enc_is_discontinuous (enc, running_time, duration)) {
- theora_enc_reset (enc);
- enc->granulepos_offset =
- gst_util_uint64_scale (running_time, enc->fps_n,
- GST_SECOND * enc->fps_d);
- enc->timestamp_offset = running_time;
- enc->next_ts = 0;
- enc->next_discont = TRUE;
- }
-
- if (enc->multipass_cache_fd
- && enc->multipass_mode == MULTIPASS_MODE_SECOND_PASS) {
- if (!theora_enc_read_multipass_cache (enc)) {
- ret = GST_FLOW_ERROR;
- goto multipass_read_failed;
- }
- }
-
- res = th_encode_ycbcr_in (enc->encoder, ycbcr);
- /* none of the failure cases can happen here */
- g_assert (res == 0);
-
- if (enc->multipass_cache_fd
- && enc->multipass_mode == MULTIPASS_MODE_FIRST_PASS) {
- if (!theora_enc_write_multipass_cache (enc, FALSE, FALSE)) {
- ret = GST_FLOW_ERROR;
- goto multipass_write_failed;
- }
- }
-
- ret = GST_FLOW_OK;
- while (th_encode_packetout (enc->encoder, 0, &op)) {
- GstClockTime next_time;
-
- next_time = th_granule_time (enc->encoder, op.granulepos) * GST_SECOND;
-
- ret =
- theora_push_packet (enc, &op, timestamp, enc->next_ts,
- next_time - enc->next_ts);
-
- enc->next_ts = next_time;
- if (ret != GST_FLOW_OK)
- goto data_push;
- }
- gst_buffer_unref (buffer);
- }
+ ret = theora_enc_encode_and_push (enc, op, timestamp, running_time, duration,
+ buffer);
return ret;
/* ERRORS */
-multipass_read_failed:
- {
- gst_buffer_unref (buffer);
- return ret;
- }
-multipass_write_failed:
- {
- gst_buffer_unref (buffer);
- return ret;
- }
header_buffer_alloc:
{
gst_buffer_unref (buffer);
gst_buffer_unref (buffer);
return ret;
}
-data_push:
- {
- gst_buffer_unref (buffer);
- return ret;
- }
encoder_disabled:
{
GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
{
GstTheoraEnc *enc;
GstStateChangeReturn ret;
+ th_enc_ctx *th_ctx;
enc = GST_THEORA_ENC (element);
switch (transition) {
case GST_STATE_CHANGE_NULL_TO_READY:
+ th_ctx = dummy_encode_ctx ();
+ if (!th_ctx) {
+ GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
+ ("libtheora has been compiled with the encoder disabled"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+ th_encode_free (th_ctx);
break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
GST_DEBUG_OBJECT (enc, "READY->PAUSED Initing theora state");
case PROP_NOISE_SENSITIVITY:
case PROP_SHARPNESS:
/* kept for API compat, but ignored */
+ GST_WARNING_OBJECT (object, "Obsolete property '%s' ignored",
+ pspec->name);
break;
case PROP_BITRATE:
GST_OBJECT_LOCK (enc);
gint info_width, info_height;
gint width, height;
gint fps_n, fps_d;
+ gint par_n, par_d;
GstClockTime next_ts;
GstClockTime expected_ts;
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&theora_parse_src_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&theora_parse_sink_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &theora_parse_src_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &theora_parse_sink_factory);
gst_element_class_set_details_simple (element_class,
"Theora video parser", "Codec/Parser/Video",
"parse raw theora streams", "Andy Wingo <wingo@pobox.com>");
g_value_unset (&v);
}
- g_value_set_boxed (value, array);
+ g_value_take_boxed (value, array);
}
break;
default:
parse->shift = parse->info.keyframe_granule_shift;
/* With libtheora-1.0beta1 the granulepos scheme was changed:
- * where earlier the granulepos refered to the index/beginning
+ * where earlier the granulepos referred to the index/beginning
* of a frame, it now refers to the end, which matches the use
* in vorbis/speex. We check the bitstream version from the header so
* we know which way to interpret the incoming granuepos
gstvorbistag.c \
gstvorbiscommon.c
-libgstvorbis_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
+libgstvorbis_la_CFLAGS = \
+ $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
## AM_PATH_VORBIS also sets VORBISENC_LIBS
libgstvorbis_la_LIBADD = \
$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
libgstivorbisdec_la_SOURCES = gstivorbisdec.c \
gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
-libgstivorbisdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
+libgstivorbisdec_la_CFLAGS = \
+ $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
-DTREMOR $(IVORBIS_CFLAGS)
libgstivorbisdec_la_LIBADD = \
$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
@USE_IVORBIS_TRUE@ libgstivorbisdec_la-gstvorbisdeclib.lo \
@USE_IVORBIS_TRUE@ libgstivorbisdec_la-gstvorbiscommon.lo
libgstivorbisdec_la_OBJECTS = $(am_libgstivorbisdec_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
libgstivorbisdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstivorbisdec_la_LIBTOOLFLAGS) $(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 = $(libgstivorbisdec_la_SOURCES) $(libgstvorbis_la_SOURCES)
DIST_SOURCES = $(am__libgstivorbisdec_la_SOURCES_DIST) \
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@USE_VORBIS_TRUE@ gstvorbistag.c \
@USE_VORBIS_TRUE@ gstvorbiscommon.c
-@USE_VORBIS_TRUE@libgstvorbis_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
+@USE_VORBIS_TRUE@libgstvorbis_la_CFLAGS = \
+@USE_VORBIS_TRUE@ $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(VORBIS_CFLAGS)
+
@USE_VORBIS_TRUE@libgstvorbis_la_LIBADD = \
@USE_VORBIS_TRUE@ $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
@USE_VORBIS_TRUE@ $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
@USE_IVORBIS_TRUE@libgstivorbisdec_la_SOURCES = gstivorbisdec.c \
@USE_IVORBIS_TRUE@ gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
-@USE_IVORBIS_TRUE@libgstivorbisdec_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
+@USE_IVORBIS_TRUE@libgstivorbisdec_la_CFLAGS = \
+@USE_IVORBIS_TRUE@ $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
@USE_IVORBIS_TRUE@ -DTREMOR $(IVORBIS_CFLAGS)
@USE_IVORBIS_TRUE@libgstivorbisdec_la_LIBADD = \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstivorbisdec.la: $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_DEPENDENCIES)
+libgstivorbisdec.la: $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_DEPENDENCIES) $(EXTRA_libgstivorbisdec_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstivorbisdec_la_LINK) $(am_libgstivorbisdec_la_rpath) $(libgstivorbisdec_la_OBJECTS) $(libgstivorbisdec_la_LIBADD) $(LIBS)
-libgstvorbis.la: $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_DEPENDENCIES)
+libgstvorbis.la: $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_DEPENDENCIES) $(EXTRA_libgstvorbis_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstvorbis_la_LINK) $(am_libgstvorbis_la_rpath) $(libgstvorbis_la_OBJECTS) $(libgstvorbis_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstivorbisdec_la-gstivorbisdec.lo: gstivorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstivorbisdec.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstivorbisdec.Tpo -c -o libgstivorbisdec_la-gstivorbisdec.lo `test -f 'gstivorbisdec.c' || echo '$(srcdir)/'`gstivorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstivorbisdec.Tpo $(DEPDIR)/libgstivorbisdec_la-gstivorbisdec.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstivorbisdec.c' object='libgstivorbisdec_la-gstivorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstivorbisdec.c' object='libgstivorbisdec_la-gstivorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstivorbisdec.lo `test -f 'gstivorbisdec.c' || echo '$(srcdir)/'`gstivorbisdec.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstivorbisdec.lo `test -f 'gstivorbisdec.c' || echo '$(srcdir)/'`gstivorbisdec.c
libgstivorbisdec_la-gstvorbisdec.lo: gstvorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstvorbisdec.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstvorbisdec.Tpo -c -o libgstivorbisdec_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstvorbisdec.Tpo $(DEPDIR)/libgstivorbisdec_la-gstvorbisdec.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbisdec.c' object='libgstivorbisdec_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbisdec.c' object='libgstivorbisdec_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
libgstivorbisdec_la-gstvorbisdeclib.lo: gstvorbisdeclib.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstvorbisdeclib.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstvorbisdeclib.Tpo -c -o libgstivorbisdec_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstvorbisdeclib.Tpo $(DEPDIR)/libgstivorbisdec_la-gstvorbisdeclib.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbisdeclib.c' object='libgstivorbisdec_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbisdeclib.c' object='libgstivorbisdec_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
libgstivorbisdec_la-gstvorbiscommon.lo: gstvorbiscommon.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -MT libgstivorbisdec_la-gstvorbiscommon.lo -MD -MP -MF $(DEPDIR)/libgstivorbisdec_la-gstvorbiscommon.Tpo -c -o libgstivorbisdec_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstivorbisdec_la-gstvorbiscommon.Tpo $(DEPDIR)/libgstivorbisdec_la-gstvorbiscommon.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbiscommon.c' object='libgstivorbisdec_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbiscommon.c' object='libgstivorbisdec_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstivorbisdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstivorbisdec_la_CFLAGS) $(CFLAGS) -c -o libgstivorbisdec_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
libgstvorbis_la-gstvorbis.lo: gstvorbis.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbis.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbis.Tpo -c -o libgstvorbis_la-gstvorbis.lo `test -f 'gstvorbis.c' || echo '$(srcdir)/'`gstvorbis.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbis.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbis.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbis.c' object='libgstvorbis_la-gstvorbis.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbis.c' object='libgstvorbis_la-gstvorbis.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbis.lo `test -f 'gstvorbis.c' || echo '$(srcdir)/'`gstvorbis.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbis.lo `test -f 'gstvorbis.c' || echo '$(srcdir)/'`gstvorbis.c
libgstvorbis_la-gstvorbisdec.lo: gstvorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisdec.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisdec.Tpo -c -o libgstvorbis_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisdec.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisdec.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbisdec.c' object='libgstvorbis_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbisdec.c' object='libgstvorbis_la-gstvorbisdec.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdec.lo `test -f 'gstvorbisdec.c' || echo '$(srcdir)/'`gstvorbisdec.c
libgstvorbis_la-gstvorbisdeclib.lo: gstvorbisdeclib.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisdeclib.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisdeclib.Tpo -c -o libgstvorbis_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisdeclib.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisdeclib.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbisdeclib.c' object='libgstvorbis_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbisdeclib.c' object='libgstvorbis_la-gstvorbisdeclib.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisdeclib.lo `test -f 'gstvorbisdeclib.c' || echo '$(srcdir)/'`gstvorbisdeclib.c
libgstvorbis_la-gstvorbisenc.lo: gstvorbisenc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisenc.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisenc.Tpo -c -o libgstvorbis_la-gstvorbisenc.lo `test -f 'gstvorbisenc.c' || echo '$(srcdir)/'`gstvorbisenc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisenc.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisenc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbisenc.c' object='libgstvorbis_la-gstvorbisenc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbisenc.c' object='libgstvorbis_la-gstvorbisenc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisenc.lo `test -f 'gstvorbisenc.c' || echo '$(srcdir)/'`gstvorbisenc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisenc.lo `test -f 'gstvorbisenc.c' || echo '$(srcdir)/'`gstvorbisenc.c
libgstvorbis_la-gstvorbisparse.lo: gstvorbisparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbisparse.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbisparse.Tpo -c -o libgstvorbis_la-gstvorbisparse.lo `test -f 'gstvorbisparse.c' || echo '$(srcdir)/'`gstvorbisparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbisparse.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbisparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbisparse.c' object='libgstvorbis_la-gstvorbisparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbisparse.c' object='libgstvorbis_la-gstvorbisparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisparse.lo `test -f 'gstvorbisparse.c' || echo '$(srcdir)/'`gstvorbisparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbisparse.lo `test -f 'gstvorbisparse.c' || echo '$(srcdir)/'`gstvorbisparse.c
libgstvorbis_la-gstvorbistag.lo: gstvorbistag.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbistag.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbistag.Tpo -c -o libgstvorbis_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbistag.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbistag.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbistag.c' object='libgstvorbis_la-gstvorbistag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbistag.c' object='libgstvorbis_la-gstvorbistag.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
libgstvorbis_la-gstvorbiscommon.lo: gstvorbiscommon.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -MT libgstvorbis_la-gstvorbiscommon.lo -MD -MP -MF $(DEPDIR)/libgstvorbis_la-gstvorbiscommon.Tpo -c -o libgstvorbis_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvorbis_la-gstvorbiscommon.Tpo $(DEPDIR)/libgstvorbis_la-gstvorbiscommon.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbiscommon.c' object='libgstvorbis_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbiscommon.c' object='libgstvorbis_la-gstvorbiscommon.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvorbis_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvorbis_la_CFLAGS) $(CFLAGS) -c -o libgstvorbis_la-gstvorbiscommon.lo `test -f 'gstvorbiscommon.c' || echo '$(srcdir)/'`gstvorbiscommon.c
mostlyclean-libtool:
-rm -f *.lo
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:
GST_STATIC_CAPS ("audio/x-vorbis")
);
-GST_BOILERPLATE (GST_VORBIS_DEC_GLIB_TYPE_NAME, gst_vorbis_dec, GstElement,
- GST_TYPE_ELEMENT);
+GST_BOILERPLATE (GstVorbisDec, gst_vorbis_dec, GstAudioDecoder,
+ GST_TYPE_AUDIO_DECODER);
static void vorbis_dec_finalize (GObject * object);
-static gboolean vorbis_dec_sink_event (GstPad * pad, GstEvent * event);
-static GstFlowReturn vorbis_dec_chain (GstPad * pad, GstBuffer * buffer);
-static GstFlowReturn vorbis_dec_chain_forward (GstVorbisDec * vd,
- gboolean discont, GstBuffer * buffer);
-static GstFlowReturn vorbis_dec_chain_reverse (GstVorbisDec * vd,
- gboolean discont, GstBuffer * buf);
-static GstStateChangeReturn vorbis_dec_change_state (GstElement * element,
- GstStateChange transition);
-
-static gboolean vorbis_dec_src_event (GstPad * pad, GstEvent * event);
-static gboolean vorbis_dec_src_query (GstPad * pad, GstQuery * query);
-static gboolean vorbis_dec_convert (GstPad * pad,
- GstFormat src_format, gint64 src_value,
- GstFormat * dest_format, gint64 * dest_value);
-
-static gboolean vorbis_dec_sink_query (GstPad * pad, GstQuery * query);
+
+static gboolean vorbis_dec_start (GstAudioDecoder * dec);
+static gboolean vorbis_dec_stop (GstAudioDecoder * dec);
+static GstFlowReturn vorbis_dec_handle_frame (GstAudioDecoder * dec,
+ GstBuffer * buffer);
+static void vorbis_dec_flush (GstAudioDecoder * dec, gboolean hard);
static void
gst_vorbis_dec_base_init (gpointer g_class)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- GstPadTemplate *src_template, *sink_template;
-
- src_template = gst_static_pad_template_get (&vorbis_dec_src_factory);
- gst_element_class_add_pad_template (element_class, src_template);
- sink_template = gst_static_pad_template_get (&vorbis_dec_sink_factory);
- gst_element_class_add_pad_template (element_class, sink_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &vorbis_dec_src_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &vorbis_dec_sink_factory);
gst_element_class_set_details_simple (element_class,
"Vorbis audio decoder", "Codec/Decoder/Audio",
gst_vorbis_dec_class_init (GstVorbisDecClass * klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
+ GstAudioDecoderClass *base_class = GST_AUDIO_DECODER_CLASS (klass);
gobject_class->finalize = vorbis_dec_finalize;
- gstelement_class->change_state = GST_DEBUG_FUNCPTR (vorbis_dec_change_state);
-}
-
-static const GstQueryType *
-vorbis_get_query_types (GstPad * pad)
-{
- static const GstQueryType vorbis_dec_src_query_types[] = {
- GST_QUERY_POSITION,
- GST_QUERY_DURATION,
- GST_QUERY_CONVERT,
- 0
- };
-
- return vorbis_dec_src_query_types;
+ base_class->start = GST_DEBUG_FUNCPTR (vorbis_dec_start);
+ base_class->stop = GST_DEBUG_FUNCPTR (vorbis_dec_stop);
+ base_class->handle_frame = GST_DEBUG_FUNCPTR (vorbis_dec_handle_frame);
+ base_class->flush = GST_DEBUG_FUNCPTR (vorbis_dec_flush);
}
static void
gst_vorbis_dec_init (GstVorbisDec * dec, GstVorbisDecClass * g_class)
{
- dec->sinkpad = gst_pad_new_from_static_template (&vorbis_dec_sink_factory,
- "sink");
-
- gst_pad_set_event_function (dec->sinkpad,
- GST_DEBUG_FUNCPTR (vorbis_dec_sink_event));
- gst_pad_set_chain_function (dec->sinkpad,
- GST_DEBUG_FUNCPTR (vorbis_dec_chain));
- gst_pad_set_query_function (dec->sinkpad,
- GST_DEBUG_FUNCPTR (vorbis_dec_sink_query));
- gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
-
- dec->srcpad = gst_pad_new_from_static_template (&vorbis_dec_src_factory,
- "src");
-
- gst_pad_set_event_function (dec->srcpad,
- GST_DEBUG_FUNCPTR (vorbis_dec_src_event));
- gst_pad_set_query_type_function (dec->srcpad,
- GST_DEBUG_FUNCPTR (vorbis_get_query_types));
- gst_pad_set_query_function (dec->srcpad,
- GST_DEBUG_FUNCPTR (vorbis_dec_src_query));
- gst_pad_use_fixed_caps (dec->srcpad);
- gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);
-
- dec->queued = NULL;
- dec->pendingevents = NULL;
- dec->taglist = NULL;
}
static void
#ifndef USE_TREMOLO
vorbis_block_clear (&vd->vb);
#endif
-
vorbis_dsp_clear (&vd->vd);
vorbis_comment_clear (&vd->vc);
vorbis_info_clear (&vd->vi);
static void
gst_vorbis_dec_reset (GstVorbisDec * dec)
{
- dec->last_timestamp = GST_CLOCK_TIME_NONE;
- dec->discont = TRUE;
- dec->seqnum = gst_util_seqnum_next ();
- gst_segment_init (&dec->segment, GST_FORMAT_TIME);
-
- g_list_foreach (dec->queued, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->queued);
- dec->queued = NULL;
- g_list_foreach (dec->gather, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->gather);
- dec->gather = NULL;
- g_list_foreach (dec->decode, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->decode);
- dec->decode = NULL;
- g_list_foreach (dec->pendingevents, (GFunc) gst_mini_object_unref, NULL);
- g_list_free (dec->pendingevents);
- dec->pendingevents = NULL;
-
if (dec->taglist)
gst_tag_list_free (dec->taglist);
dec->taglist = NULL;
}
-
static gboolean
-vorbis_dec_convert (GstPad * pad,
- GstFormat src_format, gint64 src_value,
- GstFormat * dest_format, gint64 * dest_value)
+vorbis_dec_start (GstAudioDecoder * dec)
{
- gboolean res = TRUE;
- GstVorbisDec *dec;
- guint64 scale = 1;
-
- if (src_format == *dest_format) {
- *dest_value = src_value;
- return TRUE;
- }
+ GstVorbisDec *vd = GST_VORBIS_DEC (dec);
- dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
+ GST_DEBUG_OBJECT (dec, "start");
+ vorbis_info_init (&vd->vi);
+ vorbis_comment_init (&vd->vc);
+ vd->initialized = FALSE;
+ gst_vorbis_dec_reset (vd);
- if (!dec->initialized)
- goto no_header;
-
- if (dec->sinkpad == pad &&
- (src_format == GST_FORMAT_BYTES || *dest_format == GST_FORMAT_BYTES))
- goto no_format;
-
- switch (src_format) {
- case GST_FORMAT_TIME:
- switch (*dest_format) {
- case GST_FORMAT_BYTES:
- scale = dec->width * dec->vi.channels;
- case GST_FORMAT_DEFAULT:
- *dest_value =
- scale * gst_util_uint64_scale_int (src_value, dec->vi.rate,
- GST_SECOND);
- break;
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_DEFAULT:
- switch (*dest_format) {
- case GST_FORMAT_BYTES:
- *dest_value = src_value * dec->width * dec->vi.channels;
- break;
- case GST_FORMAT_TIME:
- *dest_value =
- gst_util_uint64_scale_int (src_value, GST_SECOND, dec->vi.rate);
- break;
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_BYTES:
- switch (*dest_format) {
- case GST_FORMAT_DEFAULT:
- *dest_value = src_value / (dec->width * dec->vi.channels);
- break;
- case GST_FORMAT_TIME:
- *dest_value = gst_util_uint64_scale_int (src_value, GST_SECOND,
- dec->vi.rate * dec->width * dec->vi.channels);
- break;
- default:
- res = FALSE;
- }
- break;
- default:
- res = FALSE;
- }
-done:
- gst_object_unref (dec);
-
- return res;
-
- /* ERRORS */
-no_header:
- {
- GST_DEBUG_OBJECT (dec, "no header packets received");
- res = FALSE;
- goto done;
- }
-no_format:
- {
- GST_DEBUG_OBJECT (dec, "formats unsupported");
- res = FALSE;
- goto done;
- }
+ return TRUE;
}
static gboolean
-vorbis_dec_src_query (GstPad * pad, GstQuery * query)
+vorbis_dec_stop (GstAudioDecoder * dec)
{
- GstVorbisDec *dec;
- gboolean res = FALSE;
-
- dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
- if (G_UNLIKELY (dec == NULL))
- return FALSE;
-
- switch (GST_QUERY_TYPE (query)) {
- case GST_QUERY_POSITION:
- {
- gint64 value;
- GstFormat format;
- gint64 time;
-
- gst_query_parse_position (query, &format, NULL);
-
- /* we start from the last seen time */
- time = dec->last_timestamp;
- /* correct for the segment values */
- time = gst_segment_to_stream_time (&dec->segment, GST_FORMAT_TIME, time);
-
- GST_LOG_OBJECT (dec,
- "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
-
- /* and convert to the final format */
- if (!(res =
- vorbis_dec_convert (pad, GST_FORMAT_TIME, time, &format, &value)))
- goto error;
-
- gst_query_set_position (query, format, value);
-
- GST_LOG_OBJECT (dec,
- "query %p: we return %" G_GINT64_FORMAT " (format %u)", query, value,
- format);
-
- break;
- }
- case GST_QUERY_DURATION:
- {
- res = gst_pad_peer_query (dec->sinkpad, query);
- if (!res)
- goto error;
-
- 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 =
- vorbis_dec_convert (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;
- }
-done:
- gst_object_unref (dec);
-
- return res;
-
- /* ERRORS */
-error:
- {
- GST_WARNING_OBJECT (dec, "error handling query");
- goto done;
- }
-}
+ GstVorbisDec *vd = GST_VORBIS_DEC (dec);
-static gboolean
-vorbis_dec_sink_query (GstPad * pad, GstQuery * query)
-{
- GstVorbisDec *dec;
- gboolean res;
-
- dec = GST_VORBIS_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);
- if (!(res =
- vorbis_dec_convert (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;
- }
-
-done:
- gst_object_unref (dec);
-
- return res;
+ GST_DEBUG_OBJECT (dec, "stop");
+ vd->initialized = FALSE;
+#ifndef USE_TREMOLO
+ vorbis_block_clear (&vd->vb);
+#endif
+ vorbis_dsp_clear (&vd->vd);
+ vorbis_comment_clear (&vd->vc);
+ vorbis_info_clear (&vd->vi);
+ gst_vorbis_dec_reset (vd);
- /* ERRORS */
-error:
- {
- GST_DEBUG_OBJECT (dec, "error converting value");
- goto done;
- }
+ return TRUE;
}
+#if 0
static gboolean
vorbis_dec_src_event (GstPad * pad, GstEvent * event)
{
GstVorbisDec *dec;
dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
- if (G_UNLIKELY (dec == NULL)) {
- gst_event_unref (event);
- return FALSE;
- }
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK:
goto done;
}
}
-
-static gboolean
-vorbis_dec_sink_event (GstPad * pad, GstEvent * event)
-{
- gboolean ret = FALSE;
- GstVorbisDec *dec;
-
- dec = GST_VORBIS_DEC (gst_pad_get_parent (pad));
-
- GST_LOG_OBJECT (dec, "handling event");
- switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_EOS:
- if (dec->segment.rate < 0.0)
- vorbis_dec_chain_reverse (dec, TRUE, NULL);
- ret = gst_pad_push_event (dec->srcpad, event);
- break;
- case GST_EVENT_FLUSH_START:
- ret = gst_pad_push_event (dec->srcpad, event);
- break;
- case GST_EVENT_FLUSH_STOP:
- /* here we must clean any state in the decoder */
-#ifdef HAVE_VORBIS_SYNTHESIS_RESTART
- vorbis_synthesis_restart (&dec->vd);
#endif
- gst_vorbis_dec_reset (dec);
- ret = gst_pad_push_event (dec->srcpad, event);
- break;
- 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);
-
- /* we need time for now */
- if (format != GST_FORMAT_TIME)
- goto newseg_wrong_format;
-
- GST_DEBUG_OBJECT (dec,
- "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));
-
- /* now configure the values */
- gst_segment_set_newsegment_full (&dec->segment, update,
- rate, arate, format, start, stop, time);
- dec->seqnum = gst_event_get_seqnum (event);
-
- if (dec->initialized)
- /* and forward */
- ret = gst_pad_push_event (dec->srcpad, event);
- else {
- /* store it to send once we're initialized */
- dec->pendingevents = g_list_append (dec->pendingevents, event);
- ret = TRUE;
- }
- break;
- }
- case GST_EVENT_TAG:
- {
- if (dec->initialized)
- /* and forward */
- ret = gst_pad_push_event (dec->srcpad, event);
- else {
- /* store it to send once we're initialized */
- dec->pendingevents = g_list_append (dec->pendingevents, event);
- ret = TRUE;
- }
- break;
- }
- default:
- ret = gst_pad_push_event (dec->srcpad, event);
- break;
- }
-done:
- gst_object_unref (dec);
-
- return ret;
-
- /* ERRORS */
-newseg_wrong_format:
- {
- GST_DEBUG_OBJECT (dec, "received non TIME newsegment");
- goto done;
- }
-}
static GstFlowReturn
vorbis_handle_identification_packet (GstVorbisDec * vd)
}
/* negotiate width with downstream */
- caps = gst_pad_get_allowed_caps (vd->srcpad);
+ caps = gst_pad_get_allowed_caps (GST_AUDIO_DECODER_SRC_PAD (vd));
if (caps) {
if (!gst_caps_is_empty (caps)) {
GstStructure *s;
* for mono/stereo and avoid the depth switch in tremor case */
vd->copy_samples = get_copy_sample_func (vd->vi.channels, vd->width);
- caps = gst_caps_copy (gst_pad_get_pad_template_caps (vd->srcpad));
- gst_caps_set_simple (caps, "rate", G_TYPE_INT, vd->vi.rate,
- "channels", G_TYPE_INT, vd->vi.channels,
- "width", G_TYPE_INT, width, NULL);
+ caps =
+ gst_caps_copy (gst_pad_get_pad_template_caps
+ (GST_AUDIO_DECODER_SRC_PAD (vd)));
+ gst_caps_set_simple (caps, "rate", G_TYPE_INT, vd->vi.rate, "channels",
+ G_TYPE_INT, vd->vi.channels, "width", G_TYPE_INT, width, NULL);
if (pos) {
gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos);
g_free ((GstAudioChannelPosition *) pos);
}
- gst_pad_set_caps (vd->srcpad, caps);
+ gst_pad_set_caps (GST_AUDIO_DECODER_SRC_PAD (vd), caps);
gst_caps_unref (caps);
return GST_FLOW_OK;
}
if (vd->initialized) {
- gst_element_found_tags_for_pad (GST_ELEMENT_CAST (vd), vd->srcpad,
- vd->taglist);
+ gst_element_found_tags_for_pad (GST_ELEMENT_CAST (vd),
+ GST_AUDIO_DECODER_SRC_PAD (vd), vd->taglist);
vd->taglist = NULL;
} else {
/* Only post them as messages for the time being. *
static GstFlowReturn
vorbis_handle_type_packet (GstVorbisDec * vd)
{
- GList *walk;
gint res;
g_assert (vd->initialized == FALSE);
vd->initialized = TRUE;
- if (vd->pendingevents) {
- for (walk = vd->pendingevents; walk; walk = g_list_next (walk))
- gst_pad_push_event (vd->srcpad, GST_EVENT_CAST (walk->data));
- g_list_free (vd->pendingevents);
- vd->pendingevents = NULL;
- }
-
if (vd->taglist) {
/* The tags have already been sent on the bus as messages. */
- gst_pad_push_event (vd->srcpad, gst_event_new_tag (vd->taglist));
+ gst_pad_push_event (GST_AUDIO_DECODER_SRC_PAD (vd),
+ gst_event_new_tag (vd->taglist));
vd->taglist = NULL;
}
return GST_FLOW_OK;
res = GST_FLOW_OK;
break;
}
+
return res;
/* ERRORS */
}
static GstFlowReturn
-vorbis_dec_push_forward (GstVorbisDec * dec, GstBuffer * buf)
+vorbis_dec_handle_header_buffer (GstVorbisDec * vd, GstBuffer * buffer)
{
- GstFlowReturn result;
-
- /* clip */
- if (!(buf = gst_audio_buffer_clip (buf, &dec->segment, dec->vi.rate,
- dec->vi.channels * dec->width))) {
- GST_LOG_OBJECT (dec, "clipped buffer");
- return GST_FLOW_OK;
- }
-
- if (dec->discont) {
- GST_LOG_OBJECT (dec, "setting DISCONT");
- GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
- dec->discont = FALSE;
- }
-
- GST_DEBUG_OBJECT (dec,
- "pushing time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT,
- GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
- GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+ ogg_packet *packet;
+ ogg_packet_wrapper packet_wrapper;
- result = gst_pad_push (dec->srcpad, buf);
+ gst_ogg_packet_wrapper_from_buffer (&packet_wrapper, buffer);
+ packet = gst_ogg_packet_from_wrapper (&packet_wrapper);
- return result;
+ return vorbis_handle_header_packet (vd, packet);
}
+#define MIN_NUM_HEADERS 3
static GstFlowReturn
-vorbis_dec_push_reverse (GstVorbisDec * dec, GstBuffer * buf)
+vorbis_dec_handle_header_caps (GstVorbisDec * vd)
{
GstFlowReturn result = GST_FLOW_OK;
+ GstCaps *caps;
+ GstStructure *s = NULL;
+ const GValue *array = NULL;
+
+ caps = GST_PAD_CAPS (GST_AUDIO_DECODER_SINK_PAD (vd));
+ if (caps)
+ s = gst_caps_get_structure (caps, 0);
+ if (s)
+ array = gst_structure_get_value (s, "streamheader");
+
+ if (array && (gst_value_array_get_size (array) >= MIN_NUM_HEADERS)) {
+ const GValue *value = NULL;
+ GstBuffer *buf = NULL;
+ gint i = 0;
+
+ while (result == GST_FLOW_OK && i < gst_value_array_get_size (array)) {
+ value = gst_value_array_get_value (array, i);
+ buf = gst_value_get_buffer (value);
+ if (!buf)
+ goto null_buffer;
+ result = vorbis_dec_handle_header_buffer (vd, buf);
+ i++;
+ }
+ } else
+ goto array_error;
- dec->queued = g_list_prepend (dec->queued, buf);
-
- return result;
-}
+done:
+ return (result != GST_FLOW_OK ? GST_FLOW_NOT_NEGOTIATED : GST_FLOW_OK);
-static void
-vorbis_do_timestamps (GstVorbisDec * vd, GstBuffer * buf, gboolean reverse,
- GstClockTime timestamp, GstClockTime duration)
-{
- /* interpolate reverse */
- if (vd->last_timestamp != -1 && duration != -1 && reverse)
- vd->last_timestamp -= duration;
-
- /* take buffer timestamp, use interpolated timestamp otherwise */
- if (timestamp != -1)
- vd->last_timestamp = timestamp;
- else
- timestamp = vd->last_timestamp;
-
- /* interpolate forwards */
- if (vd->last_timestamp != -1 && duration != -1 && !reverse)
- vd->last_timestamp += duration;
-
- GST_LOG_OBJECT (vd,
- "keeping timestamp %" GST_TIME_FORMAT " ts %" GST_TIME_FORMAT " dur %"
- GST_TIME_FORMAT, GST_TIME_ARGS (vd->last_timestamp),
- GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration));
-
- if (buf) {
- GST_BUFFER_TIMESTAMP (buf) = timestamp;
- GST_BUFFER_DURATION (buf) = duration;
+ /* ERRORS */
+array_error:
+ {
+ GST_WARNING_OBJECT (vd, "streamheader array not found");
+ result = GST_FLOW_ERROR;
+ goto done;
+ }
+null_buffer:
+ {
+ GST_WARNING_OBJECT (vd, "streamheader with null buffer received");
+ result = GST_FLOW_ERROR;
+ goto done;
}
}
+
static GstFlowReturn
vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
GstClockTime timestamp, GstClockTime duration)
GstFlowReturn result;
gint size;
- if (G_UNLIKELY (!vd->initialized))
- goto not_initialized;
+ if (G_UNLIKELY (!vd->initialized)) {
+ result = vorbis_dec_handle_header_caps (vd);
+ if (result != GST_FLOW_OK)
+ goto not_initialized;
+ }
/* normal data packet */
/* FIXME, we can skip decoding if the packet is outside of the
* segment, this is however not very trivial as we need a previous
- * packet to decode the current one so we must be carefull not to
+ * packet to decode the current one so we must be careful not to
* throw away too much. For now we decode everything and clip right
* before pushing data. */
if ((sample_count = vorbis_dsp_pcmout (&vd->vd, NULL, 0)) == 0)
#else
if ((sample_count = vorbis_synthesis_pcmout (&vd->vd, NULL)) == 0)
-#endif
goto done;
+#endif
size = sample_count * vd->vi.channels * vd->width;
GST_LOG_OBJECT (vd, "%d samples ready for reading, size %d", sample_count,
/* alloc buffer for it */
result =
- gst_pad_alloc_buffer_and_set_caps (vd->srcpad, GST_BUFFER_OFFSET_NONE,
- size, GST_PAD_CAPS (vd->srcpad), &out);
+ gst_pad_alloc_buffer_and_set_caps (GST_AUDIO_DECODER_SRC_PAD (vd),
+ GST_BUFFER_OFFSET_NONE, size,
+ GST_PAD_CAPS (GST_AUDIO_DECODER_SRC_PAD (vd)), &out);
if (G_UNLIKELY (result != GST_FLOW_OK))
goto done;
/* get samples ready for reading now, should be sample_count */
#ifdef USE_TREMOLO
pcm = GST_BUFFER_DATA (out);
- if (G_UNLIKELY ((vorbis_dsp_pcmout (&vd->vd, pcm, sample_count)) != sample_count))
+ if (G_UNLIKELY (vorbis_dsp_pcmout (&vd->vd, pcm, sample_count) !=
+ sample_count))
#else
- if (G_UNLIKELY ((vorbis_synthesis_pcmout (&vd->vd, &pcm)) != sample_count))
+ if (G_UNLIKELY (vorbis_synthesis_pcmout (&vd->vd, &pcm) != sample_count))
#endif
goto wrong_samples;
GST_LOG_OBJECT (vd, "setting output size to %d", size);
GST_BUFFER_SIZE (out) = size;
- /* this should not overflow */
- if (duration == -1)
- duration = sample_count * GST_SECOND / vd->vi.rate;
-
- vorbis_do_timestamps (vd, out, FALSE, timestamp, duration);
-
- if (vd->segment.rate >= 0.0)
- result = vorbis_dec_push_forward (vd, out);
- else
- result = vorbis_dec_push_reverse (vd, out);
-
done:
- if (out == NULL) {
- /* no output, still keep track of timestamps */
- vorbis_do_timestamps (vd, NULL, FALSE, timestamp, duration);
- }
+ /* whether or not data produced, consume one frame and advance time */
+ result = gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (vd), out, 1);
#ifdef USE_TREMOLO
vorbis_dsp_read (&vd->vd, sample_count);
{
GST_ELEMENT_ERROR (GST_ELEMENT (vd), STREAM, DECODE,
(NULL), ("no header sent yet"));
- return GST_FLOW_ERROR;
+ return GST_FLOW_NOT_NEGOTIATED;
}
could_not_read:
{
}
static GstFlowReturn
-vorbis_dec_decode_buffer (GstVorbisDec * vd, GstBuffer * buffer)
+vorbis_dec_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer)
{
ogg_packet *packet;
ogg_packet_wrapper packet_wrapper;
GstFlowReturn result = GST_FLOW_OK;
+ GstVorbisDec *vd = GST_VORBIS_DEC (dec);
+
+ /* no draining etc */
+ if (G_UNLIKELY (!buffer))
+ return GST_FLOW_OK;
/* make ogg_packet out of the buffer */
gst_ogg_packet_wrapper_from_buffer (&packet_wrapper, buffer);
goto done;
}
result = vorbis_handle_header_packet (vd, packet);
+ /* consumer header packet/frame */
+ gst_audio_decoder_finish_frame (GST_AUDIO_DECODER (vd), NULL, 1);
} else {
GstClockTime timestamp, duration;
{
GST_ELEMENT_ERROR (vd, STREAM, DECODE, (NULL), ("empty header received"));
result = GST_FLOW_ERROR;
- vd->discont = TRUE;
goto done;
}
}
-/*
- * Input:
- * Buffer decoding order: 7 8 9 4 5 6 3 1 2 EOS
- * Discont flag: D D D D
- *
- * - Each Discont marks a discont in the decoding order.
- *
- * for vorbis, each buffer is a keyframe when we have the previous
- * buffer. This means that to decode buffer 7, we need buffer 6, which
- * arrives out of order.
- *
- * we first gather buffers in the gather queue until we get a DISCONT. We
- * prepend each incomming buffer so that they are in reversed order.
- *
- * gather queue: 9 8 7
- * decode queue:
- * output queue:
- *
- * When a DISCONT is received (buffer 4), we move the gather queue to the
- * decode queue. This is simply done be taking the head of the gather queue
- * and prepending it to the decode queue. This yields:
- *
- * gather queue:
- * decode queue: 7 8 9
- * output queue:
- *
- * Then we decode each buffer in the decode queue in order and put the output
- * buffer in the output queue. The first buffer (7) will not produce any output
- * because it needs the previous buffer (6) which did not arrive yet. This
- * yields:
- *
- * gather queue:
- * decode queue: 7 8 9
- * output queue: 9 8
- *
- * Then we remove the consumed buffers from the decode queue. Buffer 7 is not
- * completely consumed, we need to keep it around for when we receive buffer
- * 6. This yields:
- *
- * gather queue:
- * decode queue: 7
- * output queue: 9 8
- *
- * Then we accumulate more buffers:
- *
- * gather queue: 6 5 4
- * decode queue: 7
- * output queue:
- *
- * prepending to the decode queue on DISCONT yields:
- *
- * gather queue:
- * decode queue: 4 5 6 7
- * output queue:
- *
- * after decoding and keeping buffer 4:
- *
- * gather queue:
- * decode queue: 4
- * output queue: 7 6 5
- *
- * Etc..
- */
-static GstFlowReturn
-vorbis_dec_flush_decode (GstVorbisDec * dec)
-{
- GstFlowReturn res = GST_FLOW_OK;
- GList *walk;
-
- walk = dec->decode;
-
- GST_DEBUG_OBJECT (dec, "flushing buffers to decoder");
-
- while (walk) {
- GList *next;
- GstBuffer *buf = GST_BUFFER_CAST (walk->data);
-
- GST_DEBUG_OBJECT (dec, "decoding buffer %p, ts %" GST_TIME_FORMAT,
- buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
-
- next = g_list_next (walk);
-
- /* decode buffer, prepend to output queue */
- res = vorbis_dec_decode_buffer (dec, buf);
-
- /* if we generated output, we can discard the buffer, else we
- * keep it in the queue */
- if (dec->queued) {
- GST_DEBUG_OBJECT (dec, "decoded buffer to %p", dec->queued->data);
- dec->decode = g_list_delete_link (dec->decode, walk);
- gst_buffer_unref (buf);
- } else {
- GST_DEBUG_OBJECT (dec, "buffer did not decode, keeping");
- }
- walk = next;
- }
- while (dec->queued) {
- GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data);
- GstClockTime timestamp, duration;
-
- timestamp = GST_BUFFER_TIMESTAMP (buf);
- duration = GST_BUFFER_DURATION (buf);
-
- vorbis_do_timestamps (dec, buf, TRUE, timestamp, duration);
- res = vorbis_dec_push_forward (dec, buf);
-
- dec->queued = g_list_delete_link (dec->queued, dec->queued);
- }
- return res;
-}
-
-static GstFlowReturn
-vorbis_dec_chain_reverse (GstVorbisDec * vd, gboolean discont, GstBuffer * buf)
-{
- GstFlowReturn result = GST_FLOW_OK;
-
- /* if we have a discont, move buffers to the decode list */
- if (G_UNLIKELY (discont)) {
- GST_DEBUG_OBJECT (vd, "received discont");
- while (vd->gather) {
- GstBuffer *gbuf;
-
- gbuf = GST_BUFFER_CAST (vd->gather->data);
- /* remove from the gather list */
- vd->gather = g_list_delete_link (vd->gather, vd->gather);
- /* copy to decode queue */
- vd->decode = g_list_prepend (vd->decode, gbuf);
- }
- /* flush and decode the decode queue */
- result = vorbis_dec_flush_decode (vd);
- }
-
- if (G_LIKELY (buf)) {
- GST_DEBUG_OBJECT (vd,
- "gathering buffer %p of size %u, time %" GST_TIME_FORMAT
- ", dur %" GST_TIME_FORMAT, buf, GST_BUFFER_SIZE (buf),
- GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
- GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
-
- /* add buffer to gather queue */
- vd->gather = g_list_prepend (vd->gather, buf);
- }
-
- return result;
-}
-
-static GstFlowReturn
-vorbis_dec_chain_forward (GstVorbisDec * vd, gboolean discont,
- GstBuffer * buffer)
-{
- GstFlowReturn result;
-
- result = vorbis_dec_decode_buffer (vd, buffer);
-
- gst_buffer_unref (buffer);
-
- return result;
-}
-
-static GstFlowReturn
-vorbis_dec_chain (GstPad * pad, GstBuffer * buffer)
+static void
+vorbis_dec_flush (GstAudioDecoder * dec, gboolean hard)
{
- GstVorbisDec *vd;
- GstFlowReturn result = GST_FLOW_OK;
- gboolean discont;
-
- vd = GST_VORBIS_DEC (gst_pad_get_parent (pad));
-
- discont = GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT);
+ GstVorbisDec *vd = GST_VORBIS_DEC (dec);
- /* resync on DISCONT */
- if (G_UNLIKELY (discont)) {
- GST_DEBUG_OBJECT (vd, "received DISCONT buffer");
- vd->last_timestamp = GST_CLOCK_TIME_NONE;
#ifdef HAVE_VORBIS_SYNTHESIS_RESTART
- vorbis_synthesis_restart (&vd->vd);
-#endif
- vd->discont = TRUE;
- }
-
- if (vd->segment.rate >= 0.0)
- result = vorbis_dec_chain_forward (vd, discont, buffer);
- else
- result = vorbis_dec_chain_reverse (vd, discont, buffer);
-
- gst_object_unref (vd);
-
- return result;
-}
-
-static GstStateChangeReturn
-vorbis_dec_change_state (GstElement * element, GstStateChange transition)
-{
- GstVorbisDec *vd = GST_VORBIS_DEC (element);
- GstStateChangeReturn res;
-
- switch (transition) {
- case GST_STATE_CHANGE_NULL_TO_READY:
- break;
- case GST_STATE_CHANGE_READY_TO_PAUSED:
- vorbis_info_init (&vd->vi);
- vorbis_comment_init (&vd->vc);
- vd->initialized = FALSE;
- gst_vorbis_dec_reset (vd);
- break;
- case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
- break;
- default:
- break;
- }
-
- res = parent_class->change_state (element, transition);
-
- switch (transition) {
- case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
- break;
- case GST_STATE_CHANGE_PAUSED_TO_READY:
- GST_DEBUG_OBJECT (vd, "PAUSED -> READY, clearing vorbis structures");
- vd->initialized = FALSE;
-
-#ifndef USE_TREMOLO
- vorbis_block_clear (&vd->vb);
+ vorbis_synthesis_restart (&vd->vd);
#endif
- vorbis_dsp_clear (&vd->vd);
- vorbis_comment_clear (&vd->vc);
- vorbis_info_clear (&vd->vi);
- gst_vorbis_dec_reset (vd);
- break;
- case GST_STATE_CHANGE_READY_TO_NULL:
- break;
- default:
- break;
- }
-
- return res;
+ if (hard)
+ gst_vorbis_dec_reset (vd);
}
#endif
#include <gst/gst.h>
+#include <gst/audio/gstaudiodecoder.h>
#include "gstvorbisdeclib.h"
G_BEGIN_DECLS
* Opaque data structure.
*/
struct _GstVorbisDec {
- GstElement element;
-
- GstPad *sinkpad;
- GstPad *srcpad;
+ GstAudioDecoder element;
vorbis_dsp_state vd;
vorbis_info vi;
vorbis_comment vc;
-
#ifndef USE_TREMOLO
vorbis_block vb;
#endif
gboolean initialized;
guint width;
- /* list of buffers that need timestamps */
- GList *queued;
- /* gather/decode queues for reverse playback */
- GList *gather;
- GList *decode;
-
- GstSegment segment;
- gboolean discont;
- guint32 seqnum;
-
- GstClockTime last_timestamp;
-
- GList *pendingevents;
GstTagList *taglist;
-
+
CopySampleFunc copy_samples;
};
struct _GstVorbisDecClass {
- GstElementClass parent_class;
+ GstAudioDecoderClass parent_class;
};
GType gst_vorbis_dec_get_type(void);
GST_PAD_ALWAYS,
GST_STATIC_CAPS ("audio/x-raw-float, "
"rate = (int) [ 1, 200000 ], "
- "channels = (int) [ 1, 256 ], " "endianness = (int) BYTE_ORDER, "
+ "channels = (int) [ 1, 255 ], " "endianness = (int) BYTE_ORDER, "
"width = (int) 32")
);
static GstFlowReturn gst_vorbis_enc_output_buffers (GstVorbisEnc * vorbisenc);
-/* this function takes into account the granulepos_offset and the subgranule
- * time offset */
-static GstClockTime
-granulepos_to_timestamp_offset (GstVorbisEnc * vorbisenc,
- ogg_int64_t granulepos)
-{
- if (granulepos >= 0)
- return gst_util_uint64_scale ((guint64) granulepos
- + vorbisenc->granulepos_offset, GST_SECOND, vorbisenc->frequency)
- + vorbisenc->subgranule_offset;
- return GST_CLOCK_TIME_NONE;
-}
-
-/* this function does a straight granulepos -> timestamp conversion */
-static GstClockTime
-granulepos_to_timestamp (GstVorbisEnc * vorbisenc, ogg_int64_t granulepos)
-{
- if (granulepos >= 0)
- return gst_util_uint64_scale ((guint64) granulepos,
- GST_SECOND, vorbisenc->frequency);
- return GST_CLOCK_TIME_NONE;
-}
#define MAX_BITRATE_DEFAULT -1
#define BITRATE_DEFAULT -1
#define LOWEST_BITRATE 6000 /* lowest allowed for a 8 kHz stream */
#define HIGHEST_BITRATE 250001 /* highest allowed for a 44 kHz stream */
-static gboolean gst_vorbis_enc_sink_event (GstPad * pad, GstEvent * event);
-static GstFlowReturn gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_vorbis_enc_start (GstAudioEncoder * enc);
+static gboolean gst_vorbis_enc_stop (GstAudioEncoder * enc);
+static gboolean gst_vorbis_enc_set_format (GstAudioEncoder * enc,
+ GstAudioInfo * info);
+static GstFlowReturn gst_vorbis_enc_handle_frame (GstAudioEncoder * enc,
+ GstBuffer * in_buf);
+static GstCaps *gst_vorbis_enc_getcaps (GstAudioEncoder * enc);
+static gboolean gst_vorbis_enc_sink_event (GstAudioEncoder * enc,
+ GstEvent * event);
+static GstFlowReturn gst_vorbis_enc_pre_push (GstAudioEncoder * enc,
+ GstBuffer ** buffer);
+
static gboolean gst_vorbis_enc_setup (GstVorbisEnc * vorbisenc);
static void gst_vorbis_enc_dispose (GObject * object);
GValue * value, GParamSpec * pspec);
static void gst_vorbis_enc_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
-static GstStateChangeReturn gst_vorbis_enc_change_state (GstElement * element,
- GstStateChange transition);
static void gst_vorbis_enc_add_interfaces (GType vorbisenc_type);
-GST_BOILERPLATE_FULL (GstVorbisEnc, gst_vorbis_enc, GstElement,
- GST_TYPE_ELEMENT, gst_vorbis_enc_add_interfaces);
+GST_BOILERPLATE_FULL (GstVorbisEnc, gst_vorbis_enc, GstAudioEncoder,
+ GST_TYPE_AUDIO_ENCODER, gst_vorbis_enc_add_interfaces);
static void
gst_vorbis_enc_add_interfaces (GType vorbisenc_type)
{
static const GInterfaceInfo tag_setter_info = { NULL, NULL, NULL };
- static const GInterfaceInfo preset_info = { NULL, NULL, NULL };
g_type_add_interface_static (vorbisenc_type, GST_TYPE_TAG_SETTER,
&tag_setter_info);
- g_type_add_interface_static (vorbisenc_type, GST_TYPE_PRESET, &preset_info);
}
static void
gst_vorbis_enc_base_init (gpointer g_class)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- GstPadTemplate *src_template, *sink_template;
-
- src_template = gst_static_pad_template_get (&vorbis_enc_src_factory);
- gst_element_class_add_pad_template (element_class, src_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &vorbis_enc_src_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &vorbis_enc_sink_factory);
- sink_template = gst_static_pad_template_get (&vorbis_enc_sink_factory);
- gst_element_class_add_pad_template (element_class, sink_template);
gst_element_class_set_details_simple (element_class,
"Vorbis audio encoder", "Codec/Encoder/Audio",
"Encodes audio in Vorbis format",
gst_vorbis_enc_class_init (GstVorbisEncClass * 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_vorbis_enc_set_property;
gobject_class->get_property = gst_vorbis_enc_get_property;
gobject_class->dispose = gst_vorbis_enc_dispose;
+ base_class->start = GST_DEBUG_FUNCPTR (gst_vorbis_enc_start);
+ base_class->stop = GST_DEBUG_FUNCPTR (gst_vorbis_enc_stop);
+ base_class->set_format = GST_DEBUG_FUNCPTR (gst_vorbis_enc_set_format);
+ base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_vorbis_enc_handle_frame);
+ base_class->getcaps = GST_DEBUG_FUNCPTR (gst_vorbis_enc_getcaps);
+ base_class->event = GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_event);
+ base_class->pre_push = GST_DEBUG_FUNCPTR (gst_vorbis_enc_pre_push);
+
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MAX_BITRATE,
g_param_spec_int ("max-bitrate", "Maximum Bitrate",
"Specify a maximum bitrate (in bps). Useful for streaming "
g_param_spec_string ("last-message", "last-message",
"The last status message", NULL,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_vorbis_enc_init (GstVorbisEnc * vorbisenc, GstVorbisEncClass * klass)
+{
+ GstAudioEncoder *enc = GST_AUDIO_ENCODER (vorbisenc);
+
+ vorbisenc->channels = -1;
+ vorbisenc->frequency = -1;
+
+ vorbisenc->managed = FALSE;
+ vorbisenc->max_bitrate = MAX_BITRATE_DEFAULT;
+ vorbisenc->bitrate = BITRATE_DEFAULT;
+ vorbisenc->min_bitrate = MIN_BITRATE_DEFAULT;
+ vorbisenc->quality = QUALITY_DEFAULT;
+ vorbisenc->quality_set = FALSE;
+ vorbisenc->last_message = NULL;
- gstelement_class->change_state =
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_change_state);
+ /* 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
G_OBJECT_CLASS (parent_class)->dispose (object);
}
+static gboolean
+gst_vorbis_enc_start (GstAudioEncoder * enc)
+{
+ GstVorbisEnc *vorbisenc = GST_VORBISENC (enc);
+
+ GST_DEBUG_OBJECT (enc, "start");
+ vorbisenc->tags = gst_tag_list_new ();
+ vorbisenc->header_sent = FALSE;
+
+ return TRUE;
+}
+
+static gboolean
+gst_vorbis_enc_stop (GstAudioEncoder * enc)
+{
+ GstVorbisEnc *vorbisenc = GST_VORBISENC (enc);
+
+ GST_DEBUG_OBJECT (enc, "stop");
+ vorbis_block_clear (&vorbisenc->vb);
+ vorbis_dsp_clear (&vorbisenc->vd);
+ vorbis_info_clear (&vorbisenc->vi);
+ g_free (vorbisenc->last_message);
+ vorbisenc->last_message = NULL;
+ gst_tag_list_free (vorbisenc->tags);
+ vorbisenc->tags = NULL;
+ g_slist_foreach (vorbisenc->headers, (GFunc) gst_buffer_unref, NULL);
+ vorbisenc->headers = NULL;
+
+ gst_tag_setter_reset_tags (GST_TAG_SETTER (enc));
+
+ return TRUE;
+}
+
static GstCaps *
gst_vorbis_enc_generate_sink_caps (void)
{
gst_caps_append_structure (caps, gst_structure_new ("audio/x-raw-float",
"rate", GST_TYPE_INT_RANGE, 1, 200000,
- "channels", GST_TYPE_INT_RANGE, 9, 256,
+ "channels", GST_TYPE_INT_RANGE, 9, 255,
"endianness", G_TYPE_INT, G_BYTE_ORDER, "width", G_TYPE_INT, 32,
NULL));
}
static GstCaps *
-gst_vorbis_enc_sink_getcaps (GstPad * pad)
+gst_vorbis_enc_getcaps (GstAudioEncoder * enc)
{
- GstVorbisEnc *vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
+ GstVorbisEnc *vorbisenc = GST_VORBISENC (enc);
if (vorbisenc->sinkcaps == NULL)
vorbisenc->sinkcaps = gst_vorbis_enc_generate_sink_caps ();
- return gst_caps_ref (vorbisenc->sinkcaps);
-}
-
-static gboolean
-gst_vorbis_enc_sink_setcaps (GstPad * pad, GstCaps * caps)
-{
- GstVorbisEnc *vorbisenc;
- GstStructure *structure;
-
- vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
- vorbisenc->setup = FALSE;
-
- structure = gst_caps_get_structure (caps, 0);
- gst_structure_get_int (structure, "channels", &vorbisenc->channels);
- gst_structure_get_int (structure, "rate", &vorbisenc->frequency);
-
- gst_vorbis_enc_setup (vorbisenc);
-
- if (vorbisenc->setup)
- return TRUE;
-
- return FALSE;
-}
-
-static gboolean
-gst_vorbis_enc_convert_src (GstPad * pad, GstFormat src_format,
- gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
-{
- gboolean res = TRUE;
- GstVorbisEnc *vorbisenc;
- gint64 avg;
-
- vorbisenc = GST_VORBISENC (gst_pad_get_parent (pad));
-
- if (vorbisenc->samples_in == 0 ||
- vorbisenc->bytes_out == 0 || vorbisenc->frequency == 0) {
- gst_object_unref (vorbisenc);
- return FALSE;
- }
-
- avg = (vorbisenc->bytes_out * vorbisenc->frequency) / (vorbisenc->samples_in);
-
- switch (src_format) {
- case GST_FORMAT_BYTES:
- switch (*dest_format) {
- case GST_FORMAT_TIME:
- *dest_value = gst_util_uint64_scale_int (src_value, GST_SECOND, avg);
- break;
- default:
- res = FALSE;
- }
- break;
- case GST_FORMAT_TIME:
- switch (*dest_format) {
- case GST_FORMAT_BYTES:
- *dest_value = gst_util_uint64_scale_int (src_value, avg, GST_SECOND);
- break;
- default:
- res = FALSE;
- }
- break;
- default:
- res = FALSE;
- }
- gst_object_unref (vorbisenc);
- return res;
-}
-
-static gboolean
-gst_vorbis_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;
- GstVorbisEnc *vorbisenc;
-
- vorbisenc = GST_VORBISENC (gst_pad_get_parent (pad));
-
- bytes_per_sample = vorbisenc->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 * vorbisenc->frequency;
-
- if (byterate == 0)
- return FALSE;
- *dest_value =
- gst_util_uint64_scale_int (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 (vorbisenc->frequency == 0)
- return FALSE;
- *dest_value =
- gst_util_uint64_scale_int (src_value, GST_SECOND,
- vorbisenc->frequency);
- 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 =
- gst_util_uint64_scale_int (src_value,
- scale * vorbisenc->frequency, GST_SECOND);
- break;
- default:
- res = FALSE;
- }
- break;
- default:
- res = FALSE;
- }
- gst_object_unref (vorbisenc);
- return res;
+ return gst_audio_encoder_proxy_getcaps (enc, vorbisenc->sinkcaps);
}
static gint64
return 58 * GST_MSECOND;
}
-static const GstQueryType *
-gst_vorbis_enc_get_query_types (GstPad * pad)
-{
- static const GstQueryType gst_vorbis_enc_src_query_types[] = {
- GST_QUERY_POSITION,
- GST_QUERY_DURATION,
- GST_QUERY_CONVERT,
- 0
- };
-
- return gst_vorbis_enc_src_query_types;
-}
-
static gboolean
-gst_vorbis_enc_src_query (GstPad * pad, GstQuery * query)
+gst_vorbis_enc_set_format (GstAudioEncoder * enc, GstAudioInfo * info)
{
- gboolean res = TRUE;
GstVorbisEnc *vorbisenc;
- GstPad *peerpad;
-
- vorbisenc = GST_VORBISENC (gst_pad_get_parent (pad));
- peerpad = gst_pad_get_peer (GST_PAD (vorbisenc->sinkpad));
-
- switch (GST_QUERY_TYPE (query)) {
- case GST_QUERY_POSITION:
- {
- GstFormat fmt, req_fmt;
- gint64 pos, val;
-
- gst_query_parse_position (query, &req_fmt, NULL);
- if ((res = gst_pad_query_position (peerpad, &req_fmt, &val))) {
- gst_query_set_position (query, req_fmt, val);
- break;
- }
-
- fmt = GST_FORMAT_TIME;
- if (!(res = gst_pad_query_position (peerpad, &fmt, &pos)))
- break;
-
- if ((res = gst_pad_query_convert (peerpad, 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_duration (peerpad, &req_fmt, &val))) {
- gst_query_set_duration (query, req_fmt, val);
- break;
- }
-
- fmt = GST_FORMAT_TIME;
- if (!(res = gst_pad_query_duration (peerpad, &fmt, &dur)))
- break;
-
- if ((res = gst_pad_query_convert (peerpad, 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_vorbis_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_query (peerpad, query))) {
- gst_query_parse_latency (query, &live, &min_latency, &max_latency);
- latency = gst_vorbis_enc_get_latency (vorbisenc);
+ vorbisenc = GST_VORBISENC (enc);
- /* add our latency */
- min_latency += latency;
- if (max_latency != -1)
- max_latency += latency;
+ vorbisenc->channels = GST_AUDIO_INFO_CHANNELS (info);
+ vorbisenc->frequency = GST_AUDIO_INFO_RATE (info);
- gst_query_set_latency (query, live, min_latency, max_latency);
- }
- break;
- }
- default:
- res = gst_pad_query (peerpad, query);
- break;
- }
-
-error:
- gst_object_unref (peerpad);
- gst_object_unref (vorbisenc);
- return res;
-}
-
-static gboolean
-gst_vorbis_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_vorbis_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;
- }
-
-error:
- return res;
-}
-
-static void
-gst_vorbis_enc_init (GstVorbisEnc * vorbisenc, GstVorbisEncClass * klass)
-{
- vorbisenc->sinkpad =
- gst_pad_new_from_static_template (&vorbis_enc_sink_factory, "sink");
- gst_pad_set_event_function (vorbisenc->sinkpad,
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_event));
- gst_pad_set_chain_function (vorbisenc->sinkpad,
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_chain));
- gst_pad_set_setcaps_function (vorbisenc->sinkpad,
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_setcaps));
- gst_pad_set_getcaps_function (vorbisenc->sinkpad,
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_getcaps));
- gst_pad_set_query_function (vorbisenc->sinkpad,
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_sink_query));
- gst_element_add_pad (GST_ELEMENT (vorbisenc), vorbisenc->sinkpad);
-
- vorbisenc->srcpad =
- gst_pad_new_from_static_template (&vorbis_enc_src_factory, "src");
- gst_pad_set_query_function (vorbisenc->srcpad,
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_src_query));
- gst_pad_set_query_type_function (vorbisenc->srcpad,
- GST_DEBUG_FUNCPTR (gst_vorbis_enc_get_query_types));
- gst_element_add_pad (GST_ELEMENT (vorbisenc), vorbisenc->srcpad);
+ /* if re-configured, we were drained and cleared already */
+ if (!gst_vorbis_enc_setup (vorbisenc))
+ return FALSE;
- vorbisenc->channels = -1;
- vorbisenc->frequency = -1;
+ /* feedback to base class */
+ gst_audio_encoder_set_latency (enc,
+ gst_vorbis_enc_get_latency (vorbisenc),
+ gst_vorbis_enc_get_latency (vorbisenc));
- vorbisenc->managed = FALSE;
- vorbisenc->max_bitrate = MAX_BITRATE_DEFAULT;
- vorbisenc->bitrate = BITRATE_DEFAULT;
- vorbisenc->min_bitrate = MIN_BITRATE_DEFAULT;
- vorbisenc->quality = QUALITY_DEFAULT;
- vorbisenc->quality_set = FALSE;
- vorbisenc->last_message = NULL;
+ return TRUE;
}
static void
static gboolean
gst_vorbis_enc_setup (GstVorbisEnc * vorbisenc)
{
- vorbisenc->setup = FALSE;
+
+ GST_LOG_OBJECT (vorbisenc, "setup");
if (vorbisenc->bitrate < 0 && vorbisenc->min_bitrate < 0
&& vorbisenc->max_bitrate < 0) {
vorbis_analysis_init (&vorbisenc->vd, &vorbisenc->vi);
vorbis_block_init (&vorbisenc->vd, &vorbisenc->vb);
- vorbisenc->next_ts = 0;
+ /* samples == granulepos start at 0 again */
+ vorbisenc->samples_out = 0;
+ /* fresh encoder available */
vorbisenc->setup = TRUE;
return TRUE;
vorbis_analysis_wrote (&vorbisenc->vd, 0);
ret = gst_vorbis_enc_output_buffers (vorbisenc);
+ /* marked EOS to encoder, recreate if needed */
vorbisenc->setup = FALSE;
}
vorbis_dsp_clear (&vorbisenc->vd);
vorbis_info_clear (&vorbisenc->vi);
- vorbisenc->header_sent = FALSE;
-
return ret;
}
-/* prepare a buffer for transmission by passing data through libvorbis */
-static GstBuffer *
-gst_vorbis_enc_buffer_from_packet (GstVorbisEnc * vorbisenc,
- ogg_packet * packet)
-{
- GstBuffer *outbuf;
-
- outbuf = gst_buffer_new_and_alloc (packet->bytes);
- memcpy (GST_BUFFER_DATA (outbuf), packet->packet, packet->bytes);
- /* see ext/ogg/README; OFFSET_END takes "our" granulepos, OFFSET its
- * time representation */
- GST_BUFFER_OFFSET_END (outbuf) = packet->granulepos +
- vorbisenc->granulepos_offset;
- GST_BUFFER_OFFSET (outbuf) = granulepos_to_timestamp (vorbisenc,
- GST_BUFFER_OFFSET_END (outbuf));
- GST_BUFFER_TIMESTAMP (outbuf) = vorbisenc->next_ts;
-
- /* update the next timestamp, taking granulepos_offset and subgranule offset
- * into account */
- vorbisenc->next_ts =
- granulepos_to_timestamp_offset (vorbisenc, packet->granulepos) +
- vorbisenc->initial_ts;
- GST_BUFFER_DURATION (outbuf) =
- vorbisenc->next_ts - GST_BUFFER_TIMESTAMP (outbuf);
-
- if (vorbisenc->next_discont) {
- GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
- vorbisenc->next_discont = FALSE;
- }
-
- gst_buffer_set_caps (outbuf, vorbisenc->srccaps);
-
- GST_LOG_OBJECT (vorbisenc, "encoded buffer of %d bytes",
- GST_BUFFER_SIZE (outbuf));
- return outbuf;
-}
-
-/* the same as above, but different logic for setting timestamp and granulepos
- * */
static GstBuffer *
gst_vorbis_enc_buffer_from_header_packet (GstVorbisEnc * vorbisenc,
ogg_packet * packet)
GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
- gst_buffer_set_caps (outbuf, vorbisenc->srccaps);
-
GST_DEBUG ("created header packet buffer, %d bytes",
GST_BUFFER_SIZE (outbuf));
return outbuf;
}
-/* push out the buffer and do internal bookkeeping */
-static GstFlowReturn
-gst_vorbis_enc_push_buffer (GstVorbisEnc * vorbisenc, GstBuffer * buffer)
-{
- vorbisenc->bytes_out += GST_BUFFER_SIZE (buffer);
-
- GST_DEBUG_OBJECT (vorbisenc,
- "Pushing buffer with GP %" G_GINT64_FORMAT ", ts %" GST_TIME_FORMAT,
- GST_BUFFER_OFFSET_END (buffer),
- GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
- return gst_pad_push (vorbisenc->srcpad, buffer);
-}
-
-static GstFlowReturn
-gst_vorbis_enc_push_packet (GstVorbisEnc * vorbisenc, ogg_packet * packet)
-{
- GstBuffer *outbuf;
-
- outbuf = gst_vorbis_enc_buffer_from_packet (vorbisenc, packet);
- return gst_vorbis_enc_push_buffer (vorbisenc, outbuf);
-}
-
-/* Set a copy of these buffers as 'streamheader' on the caps.
- * We need a copy to avoid these buffers ending up with (indirect) refs on
- * themselves
- */
-static GstCaps *
-gst_vorbis_enc_set_header_on_caps (GstCaps * caps, GstBuffer * buf1,
- GstBuffer * buf2, GstBuffer * buf3)
-{
- GstBuffer *buf;
- GstStructure *structure;
- GValue array = { 0 };
- GValue value = { 0 };
-
- caps = gst_caps_make_writable (caps);
- structure = gst_caps_get_structure (caps, 0);
-
- /* mark buffers */
- GST_BUFFER_FLAG_SET (buf1, GST_BUFFER_FLAG_IN_CAPS);
- GST_BUFFER_FLAG_SET (buf2, GST_BUFFER_FLAG_IN_CAPS);
- GST_BUFFER_FLAG_SET (buf3, 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);
- g_value_unset (&value);
- g_value_init (&value, GST_TYPE_BUFFER);
- buf = gst_buffer_copy (buf3);
- 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;
-}
-
static gboolean
-gst_vorbis_enc_sink_event (GstPad * pad, GstEvent * event)
+gst_vorbis_enc_sink_event (GstAudioEncoder * enc, GstEvent * event)
{
- gboolean res = TRUE;
GstVorbisEnc *vorbisenc;
- vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
+ vorbisenc = GST_VORBISENC (enc);
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_EOS:
- /* Tell the library we're at end of stream so that it can handle
- * the last frame and mark end of stream in the output properly */
- GST_DEBUG_OBJECT (vorbisenc, "EOS, clearing state and sending event on");
- gst_vorbis_enc_clear (vorbisenc);
-
- res = gst_pad_push_event (vorbisenc->srcpad, event);
- break;
case GST_EVENT_TAG:
if (vorbisenc->tags) {
GstTagList *list;
} else {
g_assert_not_reached ();
}
- res = gst_pad_push_event (vorbisenc->srcpad, event);
break;
- case GST_EVENT_NEWSEGMENT:
- {
- gboolean update;
- gdouble rate, applied_rate;
- GstFormat format;
- gint64 start, stop, position;
-
- gst_event_parse_new_segment_full (event, &update, &rate, &applied_rate,
- &format, &start, &stop, &position);
- if (format == GST_FORMAT_TIME) {
- gst_segment_set_newsegment (&vorbisenc->segment, update, rate, format,
- start, stop, position);
- if (vorbisenc->initial_ts == GST_CLOCK_TIME_NONE) {
- GST_DEBUG_OBJECT (vorbisenc, "Initial segment %" GST_SEGMENT_FORMAT,
- &vorbisenc->segment);
- vorbisenc->initial_ts = start;
- }
- }
- }
/* fall through */
default:
- res = gst_pad_push_event (vorbisenc->srcpad, event);
break;
}
- return res;
+
+ /* we only peeked, let base class handle it */
+ return FALSE;
}
-static gboolean
-gst_vorbis_enc_buffer_check_discontinuous (GstVorbisEnc * vorbisenc,
- GstClockTime timestamp, GstClockTime duration)
+/* push out the buffer and do internal bookkeeping */
+static GstFlowReturn
+gst_vorbis_enc_push_header (GstVorbisEnc * vorbisenc, GstBuffer * buffer)
{
- gboolean ret = FALSE;
-
- if (timestamp != GST_CLOCK_TIME_NONE &&
- vorbisenc->expected_ts != GST_CLOCK_TIME_NONE &&
- timestamp + duration != vorbisenc->expected_ts) {
- /* It turns out that a lot of elements don't generate perfect streams due
- * to rounding errors. So, we permit small errors (< 1/2 a sample) without
- * causing a discont.
- */
- int halfsample = GST_SECOND / vorbisenc->frequency / 2;
-
- if ((GstClockTimeDiff) (timestamp - vorbisenc->expected_ts) > halfsample) {
- GST_DEBUG_OBJECT (vorbisenc, "Expected TS %" GST_TIME_FORMAT
- ", buffer TS %" GST_TIME_FORMAT,
- GST_TIME_ARGS (vorbisenc->expected_ts), GST_TIME_ARGS (timestamp));
- ret = TRUE;
- }
+ GST_DEBUG_OBJECT (vorbisenc,
+ "Pushing buffer with GP %" G_GINT64_FORMAT ", ts %" GST_TIME_FORMAT,
+ GST_BUFFER_OFFSET_END (buffer),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
+ gst_buffer_set_caps (buffer,
+ GST_PAD_CAPS (GST_AUDIO_ENCODER_SRC_PAD (vorbisenc)));
+ return gst_pad_push (GST_AUDIO_ENCODER_SRC_PAD (vorbisenc), buffer);
+}
+
+/*
+ * (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);
+
+ g_value_init (&array, GST_TYPE_ARRAY);
+
+ 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);
+
+ buf = va_arg (va, GstBuffer *);
}
- if (timestamp != GST_CLOCK_TIME_NONE && duration != GST_CLOCK_TIME_NONE) {
- vorbisenc->expected_ts = timestamp + duration;
- } else
- vorbisenc->expected_ts = GST_CLOCK_TIME_NONE;
+ gst_structure_set_value (structure, field, &array);
+ g_value_unset (&array);
- return ret;
+ return caps;
}
static GstFlowReturn
-gst_vorbis_enc_chain (GstPad * pad, GstBuffer * buffer)
+gst_vorbis_enc_handle_frame (GstAudioEncoder * enc, GstBuffer * buffer)
{
GstVorbisEnc *vorbisenc;
GstFlowReturn ret = GST_FLOW_OK;
gulong i, j;
float **vorbis_buffer;
GstBuffer *buf1, *buf2, *buf3;
- gboolean first = FALSE;
- GstClockTime timestamp = GST_CLOCK_TIME_NONE;
- GstClockTime running_time = GST_CLOCK_TIME_NONE;
-
- vorbisenc = GST_VORBISENC (GST_PAD_PARENT (pad));
- if (!vorbisenc->setup)
- goto not_setup;
+ vorbisenc = GST_VORBISENC (enc);
- buffer = gst_audio_buffer_clip (buffer, &vorbisenc->segment,
- vorbisenc->frequency, 4 * vorbisenc->channels);
- if (buffer == NULL) {
- GST_DEBUG_OBJECT (vorbisenc, "Dropping buffer, out of segment");
- return GST_FLOW_OK;
+ if (G_UNLIKELY (!vorbisenc->setup)) {
+ if (buffer) {
+ GST_DEBUG_OBJECT (vorbisenc, "forcing setup");
+ /* should not fail, as setup before same way */
+ if (!gst_vorbis_enc_setup (vorbisenc))
+ return GST_FLOW_ERROR;
+ } else {
+ /* end draining */
+ GST_LOG_OBJECT (vorbisenc, "already drained");
+ return GST_FLOW_OK;
+ }
}
- running_time =
- gst_segment_to_running_time (&vorbisenc->segment, GST_FORMAT_TIME,
- GST_BUFFER_TIMESTAMP (buffer));
- timestamp = running_time + vorbisenc->initial_ts;
- GST_DEBUG_OBJECT (vorbisenc, "Initial ts is %" GST_TIME_FORMAT,
- GST_TIME_ARGS (vorbisenc->initial_ts));
+
if (!vorbisenc->header_sent) {
/* Vorbis streams begin with three headers; the initial header (with
most of the codec setup parameters) which is mandated by the Ogg
ogg_packet header_code;
GstCaps *caps;
- /* first, make sure header buffers get timestamp == 0 */
- vorbisenc->next_ts = 0;
- vorbisenc->granulepos_offset = 0;
- vorbisenc->subgranule_offset = 0;
-
GST_DEBUG_OBJECT (vorbisenc, "creating and sending header packets");
gst_vorbis_enc_set_metadata (vorbisenc);
vorbis_analysis_headerout (&vorbisenc->vd, &vorbisenc->vc, &header,
buf3 = gst_vorbis_enc_buffer_from_header_packet (vorbisenc, &header_code);
/* mark and put on caps */
- vorbisenc->srccaps = gst_caps_new_simple ("audio/x-vorbis", NULL);
- caps = vorbisenc->srccaps;
- caps = gst_vorbis_enc_set_header_on_caps (caps, buf1, buf2, buf3);
+ caps = gst_caps_new_simple ("audio/x-vorbis", NULL);
+ caps = _gst_caps_set_buffer_array (caps, "streamheader",
+ buf1, buf2, buf3, NULL);
/* negotiate with these caps */
- GST_DEBUG ("here are the caps: %" GST_PTR_FORMAT, caps);
- gst_pad_set_caps (vorbisenc->srcpad, caps);
+ GST_DEBUG_OBJECT (vorbisenc, "here are the caps: %" GST_PTR_FORMAT, caps);
gst_buffer_set_caps (buf1, caps);
gst_buffer_set_caps (buf2, caps);
gst_buffer_set_caps (buf3, caps);
+ gst_pad_set_caps (GST_AUDIO_ENCODER_SRC_PAD (vorbisenc), caps);
+ gst_caps_unref (caps);
- /* push out buffers */
- /* push_buffer takes the reference even for failure */
- if ((ret = gst_vorbis_enc_push_buffer (vorbisenc, buf1)) != GST_FLOW_OK)
- goto failed_header_push;
- if ((ret = gst_vorbis_enc_push_buffer (vorbisenc, buf2)) != GST_FLOW_OK) {
- buf2 = NULL;
- goto failed_header_push;
- }
- if ((ret = gst_vorbis_enc_push_buffer (vorbisenc, buf3)) != GST_FLOW_OK) {
- buf3 = NULL;
- goto failed_header_push;
- }
-
- /* now adjust starting granulepos accordingly if the buffer's timestamp is
- nonzero */
- vorbisenc->next_ts = timestamp;
- vorbisenc->expected_ts = timestamp;
- vorbisenc->granulepos_offset = gst_util_uint64_scale
- (running_time, vorbisenc->frequency, GST_SECOND);
- vorbisenc->subgranule_offset = 0;
- vorbisenc->subgranule_offset =
- (vorbisenc->next_ts - vorbisenc->initial_ts) -
- granulepos_to_timestamp_offset (vorbisenc, 0);
+ /* store buffers for later pre_push sending */
+ g_slist_foreach (vorbisenc->headers, (GFunc) gst_buffer_unref, NULL);
+ vorbisenc->headers = NULL;
+ GST_DEBUG_OBJECT (vorbisenc, "storing header buffers");
+ vorbisenc->headers = g_slist_prepend (vorbisenc->headers, buf3);
+ vorbisenc->headers = g_slist_prepend (vorbisenc->headers, buf2);
+ vorbisenc->headers = g_slist_prepend (vorbisenc->headers, buf1);
vorbisenc->header_sent = TRUE;
- first = TRUE;
- }
-
- if (vorbisenc->expected_ts != GST_CLOCK_TIME_NONE &&
- timestamp < vorbisenc->expected_ts) {
- guint64 diff = vorbisenc->expected_ts - timestamp;
- guint64 diff_bytes;
-
- GST_WARNING_OBJECT (vorbisenc, "Buffer is older than previous "
- "timestamp + duration (%" GST_TIME_FORMAT "< %" GST_TIME_FORMAT
- "), cannot handle. Clipping buffer.",
- GST_TIME_ARGS (timestamp), GST_TIME_ARGS (vorbisenc->expected_ts));
-
- diff_bytes =
- GST_CLOCK_TIME_TO_FRAMES (diff,
- vorbisenc->frequency) * vorbisenc->channels * sizeof (gfloat);
- if (diff_bytes >= GST_BUFFER_SIZE (buffer)) {
- gst_buffer_unref (buffer);
- return GST_FLOW_OK;
- }
- buffer = gst_buffer_make_metadata_writable (buffer);
- GST_BUFFER_DATA (buffer) += diff_bytes;
- GST_BUFFER_SIZE (buffer) -= diff_bytes;
-
- GST_BUFFER_TIMESTAMP (buffer) += diff;
- if (GST_BUFFER_DURATION_IS_VALID (buffer))
- GST_BUFFER_DURATION (buffer) -= diff;
}
- if (gst_vorbis_enc_buffer_check_discontinuous (vorbisenc, timestamp,
- GST_BUFFER_DURATION (buffer)) && !first) {
- GST_WARNING_OBJECT (vorbisenc,
- "Buffer is discontinuous, flushing encoder "
- "and restarting (Discont from %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT
- ")", GST_TIME_ARGS (vorbisenc->next_ts), GST_TIME_ARGS (timestamp));
- /* Re-initialise encoder (there's unfortunately no API to flush it) */
- if ((ret = gst_vorbis_enc_clear (vorbisenc)) != GST_FLOW_OK)
- return ret;
- if (!gst_vorbis_enc_setup (vorbisenc))
- return GST_FLOW_ERROR; /* Should be impossible, we can only get here if
- we successfully initialised earlier */
-
- /* Now, set our granulepos offset appropriately. */
- vorbisenc->next_ts = timestamp;
- /* We need to round to the nearest whole number of samples, not just do
- * a truncating division here */
- vorbisenc->granulepos_offset = gst_util_uint64_scale
- (running_time + GST_SECOND / vorbisenc->frequency / 2
- - vorbisenc->subgranule_offset, vorbisenc->frequency, GST_SECOND);
-
- vorbisenc->header_sent = TRUE;
-
- /* And our next output buffer must have DISCONT set on it */
- vorbisenc->next_discont = TRUE;
- }
-
- /* Sending zero samples to libvorbis marks EOS, so we mustn't do that */
- if (GST_BUFFER_SIZE (buffer) == 0) {
- gst_buffer_unref (buffer);
- return GST_FLOW_OK;
- }
+ if (!buffer)
+ return gst_vorbis_enc_clear (vorbisenc);
/* data to encode */
data = (gfloat *) GST_BUFFER_DATA (buffer);
vorbisenc->samples_in += size;
- gst_buffer_unref (buffer);
-
ret = gst_vorbis_enc_output_buffers (vorbisenc);
return ret;
-
- /* error cases */
-not_setup:
- {
- gst_buffer_unref (buffer);
- GST_ELEMENT_ERROR (vorbisenc, CORE, NEGOTIATION, (NULL),
- ("encoder not initialized (input is not audio?)"));
- return GST_FLOW_UNEXPECTED;
- }
-failed_header_push:
- {
- GST_WARNING_OBJECT (vorbisenc, "Failed to push headers");
- /* buf1 is always already unreffed */
- if (buf2)
- gst_buffer_unref (buf2);
- if (buf3)
- gst_buffer_unref (buf3);
- gst_buffer_unref (buffer);
- return ret;
- }
}
static GstFlowReturn
vorbis_bitrate_addblock (&vorbisenc->vb);
while (vorbis_bitrate_flushpacket (&vorbisenc->vd, &op)) {
+ GstBuffer *buf;
+
GST_LOG_OBJECT (vorbisenc, "pushing out a data packet");
- ret = gst_vorbis_enc_push_packet (vorbisenc, &op);
+ buf = gst_buffer_new_and_alloc (op.bytes);
+ memcpy (GST_BUFFER_DATA (buf), op.packet, op.bytes);
+ /* tracking granulepos should tell us samples accounted for */
+ ret =
+ gst_audio_encoder_finish_frame (GST_AUDIO_ENCODER
+ (vorbisenc), buf, op.granulepos - vorbisenc->samples_out);
+ vorbisenc->samples_out = op.granulepos;
if (ret != GST_FLOW_OK)
return ret;
return GST_FLOW_OK;
}
+static GstFlowReturn
+gst_vorbis_enc_pre_push (GstAudioEncoder * enc, GstBuffer ** buffer)
+{
+ GstVorbisEnc *vorbisenc;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ vorbisenc = GST_VORBISENC (enc);
+
+ /* 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 (vorbisenc->headers)) {
+ GSList *header = vorbisenc->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_vorbis_enc_push_header (vorbisenc, header->data);
+ else
+ gst_vorbis_enc_push_header (vorbisenc, header->data);
+ header = g_slist_next (header);
+ }
+
+ g_slist_free (vorbisenc->headers);
+ vorbisenc->headers = NULL;
+ }
+
+ return ret;
+}
+
static void
gst_vorbis_enc_get_property (GObject * object, guint prop_id, GValue * value,
GParamSpec * pspec)
break;
}
}
-
-static GstStateChangeReturn
-gst_vorbis_enc_change_state (GstElement * element, GstStateChange transition)
-{
- GstVorbisEnc *vorbisenc = GST_VORBISENC (element);
- GstStateChangeReturn res;
-
-
- switch (transition) {
- case GST_STATE_CHANGE_NULL_TO_READY:
- vorbisenc->tags = gst_tag_list_new ();
- break;
- case GST_STATE_CHANGE_READY_TO_PAUSED:
- vorbisenc->setup = FALSE;
- vorbisenc->next_discont = FALSE;
- vorbisenc->header_sent = FALSE;
- gst_segment_init (&vorbisenc->segment, GST_FORMAT_TIME);
- vorbisenc->initial_ts = GST_CLOCK_TIME_NONE;
- break;
- case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
- break;
- default:
- break;
- }
-
- res = 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:
- vorbis_block_clear (&vorbisenc->vb);
- vorbis_dsp_clear (&vorbisenc->vd);
- vorbis_info_clear (&vorbisenc->vi);
- g_free (vorbisenc->last_message);
- vorbisenc->last_message = NULL;
- if (vorbisenc->srccaps) {
- gst_caps_unref (vorbisenc->srccaps);
- vorbisenc->srccaps = NULL;
- }
- break;
- case GST_STATE_CHANGE_READY_TO_NULL:
- gst_tag_list_free (vorbisenc->tags);
- vorbisenc->tags = NULL;
- default:
- break;
- }
-
- return res;
-}
#include <gst/gst.h>
+#include <gst/audio/gstaudioencoder.h>
#include <vorbis/codec.h>
* Opaque data structure.
*/
struct _GstVorbisEnc {
- GstElement element;
+ GstAudioEncoder element;
- GstPad *sinkpad;
- GstPad *srcpad;
-
- GstCaps *srccaps;
GstCaps *sinkcaps;
+ /* codec */
vorbis_info vi; /* struct that stores all the static vorbis bitstream
settings */
vorbis_comment vc; /* struct that stores all the user comments */
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
vorbis_block vb; /* local working space for packet->PCM decode */
+ /* properties */
gboolean managed;
gint bitrate;
gint min_bitrate;
gint frequency;
guint64 samples_in;
+ guint64 samples_out;
guint64 bytes_out;
- GstClockTime next_ts;
- GstClockTime expected_ts;
- gboolean next_discont;
- guint64 granulepos_offset;
- gint64 subgranule_offset;
- GstSegment segment;
- GstClockTime initial_ts;
GstTagList * tags;
gboolean setup;
gboolean header_sent;
gchar *last_message;
+ GSList *headers;
};
struct _GstVorbisEncClass {
- GstElementClass parent_class;
+ GstAudioEncoderClass parent_class;
};
GType gst_vorbis_enc_get_type(void);
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&vorbis_parse_src_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&vorbis_parse_sink_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &vorbis_parse_src_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &vorbis_parse_sink_factory);
gst_element_class_set_details_simple (element_class,
"VorbisParse", "Codec/Parser/Audio",
"parse raw vorbis streams",
have_header = FALSE;
if (size >= 1) {
- if (data[0] >= 0x01 && data[0] <= 0x05)
+ if (data[0] & 1)
have_header = TRUE;
}
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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:
SUBDIRS = \
interfaces \
tag \
- audio \
cdda \
fft \
floatcast \
netbuffer \
- riff \
rtp \
sdp \
rtsp \
video \
pbutils \
+ audio \
+ riff \
app
-noinst_HEADERS = gettext.h gst-i18n-plugin.h
+noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
# dependencies:
-audio: interfaces
+audio: interfaces pbutils
cdda: tag
rtsp: sdp
-pbutils: video
-
INDEPENDENT_SUBDIRS = \
- interfaces tag fft floatcast netbuffer rtp sdp video app
+ interfaces tag fft floatcast netbuffer pbutils rtp sdp video app
.PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
SUBDIRS = \
interfaces \
tag \
- audio \
cdda \
fft \
floatcast \
netbuffer \
- riff \
rtp \
sdp \
rtsp \
video \
pbutils \
+ audio \
+ riff \
app
-noinst_HEADERS = gettext.h gst-i18n-plugin.h
+noinst_HEADERS = gettext.h gst-i18n-plugin.h glib-compat-private.h
INDEPENDENT_SUBDIRS = \
- interfaces tag fft floatcast netbuffer rtp sdp video app
+ interfaces tag fft floatcast netbuffer pbutils rtp sdp video app
all: all-recursive
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:
# dependencies:
-audio: interfaces
+audio: interfaces pbutils
cdda: tag
rtsp: sdp
-pbutils: video
-
.PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
independent-subdirs: $(INDEPENDENT_SUBDIRS)
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)"
libgstapp_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstapp_@GST_MAJORMINOR@_la_OBJECTS) \
$(nodist_libgstapp_@GST_MAJORMINOR@_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
libgstapp_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(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 = $(libgstapp_@GST_MAJORMINOR@_la_SOURCES) \
$(nodist_libgstapp_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstapp-@GST_MAJORMINOR@.la: $(libgstapp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstapp_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstapp-@GST_MAJORMINOR@.la: $(libgstapp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstapp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstapp_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstapp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstapp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstapp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo: gstappsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsrc.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo `test -f 'gstappsrc.c' || echo '$(srcdir)/'`gstappsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsrc.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstappsrc.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstappsrc.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo `test -f 'gstappsrc.c' || echo '$(srcdir)/'`gstappsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsrc.lo `test -f 'gstappsrc.c' || echo '$(srcdir)/'`gstappsrc.c
libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo: gstappbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo `test -f 'gstappbuffer.c' || echo '$(srcdir)/'`gstappbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstappbuffer.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstappbuffer.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo `test -f 'gstappbuffer.c' || echo '$(srcdir)/'`gstappbuffer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappbuffer.lo `test -f 'gstappbuffer.c' || echo '$(srcdir)/'`gstappbuffer.c
libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo: gstappsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsink.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo `test -f 'gstappsink.c' || echo '$(srcdir)/'`gstappsink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsink.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstappsink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstappsink.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstappsink.c' object='libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo `test -f 'gstappsink.c' || echo '$(srcdir)/'`gstappsink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstappsink.lo `test -f 'gstappsink.c' || echo '$(srcdir)/'`gstappsink.c
libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo: gstapp-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.Tpo -c -o libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.Tpo $(DEPDIR)/libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstapp-marshal.c' object='libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstapp-marshal.c' object='libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_@GST_MAJORMINOR@_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_MAJORMINOR@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstapp_@GST_MAJORMINOR@includeHEADERS: $(libgstapp_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstapp_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstapp_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstapp_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstapp_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
-
-/**
- * SECTION:element-appsink
- *
- * Appsink is a sink plugin that supports many different methods for making
- * the application get a handle on the GStreamer data in a pipeline. Unlike
- * most GStreamer elements, Appsink provides external API functions.
- *
- * For the documentation of the API, please see the
- * <link linkend="gst-plugins-base-libs-appsink">libgstapp</link> section in
- * the GStreamer Plugins Base Libraries documentation.
- *
- * Since: 0.10.22
- */
-
-
/**
* SECTION:gstappsink
* @short_description: Easy way for applications to extract buffers from a
#include "gstappsink.h"
+#include "gst/glib-compat-private.h"
+
struct _GstAppSinkPrivate
{
GstCaps *caps;
"Generic/Sink", "Allow the application to get access to raw buffer",
"David Schleef <ds@schleef.org>, Wim Taymans <wim.taymans@gmail.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_app_sink_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_app_sink_template);
}
static void
/**
* GstAppSink::eos:
- * @appsink: the appsink element that emited the signal
+ * @appsink: the appsink element that emitted the signal
*
- * Signal that the end-of-stream has been reached. This signal is emited from
+ * Signal that the end-of-stream has been reached. This signal is emitted from
* the steaming thread.
*/
gst_app_sink_signals[SIGNAL_EOS] =
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
/**
* GstAppSink::new-preroll:
- * @appsink: the appsink element that emited the signal
+ * @appsink: the appsink element that emitted the signal
*
- * Signal that a new preroll buffer is available.
+ * Signal that a new preroll buffer is available.
*
- * This signal is emited from the steaming thread and only when the
- * "emit-signals" property is %TRUE.
+ * This signal is emitted from the steaming thread and only when the
+ * "emit-signals" property is %TRUE.
*
* The new preroll buffer can be retrieved with the "pull-preroll" action
* signal or gst_app_sink_pull_preroll() either from this signal callback
* or from any other thread.
*
- * Note that this signal is only emited when the "emit-signals" property is
+ * Note that this signal is only emitted when the "emit-signals" property is
* set to %TRUE, which it is not by default for performance reasons.
*/
gst_app_sink_signals[SIGNAL_NEW_PREROLL] =
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
/**
* GstAppSink::new-buffer:
- * @appsink: the appsink element that emited the signal
+ * @appsink: the appsink element that emitted the signal
*
* Signal that a new buffer is available.
*
- * This signal is emited from the steaming thread and only when the
- * "emit-signals" property is %TRUE.
+ * This signal is emitted from the steaming thread and only when the
+ * "emit-signals" property is %TRUE.
*
* The new buffer can be retrieved with the "pull-buffer" action
* signal or gst_app_sink_pull_buffer() either from this signal callback
* or from any other thread.
*
- * Note that this signal is only emited when the "emit-signals" property is
+ * Note that this signal is only emitted when the "emit-signals" property is
* set to %TRUE, which it is not by default for performance reasons.
*/
gst_app_sink_signals[SIGNAL_NEW_BUFFER] =
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
/**
* GstAppSink::new-buffer-list:
- * @appsink: the appsink element that emited the signal
+ * @appsink: the appsink element that emitted the signal
*
* Signal that a new bufferlist is available.
*
- * This signal is emited from the steaming thread and only when the
- * "emit-signals" property is %TRUE.
+ * This signal is emitted from the steaming thread and only when the
+ * "emit-signals" property is %TRUE.
*
* The new buffer can be retrieved with the "pull-buffer-list" action
* signal or gst_app_sink_pull_buffer_list() either from this signal callback
* or from any other thread.
*
- * Note that this signal is only emited when the "emit-signals" property is
+ * Note that this signal is only emitted when the "emit-signals" property is
* set to %TRUE, which it is not by default for performance reasons.
*/
gst_app_sink_signals[SIGNAL_NEW_BUFFER_LIST] =
* when calling gst_app_sink_pull_buffer() or the "pull-buffer" action signal.
*
* If an EOS event was received before any buffers, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
*
* This function blocks until a preroll buffer or EOS is received or the appsink
- * element is set to the READY/NULL state.
+ * element is set to the READY/NULL state.
*
* Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
*/
* @appsink: the appsink element to emit this signal on
*
* This function blocks until a buffer or EOS becomes available or the appsink
- * element is set to the READY/NULL state.
+ * element is set to the READY/NULL state.
*
* This function will only return buffers when the appsink is in the PLAYING
* state. All rendered buffers will be put in a queue so that the application
- * can pull buffers at its own rate.
+ * can pull buffers at its own rate.
*
* Note that when the application does not pull buffers fast enough, the
* queued buffers could consume a lot of memory, especially when dealing with
* the "drop" and "max-buffers" properties.
*
* If an EOS event was received before any buffers, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
*
* Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
*/
* @appsink: the appsink element to emit this signal on
*
* This function blocks until a buffer list or EOS becomes available or the appsink
- * element is set to the READY/NULL state.
+ * element is set to the READY/NULL state.
*
* This function will only return bufferlists when the appsink is in the PLAYING
* state. All rendered bufferlists will be put in a queue so that the application
- * can pull bufferlists at its own rate.
+ * can pull bufferlists at its own rate.
*
* Note that when the application does not pull bufferlists fast enough, the
* queued bufferlists could consume a lot of memory, especially when dealing with
* the "drop" and "max-buffers" properties.
*
* If an EOS event was received before any buffers, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
*
* Returns: a #GstBufferList or NULL when the appsink is stopped or EOS.
*/
* Set the capabilities on the appsink element. This function takes
* a copy of the caps structure. After calling this method, the sink will only
* accept caps that match @caps. If @caps is non-fixed, you must check the caps
- * on the buffers to get the actual used caps.
+ * on the buffers to get the actual used caps.
*
* Since: 0.10.22
*/
*
* Check if appsink will emit the "new-preroll" and "new-buffer" signals.
*
- * Returns: %TRUE if @appsink is emiting the "new-preroll" and "new-buffer"
+ * Returns: %TRUE if @appsink is emitting the "new-preroll" and "new-buffer"
* signals.
*
* Since: 0.10.22
* when calling gst_app_sink_pull_buffer().
*
* If an EOS event was received before any buffers, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
*
* This function blocks until a preroll buffer or EOS is received or the appsink
- * element is set to the READY/NULL state.
+ * element is set to the READY/NULL state.
*
* Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
*
* @appsink: a #GstAppSink
*
* This function blocks until a buffer or EOS becomes available or the appsink
- * element is set to the READY/NULL state.
+ * element is set to the READY/NULL state.
*
* This function will only return buffers when the appsink is in the PLAYING
* state. All rendered buffers will be put in a queue so that the application
* especially when dealing with raw video frames.
*
* If an EOS event was received before any buffers, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
*
* Returns: a #GstBuffer or NULL when the appsink is stopped or EOS.
*
* @appsink: a #GstAppSink
*
* This function blocks until a buffer list or EOS becomes available or the
- * appsink element is set to the READY/NULL state.
+ * appsink element is set to the READY/NULL state.
*
* This function will only return buffer lists when the appsink is in the
* PLAYING state. All rendered buffer lists will be put in a queue so that
* video frames.
*
* If an EOS event was received before any buffer lists, this function returns
- * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+ * %NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
*
* Returns: a #GstBufferList or NULL when the appsink is stopped or EOS.
*/
* This is an alternative to using the signals, it has lower overhead and is thus
* less expensive, but also less flexible.
*
- * If callbacks are installed, no signals will be emited for performance
+ * If callbacks are installed, no signals will be emitted for performance
* reasons.
*
* Since: 0.10.23
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
-
-/**
- * SECTION:element-appsrc
- *
- * The appsrc element can be used by applications to insert data into a
- * GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides
- * external API functions.
- *
- * For the documentation of the API, please see the
- * <link linkend="gst-plugins-base-libs-appsrc">libgstapp</link> section in the
- * GStreamer Plugins Base Libraries documentation.
- *
- * Since: 0.10.22
- */
-
/**
* SECTION:gstappsrc
* @short_description: Easy way for applications to inject buffers into a
* byte buffers.
*
* The main way of handing data to the appsrc element is by calling the
- * gst_app_src_push_buffer() method or by emiting the push-buffer action signal.
+ * gst_app_src_push_buffer() method or by emitting the push-buffer action signal.
* This will put the buffer onto a queue from which appsrc will read from in its
* streaming thread. It is important to note that data transport will not happen
* from the thread that performed the push-buffer call.
* block the push-buffer method until free data becomes available again.
*
* When the internal queue is running out of data, the "need-data" signal is
- * emited, which signals the application that it should start pushing more data
+ * emitted, which signals the application that it should start pushing more data
* into appsrc.
*
* In addition to the "need-data" and "enough-data" signals, appsrc can emit the
* These signals allow the application to operate the appsrc in two different
* ways:
*
- * The push model, in which the application repeadedly calls the push-buffer method
+ * The push model, in which the application repeatedly calls the push-buffer method
* with a new buffer. Optionally, the queue size in the appsrc can be controlled
* with the enough-data and need-data signals by respectively stopping/starting
* the push-buffer calls. This is a typical mode of operation for the
* For the stream and seekable modes, setting this property is optional but
* recommended.
*
- * When the application is finished pushing data into appsrc, it should call
+ * When the application is finished pushing data into appsrc, it should call
* gst_app_src_end_of_stream() or emit the end-of-stream action signal. After
* this call, no more buffers can be pushed into appsrc until a flushing seek
* happened or the state of the appsrc has gone through READY.
#include "gstapp-marshal.h"
#include "gstappsrc.h"
+#include "gst/glib-compat-private.h"
+
struct _GstAppSrcPrivate
{
GCond *cond;
static void gst_app_src_set_latencies (GstAppSrc * appsrc,
gboolean do_min, guint64 min, gboolean do_max, guint64 max);
+static GstCaps *gst_app_src_internal_get_caps (GstBaseSrc * bsrc);
static GstFlowReturn gst_app_src_create (GstBaseSrc * bsrc,
guint64 offset, guint size, GstBuffer ** buf);
static gboolean gst_app_src_start (GstBaseSrc * bsrc);
"Generic/Source", "Allow the application to feed buffers to a pipeline",
"David Schleef <ds@schleef.org>, Wim Taymans <wim.taymans@gmail.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_app_src_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_app_src_template);
}
static void
/**
* GstAppSrc::block
*
- * When max-bytes are queued and after the enough-data signal has been emited,
+ * When max-bytes are queued and after the enough-data signal has been emitted,
* block any further push-buffer calls until the amount of queued bytes drops
* below the max-bytes limit.
*/
/**
* GstAppSrc::need-data:
- * @appsrc: the appsrc element that emited the signal
+ * @appsrc: the appsrc element that emitted the signal
* @length: the amount of bytes needed.
*
* Signal that the source needs more data. In the callback or from another
/**
* GstAppSrc::enough-data:
- * @appsrc: the appsrc element that emited the signal
+ * @appsrc: the appsrc element that emitted the signal
*
* Signal that the source has enough data. It is recommended that the
* application stops calling push-buffer until the need-data signal is
- * emited again to avoid excessive buffer queueing.
+ * emitted again to avoid excessive buffer queueing.
*/
gst_app_src_signals[SIGNAL_ENOUGH_DATA] =
g_signal_new ("enough-data", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
/**
* GstAppSrc::seek-data:
- * @appsrc: the appsrc element that emited the signal
+ * @appsrc: the appsrc element that emitted the signal
* @offset: the offset to seek to
*
* Seek to the given offset. The next push-buffer should produce buffers from
* GstAppSrc::end-of-stream:
* @appsrc: the appsrc
*
- * Notify @appsrc that no more buffer are available.
+ * Notify @appsrc that no more buffer are available.
*/
gst_app_src_signals[SIGNAL_END_OF_STREAM] =
g_signal_new ("end-of-stream", G_TYPE_FROM_CLASS (klass),
end_of_stream), NULL, NULL, __gst_app_marshal_ENUM__VOID,
GST_TYPE_FLOW_RETURN, 0, G_TYPE_NONE);
+ basesrc_class->get_caps = gst_app_src_internal_get_caps;
basesrc_class->create = gst_app_src_create;
basesrc_class->start = gst_app_src_start;
basesrc_class->stop = gst_app_src_stop;
G_OBJECT_CLASS (parent_class)->finalize (obj);
}
+static GstCaps *
+gst_app_src_internal_get_caps (GstBaseSrc * bsrc)
+{
+ return gst_app_src_get_caps (GST_APP_SRC_CAST (bsrc));
+}
+
static void
gst_app_src_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
* random-access mode (where a buffer is normally pushed in the above
* signal) we can still be empty because the pushed buffer got flushed or
* when the application pushes the requested buffer later, we support both
- * possiblities. */
+ * possibilities. */
if (!g_queue_is_empty (priv->queue))
continue;
* a copy of the caps structure. After calling this method, the source will
* only produce caps that match @caps. @caps must be fixed and the caps on the
* buffers must match the caps or left NULL.
- *
+ *
* Since: 0.10.22
*/
void
* Get the configured caps on @appsrc.
*
* Returns: the #GstCaps produced by the source. gst_caps_unref() after usage.
- *
+ *
* Since: 0.10.22
*/
GstCaps *
* @size: the size to set
*
* Set the size of the stream in bytes. A value of -1 means that the size is
- * not known.
- *
+ * not known.
+ *
* Since: 0.10.22
*/
void
* @appsrc: a #GstAppSrc
*
* Get the size of the stream in bytes. A value of -1 means that the size is
- * not known.
+ * not known.
*
* Returns: the size of the stream previously set with gst_app_src_set_size();
- *
+ *
* Since: 0.10.22
*/
gint64
* Set the stream type on @appsrc. For seekable streams, the "seek" signal must
* be connected to.
*
- * A stream_type stream
- *
+ * A stream_type stream
+ *
* Since: 0.10.22
*/
void
* with gst_app_src_set_stream_type().
*
* Returns: the stream type.
- *
+ *
* Since: 0.10.22
*/
GstAppStreamType
* Set the maximum amount of bytes that can be queued in @appsrc.
* After the maximum amount of bytes are queued, @appsrc will emit the
* "enough-data" signal.
- *
+ *
* Since: 0.10.22
*/
void
* Get the maximum amount of bytes that can be queued in @appsrc.
*
* Returns: The maximum amount of bytes that can be queued.
- *
+ *
* Since: 0.10.22
*/
guint64
*
* Configure the @min and @max latency in @src. If @min is set to -1, the
* default latency calculations for pseudo-live sources will be used.
- *
+ *
* Since: 0.10.22
*/
void
* @max: the min latency
*
* Retrieve the min and max latencies in @min and @max respectively.
- *
+ *
* Since: 0.10.22
*/
void
*
* Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
*
- * Returns: %TRUE if @appsrc is emiting the "new-preroll" and "new-buffer"
+ * Returns: %TRUE if @appsrc is emitting the "new-preroll" and "new-buffer"
* signals.
*
* Since: 0.10.23
* Returns: #GST_FLOW_OK when the buffer was successfuly queued.
* #GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING.
* #GST_FLOW_UNEXPECTED when EOS occured.
- *
+ *
* Since: 0.10.22
*/
GstFlowReturn
*
* Returns: #GST_FLOW_OK when the EOS was successfuly queued.
* #GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING.
- *
+ *
* Since: 0.10.22
*/
GstFlowReturn
priv = appsrc->priv;
g_mutex_lock (priv->mutex);
- /* can't accept buffers when we are flushing. We can accept them when we are
+ /* can't accept buffers when we are flushing. We can accept them when we are
* EOS although it will not do anything. */
if (priv->flushing)
goto flushing;
* This is an alternative to using the signals, it has lower overhead and is thus
* less expensive, but also less flexible.
*
- * If callbacks are installed, no signals will be emited for performance
+ * If callbacks are installed, no signals will be emitted for performance
* reasons.
*
* Since: 0.10.23
* and when it is set to -1, any number of bytes can be pushed into @appsrc.
* @enough_data: Called when appsrc has enough data. It is recommended that the
* application stops calling push-buffer until the need_data callback is
- * emited again to avoid excessive buffer queueing.
+ * emitted again to avoid excessive buffer queueing.
* @seek_data: Called when a seek should be performed to the offset.
* The next push-buffer should produce buffers from the new @offset.
* This callback is only called for seekable stream types.
CLEANFILES = $(BUILT_SOURCES)
+# FIXME 0.11: rename GstBaseAudioSink to GstAudioBaseSink or merge with GstAudioSink
libgstaudio_@GST_MAJORMINOR@_la_SOURCES = \
audio.c \
gstringbuffer.c \
gstaudioclock.c \
mixerutils.c \
multichannel.c \
+ gstaudiodecoder.c \
+ gstaudioencoder.c \
gstbaseaudiosink.c \
gstbaseaudiosrc.c \
gstaudiofilter.c \
gstaudiosink.c \
- gstaudiosrc.c
+ gstaudiosrc.c \
+ gstaudioiec61937.c
nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES = $(built_sources) $(built_headers)
libgstaudio_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/audio
gstringbuffer.h \
gstaudioclock.h \
gstaudiofilter.h \
+ gstaudiodecoder.h \
+ gstaudioencoder.h \
gstbaseaudiosink.h \
gstbaseaudiosrc.h \
gstaudiosink.h \
gstaudiosrc.h \
mixerutils.h \
- multichannel.h
+ multichannel.h \
+ gstaudioiec61937.h
nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
audio-enumtypes.h
libgstaudio_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstaudio_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la
+libgstaudio_@GST_MAJORMINOR@_la_LIBADD = \
+ $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+ $(GST_BASE_LIBS) $(GST_LIBS)
libgstaudio_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-noinst_PROGRAMS = testchannels
-testchannels_SOURCES = testchannels.c
-testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-testchannels_LDADD = $(GST_LIBS)
-
include $(top_srcdir)/common/gst-glib-gen.mak
if HAVE_INTROSPECTION
-# 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.
-
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = testchannels$(EXEEXT)
DIST_COMMON = $(libgstaudio_@GST_MAJORMINOR@include_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/common/gst-glib-gen.mak TODO
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" \
"$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
-libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la
+libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS = \
libgstaudio_@GST_MAJORMINOR@_la-audio.lo \
libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo \
libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo \
libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo \
libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo \
+ libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo \
+ libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo \
libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo \
libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo \
libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo \
libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo \
- libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo
+ libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo \
+ libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo
am__objects_1 = libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo
am__objects_2 =
nodist_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_1) \
libgstaudio_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) \
$(nodist_libgstaudio_@GST_MAJORMINOR@_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
libgstaudio_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
$(libgstaudio_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
-PROGRAMS = $(noinst_PROGRAMS)
-am_testchannels_OBJECTS = testchannels-testchannels.$(OBJEXT)
-testchannels_OBJECTS = $(am_testchannels_OBJECTS)
-testchannels_DEPENDENCIES = $(am__DEPENDENCIES_1)
-testchannels_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testchannels_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
$(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 = $(libgstaudio_@GST_MAJORMINOR@_la_SOURCES) \
- $(nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES) \
- $(testchannels_SOURCES)
-DIST_SOURCES = $(libgstaudio_@GST_MAJORMINOR@_la_SOURCES) \
- $(testchannels_SOURCES)
+ $(nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES)
+DIST_SOURCES = $(libgstaudio_@GST_MAJORMINOR@_la_SOURCES)
DATA = $(gir_DATA) $(typelibs_DATA)
HEADERS = $(libgstaudio_@GST_MAJORMINOR@include_HEADERS) \
$(nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
libgstaudio-@GST_MAJORMINOR@.la
CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
+
+# FIXME 0.11: rename GstBaseAudioSink to GstAudioBaseSink or merge with GstAudioSink
libgstaudio_@GST_MAJORMINOR@_la_SOURCES = \
audio.c \
gstringbuffer.c \
gstaudioclock.c \
mixerutils.c \
multichannel.c \
+ gstaudiodecoder.c \
+ gstaudioencoder.c \
gstbaseaudiosink.c \
gstbaseaudiosrc.c \
gstaudiofilter.c \
gstaudiosink.c \
- gstaudiosrc.c
+ gstaudiosrc.c \
+ gstaudioiec61937.c
nodist_libgstaudio_@GST_MAJORMINOR@_la_SOURCES = $(built_sources) $(built_headers)
libgstaudio_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/audio
gstringbuffer.h \
gstaudioclock.h \
gstaudiofilter.h \
+ gstaudiodecoder.h \
+ gstaudioencoder.h \
gstbaseaudiosink.h \
gstbaseaudiosrc.h \
gstaudiosink.h \
gstaudiosrc.h \
mixerutils.h \
- multichannel.h
+ multichannel.h \
+ gstaudioiec61937.h
nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS = \
audio-enumtypes.h
libgstaudio_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstaudio_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) \
- $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la
+libgstaudio_@GST_MAJORMINOR@_la_LIBADD = \
+ $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+ $(GST_BASE_LIBS) $(GST_LIBS)
libgstaudio_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
-testchannels_SOURCES = testchannels.c
-testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-testchannels_LDADD = $(GST_LIBS)
enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstAudio-@GST_MAJORMINOR@.gir
@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, \
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstaudio-@GST_MAJORMINOR@.la: $(libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) $(libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstaudio-@GST_MAJORMINOR@.la: $(libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) $(libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstaudio_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstaudio_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstaudio_@GST_MAJORMINOR@_la_OBJECTS) $(libgstaudio_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-testchannels$(EXEEXT): $(testchannels_OBJECTS) $(testchannels_DEPENDENCIES)
- @rm -f testchannels$(EXEEXT)
- $(AM_V_CCLD)$(testchannels_LINK) $(testchannels_OBJECTS) $(testchannels_LDADD) $(LIBS)
-
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchannels-testchannels.Po@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 $@ $<
libgstaudio_@GST_MAJORMINOR@_la-audio.lo: audio.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-audio.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio.lo `test -f 'audio.c' || echo '$(srcdir)/'`audio.c
libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo: gstringbuffer.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo `test -f 'gstringbuffer.c' || echo '$(srcdir)/'`gstringbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstringbuffer.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstringbuffer.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo `test -f 'gstringbuffer.c' || echo '$(srcdir)/'`gstringbuffer.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstringbuffer.lo `test -f 'gstringbuffer.c' || echo '$(srcdir)/'`gstringbuffer.c
libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo: gstaudioclock.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo `test -f 'gstaudioclock.c' || echo '$(srcdir)/'`gstaudioclock.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudioclock.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudioclock.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo `test -f 'gstaudioclock.c' || echo '$(srcdir)/'`gstaudioclock.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioclock.lo `test -f 'gstaudioclock.c' || echo '$(srcdir)/'`gstaudioclock.c
libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo: mixerutils.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-mixerutils.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mixerutils.c' object='libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixerutils.c' object='libgstaudio_@GST_MAJORMINOR@_la-mixerutils.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-mixerutils.lo `test -f 'mixerutils.c' || echo '$(srcdir)/'`mixerutils.c
libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo: multichannel.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo `test -f 'multichannel.c' || echo '$(srcdir)/'`multichannel.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-multichannel.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='multichannel.c' object='libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='multichannel.c' object='libgstaudio_@GST_MAJORMINOR@_la-multichannel.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo `test -f 'multichannel.c' || echo '$(srcdir)/'`multichannel.c
+
+libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo: gstaudiodecoder.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo `test -f 'gstaudiodecoder.c' || echo '$(srcdir)/'`gstaudiodecoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudiodecoder.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiodecoder.lo `test -f 'gstaudiodecoder.c' || echo '$(srcdir)/'`gstaudiodecoder.c
+
+libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo: gstaudioencoder.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo `test -f 'gstaudioencoder.c' || echo '$(srcdir)/'`gstaudioencoder.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudioencoder.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-multichannel.lo `test -f 'multichannel.c' || echo '$(srcdir)/'`multichannel.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioencoder.lo `test -f 'gstaudioencoder.c' || echo '$(srcdir)/'`gstaudioencoder.c
libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo: gstbaseaudiosink.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo `test -f 'gstbaseaudiosink.c' || echo '$(srcdir)/'`gstbaseaudiosink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbaseaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbaseaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo `test -f 'gstbaseaudiosink.c' || echo '$(srcdir)/'`gstbaseaudiosink.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosink.lo `test -f 'gstbaseaudiosink.c' || echo '$(srcdir)/'`gstbaseaudiosink.c
libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo: gstbaseaudiosrc.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo `test -f 'gstbaseaudiosrc.c' || echo '$(srcdir)/'`gstbaseaudiosrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbaseaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbaseaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo `test -f 'gstbaseaudiosrc.c' || echo '$(srcdir)/'`gstbaseaudiosrc.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstbaseaudiosrc.lo `test -f 'gstbaseaudiosrc.c' || echo '$(srcdir)/'`gstbaseaudiosrc.c
libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo: gstaudiofilter.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo `test -f 'gstaudiofilter.c' || echo '$(srcdir)/'`gstaudiofilter.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudiofilter.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudiofilter.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo `test -f 'gstaudiofilter.c' || echo '$(srcdir)/'`gstaudiofilter.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiofilter.lo `test -f 'gstaudiofilter.c' || echo '$(srcdir)/'`gstaudiofilter.c
libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo: gstaudiosink.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo `test -f 'gstaudiosink.c' || echo '$(srcdir)/'`gstaudiosink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudiosink.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo `test -f 'gstaudiosink.c' || echo '$(srcdir)/'`gstaudiosink.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosink.lo `test -f 'gstaudiosink.c' || echo '$(srcdir)/'`gstaudiosink.c
libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo: gstaudiosrc.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo `test -f 'gstaudiosrc.c' || echo '$(srcdir)/'`gstaudiosrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudiosrc.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo `test -f 'gstaudiosrc.c' || echo '$(srcdir)/'`gstaudiosrc.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudiosrc.lo `test -f 'gstaudiosrc.c' || echo '$(srcdir)/'`gstaudiosrc.c
+
+libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo: gstaudioiec61937.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo `test -f 'gstaudioiec61937.c' || echo '$(srcdir)/'`gstaudioiec61937.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudioiec61937.c' object='libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-gstaudioiec61937.lo `test -f 'gstaudioiec61937.c' || echo '$(srcdir)/'`gstaudioiec61937.c
libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo: audio-enumtypes.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Tpo -c -o libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo `test -f 'audio-enumtypes.c' || echo '$(srcdir)/'`audio-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Tpo $(DEPDIR)/libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio-enumtypes.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo `test -f 'audio-enumtypes.c' || echo '$(srcdir)/'`audio-enumtypes.c
-
-testchannels-testchannels.o: testchannels.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.o -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testchannels.c' object='testchannels-testchannels.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio-enumtypes.c' object='libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
-
-testchannels-testchannels.obj: testchannels.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.obj -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testchannels.c' object='testchannels-testchannels.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) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
+@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) $(libgstaudio_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_MAJORMINOR@_la-audio-enumtypes.lo `test -f 'audio-enumtypes.c' || echo '$(srcdir)/'`audio-enumtypes.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstaudio_@GST_MAJORMINOR@includeHEADERS: $(libgstaudio_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstaudio_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstaudio_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstaudio_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
install-nodist_libgstaudio_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstaudio_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(nodist_libgstaudio_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstaudio_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)" "$(DESTDIR)$(libgstaudio_@GST_MAJORMINOR@includedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
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:
clean: clean-am
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- clean-noinstPROGRAMS mostlyclean-am
+ mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
.MAKE: all check install install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
- distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-girDATA install-html install-html-am \
- install-info install-info-am install-libLTLIBRARIES \
+ clean-libLTLIBRARIES clean-libtool ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-girDATA \
+ install-html install-html-am install-info install-info-am \
+ install-libLTLIBRARIES \
install-libgstaudio_@GST_MAJORMINOR@includeHEADERS install-man \
install-nodist_libgstaudio_@GST_MAJORMINOR@includeHEADERS \
install-pdf install-pdf-am install-ps install-ps-am \
#include <gst/gststructure.h>
+#include <string.h>
+
/**
* gst_audio_frame_byte_size:
* @pad: the #GstPad to get the caps from
}
#endif /* GST_REMOVE_DEPRECATED */
+#define SINT (GST_AUDIO_FORMAT_FLAG_INTEGER | GST_AUDIO_FORMAT_FLAG_SIGNED)
+#define UINT (GST_AUDIO_FORMAT_FLAG_INTEGER)
+
+#define MAKE_FORMAT(str,flags,end,width,depth,silent) \
+ { GST_AUDIO_FORMAT_ ##str, G_STRINGIFY(str), flags, end, width, depth, silent }
+
+#define SILENT_0 { 0, 0, 0, 0, 0, 0, 0, 0 }
+#define SILENT_U8 { 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 }
+#define SILENT_U16LE { 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80 }
+#define SILENT_U16BE { 0x80, 0x00, 0x80, 0x00, 0x80, 0x00, 0x80, 0x00 }
+#define SILENT_U24_32LE { 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00 }
+#define SILENT_U24_32BE { 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00 }
+#define SILENT_U32LE { 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80 }
+#define SILENT_U32BE { 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 }
+#define SILENT_U24LE { 0x00, 0x00, 0x80, 0x00, 0x00, 0x80 }
+#define SILENT_U24BE { 0x80, 0x00, 0x00, 0x80, 0x00, 0x00 }
+#define SILENT_U20LE { 0x00, 0x00, 0x08, 0x00, 0x00, 0x08 }
+#define SILENT_U20BE { 0x08, 0x00, 0x00, 0x08, 0x00, 0x00 }
+#define SILENT_U18LE { 0x00, 0x00, 0x02, 0x00, 0x00, 0x02 }
+#define SILENT_U18BE { 0x02, 0x00, 0x00, 0x02, 0x00, 0x00 }
+
+static GstAudioFormatInfo formats[] = {
+ {GST_AUDIO_FORMAT_UNKNOWN, "UNKNOWN", 0, 0, 0, 0},
+ /* 8 bit */
+ MAKE_FORMAT (S8, SINT, 0, 8, 8, SILENT_0),
+ MAKE_FORMAT (U8, UINT, 0, 8, 8, SILENT_U8),
+ /* 16 bit */
+ MAKE_FORMAT (S16LE, SINT, G_LITTLE_ENDIAN, 16, 16, SILENT_0),
+ MAKE_FORMAT (S16BE, SINT, G_BIG_ENDIAN, 16, 16, SILENT_0),
+ MAKE_FORMAT (U16LE, UINT, G_LITTLE_ENDIAN, 16, 16, SILENT_U16LE),
+ MAKE_FORMAT (U16BE, UINT, G_BIG_ENDIAN, 16, 16, SILENT_U16BE),
+ /* 24 bit in low 3 bytes of 32 bits */
+ MAKE_FORMAT (S24_32LE, SINT, G_LITTLE_ENDIAN, 32, 24, SILENT_0),
+ MAKE_FORMAT (S24_32BE, SINT, G_BIG_ENDIAN, 32, 24, SILENT_0),
+ MAKE_FORMAT (U24_32LE, UINT, G_LITTLE_ENDIAN, 32, 24, SILENT_U24_32LE),
+ MAKE_FORMAT (U24_32BE, UINT, G_BIG_ENDIAN, 32, 24, SILENT_U24_32BE),
+ /* 32 bit */
+ MAKE_FORMAT (S32LE, SINT, G_LITTLE_ENDIAN, 32, 32, SILENT_0),
+ MAKE_FORMAT (S32BE, SINT, G_BIG_ENDIAN, 32, 32, SILENT_0),
+ MAKE_FORMAT (U32LE, UINT, G_LITTLE_ENDIAN, 32, 32, SILENT_U32LE),
+ MAKE_FORMAT (U32BE, UINT, G_BIG_ENDIAN, 32, 32, SILENT_U32BE),
+ /* 24 bit in 3 bytes */
+ MAKE_FORMAT (S24LE, SINT, G_LITTLE_ENDIAN, 24, 24, SILENT_0),
+ MAKE_FORMAT (S24BE, SINT, G_BIG_ENDIAN, 24, 24, SILENT_0),
+ MAKE_FORMAT (U24LE, UINT, G_LITTLE_ENDIAN, 24, 24, SILENT_U24LE),
+ MAKE_FORMAT (U24BE, UINT, G_BIG_ENDIAN, 24, 24, SILENT_U24BE),
+ /* 20 bit in 3 bytes */
+ MAKE_FORMAT (S20LE, SINT, G_LITTLE_ENDIAN, 24, 20, SILENT_0),
+ MAKE_FORMAT (S20BE, SINT, G_BIG_ENDIAN, 24, 20, SILENT_0),
+ MAKE_FORMAT (U20LE, UINT, G_LITTLE_ENDIAN, 24, 20, SILENT_U20LE),
+ MAKE_FORMAT (U20BE, UINT, G_BIG_ENDIAN, 24, 20, SILENT_U20BE),
+ /* 18 bit in 3 bytes */
+ MAKE_FORMAT (S18LE, SINT, G_LITTLE_ENDIAN, 24, 18, SILENT_0),
+ MAKE_FORMAT (S18BE, SINT, G_BIG_ENDIAN, 24, 18, SILENT_0),
+ MAKE_FORMAT (U18LE, UINT, G_LITTLE_ENDIAN, 24, 18, SILENT_U18LE),
+ MAKE_FORMAT (U18BE, UINT, G_BIG_ENDIAN, 24, 18, SILENT_U18BE),
+ /* float */
+ MAKE_FORMAT (F32LE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_LITTLE_ENDIAN, 32, 32,
+ SILENT_0),
+ MAKE_FORMAT (F32BE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_BIG_ENDIAN, 32, 32,
+ SILENT_0),
+ MAKE_FORMAT (F64LE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_LITTLE_ENDIAN, 64, 64,
+ SILENT_0),
+ MAKE_FORMAT (F64BE, GST_AUDIO_FORMAT_FLAG_FLOAT, G_BIG_ENDIAN, 64, 64,
+ SILENT_0)
+};
+
+static GstAudioFormat
+gst_audio_format_from_caps_structure (const GstStructure * s)
+{
+ gint endianness, width, depth;
+ guint i;
+
+ if (gst_structure_has_name (s, "audio/x-raw-int")) {
+ gboolean sign;
+
+ if (!gst_structure_get_boolean (s, "signed", &sign))
+ goto missing_field_signed;
+
+ if (!gst_structure_get_int (s, "endianness", &endianness))
+ goto missing_field_endianness;
+
+ if (!gst_structure_get_int (s, "width", &width))
+ goto missing_field_width;
+
+ if (!gst_structure_get_int (s, "depth", &depth))
+ goto missing_field_depth;
+
+ for (i = 0; i < G_N_ELEMENTS (formats); i++) {
+ if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (&formats[i]) &&
+ sign == GST_AUDIO_FORMAT_INFO_IS_SIGNED (&formats[i]) &&
+ GST_AUDIO_FORMAT_INFO_ENDIANNESS (&formats[i]) == endianness &&
+ GST_AUDIO_FORMAT_INFO_WIDTH (&formats[i]) == width &&
+ GST_AUDIO_FORMAT_INFO_DEPTH (&formats[i]) == depth) {
+ return GST_AUDIO_FORMAT_INFO_FORMAT (&formats[i]);
+ }
+ }
+ } else if (gst_structure_has_name (s, "audio/x-raw-float")) {
+ /* fallbacks are for backwards compatibility (is this needed at all?) */
+ if (!gst_structure_get_int (s, "endianness", &endianness)) {
+ GST_WARNING ("float audio caps without endianness %" GST_PTR_FORMAT, s);
+ endianness = G_BYTE_ORDER;
+ }
+
+ if (!gst_structure_get_int (s, "width", &width)) {
+ GST_WARNING ("float audio caps without width %" GST_PTR_FORMAT, s);
+ width = 32;
+ }
+
+ for (i = 0; i < G_N_ELEMENTS (formats); i++) {
+ if (GST_AUDIO_FORMAT_INFO_IS_FLOAT (&formats[i]) &&
+ GST_AUDIO_FORMAT_INFO_ENDIANNESS (&formats[i]) == endianness &&
+ GST_AUDIO_FORMAT_INFO_WIDTH (&formats[i]) == width) {
+ return GST_AUDIO_FORMAT_INFO_FORMAT (&formats[i]);
+ }
+ }
+ }
+
+ /* no match */
+ return GST_AUDIO_FORMAT_UNKNOWN;
+
+missing_field_signed:
+ {
+ GST_ERROR ("missing 'signed' field in audio caps %" GST_PTR_FORMAT, s);
+ return GST_AUDIO_FORMAT_UNKNOWN;
+ }
+missing_field_endianness:
+ {
+ GST_ERROR ("missing 'endianness' field in audio caps %" GST_PTR_FORMAT, s);
+ return GST_AUDIO_FORMAT_UNKNOWN;
+ }
+missing_field_depth:
+ {
+ GST_ERROR ("missing 'depth' field in audio caps %" GST_PTR_FORMAT, s);
+ return GST_AUDIO_FORMAT_UNKNOWN;
+ }
+missing_field_width:
+ {
+ GST_ERROR ("missing 'width' field in audio caps %" GST_PTR_FORMAT, s);
+ return GST_AUDIO_FORMAT_UNKNOWN;
+ }
+}
+
+/* FIXME: remove these if we don't actually go for deep alloc positions */
+void
+gst_audio_info_init (GstAudioInfo * info)
+{
+ memset (info, 0, sizeof (GstAudioInfo));
+}
+
+void
+gst_audio_info_clear (GstAudioInfo * info)
+{
+ memset (info, 0, sizeof (GstAudioInfo));
+}
+
+GstAudioInfo *
+gst_audio_info_copy (GstAudioInfo * info)
+{
+ return (GstAudioInfo *) g_slice_copy (sizeof (GstAudioInfo), info);
+}
+
+void
+gst_audio_info_free (GstAudioInfo * info)
+{
+ g_slice_free (GstAudioInfo, info);
+}
+
+static void
+gst_audio_info_set_format (GstAudioInfo * info, GstAudioFormat format,
+ gint rate, gint channels)
+{
+ const GstAudioFormatInfo *finfo;
+
+ g_return_if_fail (info != NULL);
+ g_return_if_fail (format != GST_AUDIO_FORMAT_UNKNOWN);
+
+ finfo = &formats[format];
+
+ info->flags = 0;
+ info->finfo = finfo;
+ info->rate = rate;
+ info->channels = channels;
+ info->bpf = (finfo->width * channels) / 8;
+}
+
+/* from multichannel.c */
+void priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info);
+
+/**
+ * gst_audio_info_from_caps:
+ * @info: a #GstAudioInfo
+ * @caps: a #GstCaps
+ *
+ * Parse @caps and update @info.
+ *
+ * Returns: TRUE if @caps could be parsed
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_info_from_caps (GstAudioInfo * info, const GstCaps * caps)
+{
+ GstStructure *str;
+ GstAudioFormat format;
+ gint rate, channels;
+ const GValue *pos_val_arr, *pos_val_entry;
+ gint i;
+
+ g_return_val_if_fail (info != NULL, FALSE);
+ g_return_val_if_fail (caps != NULL, FALSE);
+ g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+
+ GST_DEBUG ("parsing caps %" GST_PTR_FORMAT, caps);
+
+ str = gst_caps_get_structure (caps, 0);
+
+ format = gst_audio_format_from_caps_structure (str);
+ if (format == GST_AUDIO_FORMAT_UNKNOWN)
+ goto unknown_format;
+
+ if (!gst_structure_get_int (str, "rate", &rate))
+ goto no_rate;
+ if (!gst_structure_get_int (str, "channels", &channels))
+ goto no_channels;
+
+ gst_audio_info_set_format (info, format, rate, channels);
+
+ pos_val_arr = gst_structure_get_value (str, "channel-positions");
+ if (pos_val_arr) {
+ if (channels <= G_N_ELEMENTS (info->position)) {
+ for (i = 0; i < channels; i++) {
+ pos_val_entry = gst_value_array_get_value (pos_val_arr, i);
+ info->position[i] = g_value_get_enum (pos_val_entry);
+ }
+ } else {
+ /* for that many channels, the positions are always NONE */
+ for (i = 0; i < G_N_ELEMENTS (info->position); i++)
+ info->position[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
+ info->flags |= GST_AUDIO_FLAG_DEFAULT_POSITIONS;
+ }
+ } else {
+ info->flags |= GST_AUDIO_FLAG_DEFAULT_POSITIONS;
+ priv_gst_audio_info_fill_default_channel_positions (info);
+ }
+
+ return TRUE;
+
+ /* ERROR */
+unknown_format:
+ {
+ GST_ERROR ("unknown format given");
+ return FALSE;
+ }
+no_rate:
+ {
+ GST_ERROR ("no rate property given");
+ return FALSE;
+ }
+no_channels:
+ {
+ GST_ERROR ("no channels property given");
+ return FALSE;
+ }
+}
+
+/**
+ * gst_audio_info_to_caps:
+ * @info: a #GstAudioInfo
+ *
+ * Convert the values of @info into a #GstCaps.
+ *
+ * Returns: (transfer full): the new #GstCaps containing the
+ * info of @info.
+ *
+ * Since: 0.10.36
+ */
+GstCaps *
+gst_audio_info_to_caps (GstAudioInfo * info)
+{
+ GstCaps *caps;
+
+ g_return_val_if_fail (info != NULL, NULL);
+ g_return_val_if_fail (info->finfo != NULL, NULL);
+ g_return_val_if_fail (info->finfo->format != GST_AUDIO_FORMAT_UNKNOWN, NULL);
+
+ if (GST_AUDIO_FORMAT_INFO_IS_INTEGER (info->finfo)) {
+ caps = gst_caps_new_simple ("audio/x-raw-int",
+ "width", G_TYPE_INT, GST_AUDIO_INFO_WIDTH (info),
+ "depth", G_TYPE_INT, GST_AUDIO_INFO_DEPTH (info),
+ "endianness", G_TYPE_INT,
+ GST_AUDIO_FORMAT_INFO_ENDIANNESS (info->finfo), "signed",
+ G_TYPE_BOOLEAN, GST_AUDIO_FORMAT_INFO_IS_SIGNED (info->finfo), "rate",
+ G_TYPE_INT, GST_AUDIO_INFO_RATE (info), "channels", G_TYPE_INT,
+ GST_AUDIO_INFO_CHANNELS (info), NULL);
+ } else if (GST_AUDIO_FORMAT_INFO_IS_FLOAT (info->finfo)) {
+ caps = gst_caps_new_simple ("audio/x-raw-float",
+ "width", G_TYPE_INT, GST_AUDIO_INFO_WIDTH (info),
+ "endianness", G_TYPE_INT,
+ GST_AUDIO_FORMAT_INFO_ENDIANNESS (info->finfo), "rate", G_TYPE_INT,
+ GST_AUDIO_INFO_RATE (info), "channels", G_TYPE_INT,
+ GST_AUDIO_INFO_CHANNELS (info), NULL);
+ } else {
+ GST_ERROR ("unknown audio format, neither integer nor float");
+ return NULL;
+ }
+
+ if (info->channels > 2) {
+ GValue pos_val_arr = { 0 }
+ , pos_val_entry = {
+ 0};
+ GstStructure *str;
+ gint i;
+
+ /* build gvaluearray from positions */
+ g_value_init (&pos_val_arr, GST_TYPE_ARRAY);
+ g_value_init (&pos_val_entry, GST_TYPE_AUDIO_CHANNEL_POSITION);
+ for (i = 0; i < info->channels; i++) {
+ /* if we have many many channels, all positions are NONE */
+ if (info->channels <= 64)
+ g_value_set_enum (&pos_val_entry, info->position[i]);
+ else
+ g_value_set_enum (&pos_val_entry, GST_AUDIO_CHANNEL_POSITION_NONE);
+
+ gst_value_array_append_value (&pos_val_arr, &pos_val_entry);
+ }
+ g_value_unset (&pos_val_entry);
+
+ /* add to structure */
+ str = gst_caps_get_structure (caps, 0);
+ gst_structure_set_value (str, "channel-positions", &pos_val_arr);
+ g_value_unset (&pos_val_arr);
+ }
+
+ return caps;
+}
+
+/**
+ * gst_audio_format_convert:
+ * @info: a #GstAudioInfo
+ * @src_format: #GstFormat of the @src_value
+ * @src_value: value to convert
+ * @dest_format: #GstFormat of the @dest_value
+ * @dest_value: pointer to destination value
+ *
+ * Converts among various #GstFormat types. This function handles
+ * GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For
+ * raw audio, GST_FORMAT_DEFAULT corresponds to audio frames. This
+ * function can be used to handle pad queries of the type GST_QUERY_CONVERT.
+ *
+ * Returns: TRUE if the conversion was successful.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_info_convert (GstAudioInfo * info,
+ GstFormat src_fmt, gint64 src_val, GstFormat dest_fmt, gint64 * dest_val)
+{
+ gboolean res = TRUE;
+ gint bpf, rate;
+
+ GST_DEBUG ("converting value %" G_GINT64_FORMAT " from %s (%d) to %s (%d)",
+ src_val, gst_format_get_name (src_fmt), src_fmt,
+ gst_format_get_name (dest_fmt), dest_fmt);
+
+ if (src_fmt == dest_fmt || src_val == -1) {
+ *dest_val = src_val;
+ goto done;
+ }
+
+ /* get important info */
+ bpf = GST_AUDIO_INFO_BPF (info);
+ rate = GST_AUDIO_INFO_RATE (info);
+
+ if (bpf == 0 || rate == 0) {
+ GST_DEBUG ("no rate or bpf configured");
+ res = FALSE;
+ goto done;
+ }
+
+ switch (src_fmt) {
+ case GST_FORMAT_BYTES:
+ switch (dest_fmt) {
+ case GST_FORMAT_TIME:
+ *dest_val = GST_FRAMES_TO_CLOCK_TIME (src_val / bpf, rate);
+ break;
+ case GST_FORMAT_DEFAULT:
+ *dest_val = src_val / bpf;
+ break;
+ default:
+ res = FALSE;
+ break;
+ }
+ break;
+ case GST_FORMAT_DEFAULT:
+ switch (dest_fmt) {
+ case GST_FORMAT_TIME:
+ *dest_val = GST_FRAMES_TO_CLOCK_TIME (src_val, rate);
+ break;
+ case GST_FORMAT_BYTES:
+ *dest_val = src_val * bpf;
+ break;
+ default:
+ res = FALSE;
+ break;
+ }
+ break;
+ case GST_FORMAT_TIME:
+ switch (dest_fmt) {
+ case GST_FORMAT_DEFAULT:
+ *dest_val = GST_CLOCK_TIME_TO_FRAMES (src_val, rate);
+ break;
+ case GST_FORMAT_BYTES:
+ *dest_val = GST_CLOCK_TIME_TO_FRAMES (src_val, rate);
+ *dest_val *= bpf;
+ break;
+ default:
+ res = FALSE;
+ break;
+ }
+ break;
+ default:
+ res = FALSE;
+ break;
+ }
+done:
+ GST_DEBUG ("ret=%d result %" G_GINT64_FORMAT, res, *dest_val);
+
+ return res;
+}
+
/**
* gst_audio_buffer_clip:
* @buffer: The buffer to clip.
* @rate: sample rate.
* @frame_size: size of one audio frame in bytes.
*
- * Clip the the buffer to the given %GstSegment.
+ * Clip the buffer to the given %GstSegment.
*
* After calling this function the caller does not own a reference to
* @buffer anymore.
#ifndef __GST_AUDIO_AUDIO_H__
#define __GST_AUDIO_AUDIO_H__
+#include <gst/audio/multichannel.h>
+
G_BEGIN_DECLS
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+#define _GST_AUDIO_FORMAT_NE(fmt) GST_AUDIO_FORMAT_ ## fmt ## BE
+#elif G_BYTE_ORDER == G_LITTLE_ENDIAN
+#define _GST_AUDIO_FORMAT_NE(fmt) GST_AUDIO_FORMAT_ ## fmt ## LE
+#endif
+
+/**
+ * GstAudioFormat:
+ * @GST_AUDIO_FORMAT_UNKNOWN: unknown audio format
+ * @GST_AUDIO_FORMAT_S8: 8 bits in 8 bits, signed
+ * @GST_AUDIO_FORMAT_U8: 8 bits in 8 bits, unsigned
+ * @GST_AUDIO_FORMAT_S16LE: 16 bits in 16 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S16BE: 16 bits in 16 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U16LE: 16 bits in 16 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U16BE: 16 bits in 16 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S24_32LE: 24 bits in 32 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S24_32BE: 24 bits in 32 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U24_32LE: 24 bits in 32 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U24_32BE: 24 bits in 32 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S32LE: 32 bits in 32 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S32BE: 32 bits in 32 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U32LE: 32 bits in 32 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U32BE: 32 bits in 32 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S24LE: 24 bits in 24 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S24BE: 24 bits in 24 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U24LE: 24 bits in 24 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U24BE: 24 bits in 24 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S20LE: 20 bits in 24 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S20BE: 20 bits in 24 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U20LE: 20 bits in 24 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U20BE: 20 bits in 24 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_S18LE: 18 bits in 24 bits, signed, little endian
+ * @GST_AUDIO_FORMAT_S18BE: 18 bits in 24 bits, signed, big endian
+ * @GST_AUDIO_FORMAT_U18LE: 18 bits in 24 bits, unsigned, little endian
+ * @GST_AUDIO_FORMAT_U18BE: 18 bits in 24 bits, unsigned, big endian
+ * @GST_AUDIO_FORMAT_F32LE: 32-bit floating point samples, little endian
+ * @GST_AUDIO_FORMAT_F32BE: 32-bit floating point samples, big endian
+ * @GST_AUDIO_FORMAT_F64LE: 64-bit floating point samples, little endian
+ * @GST_AUDIO_FORMAT_F64BE: 64-bit floating point samples, big endian
+ * @GST_AUDIO_FORMAT_S16: 16 bits in 16 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U16: 16 bits in 16 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S24_32: 24 bits in 32 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U24_32: 24 bits in 32 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S32: 32 bits in 32 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U32: 32 bits in 32 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S24: 24 bits in 24 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U24: 24 bits in 24 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S20: 20 bits in 24 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U20: 20 bits in 24 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_S18: 18 bits in 24 bits, signed, native endianness
+ * @GST_AUDIO_FORMAT_U18: 18 bits in 24 bits, unsigned, native endianness
+ * @GST_AUDIO_FORMAT_F32: 32-bit floating point samples, native endianness
+ * @GST_AUDIO_FORMAT_F64: 64-bit floating point samples, native endianness
+ *
+ * Enum value describing the most common audio formats.
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+ GST_AUDIO_FORMAT_UNKNOWN,
+ /* 8 bit */
+ GST_AUDIO_FORMAT_S8,
+ GST_AUDIO_FORMAT_U8,
+ /* 16 bit */
+ GST_AUDIO_FORMAT_S16LE,
+ GST_AUDIO_FORMAT_S16BE,
+ GST_AUDIO_FORMAT_U16LE,
+ GST_AUDIO_FORMAT_U16BE,
+ /* 24 bit in low 3 bytes of 32 bits*/
+ GST_AUDIO_FORMAT_S24_32LE,
+ GST_AUDIO_FORMAT_S24_32BE,
+ GST_AUDIO_FORMAT_U24_32LE,
+ GST_AUDIO_FORMAT_U24_32BE,
+ /* 32 bit */
+ GST_AUDIO_FORMAT_S32LE,
+ GST_AUDIO_FORMAT_S32BE,
+ GST_AUDIO_FORMAT_U32LE,
+ GST_AUDIO_FORMAT_U32BE,
+ /* 24 bit in 3 bytes*/
+ GST_AUDIO_FORMAT_S24LE,
+ GST_AUDIO_FORMAT_S24BE,
+ GST_AUDIO_FORMAT_U24LE,
+ GST_AUDIO_FORMAT_U24BE,
+ /* 20 bit in 3 bytes*/
+ GST_AUDIO_FORMAT_S20LE,
+ GST_AUDIO_FORMAT_S20BE,
+ GST_AUDIO_FORMAT_U20LE,
+ GST_AUDIO_FORMAT_U20BE,
+ /* 18 bit in 3 bytes*/
+ GST_AUDIO_FORMAT_S18LE,
+ GST_AUDIO_FORMAT_S18BE,
+ GST_AUDIO_FORMAT_U18LE,
+ GST_AUDIO_FORMAT_U18BE,
+ /* float */
+ GST_AUDIO_FORMAT_F32LE,
+ GST_AUDIO_FORMAT_F32BE,
+ GST_AUDIO_FORMAT_F64LE,
+ GST_AUDIO_FORMAT_F64BE,
+ /* native endianness equivalents */
+ GST_AUDIO_FORMAT_S16 = _GST_AUDIO_FORMAT_NE(S16),
+ GST_AUDIO_FORMAT_U16 = _GST_AUDIO_FORMAT_NE(U16),
+ GST_AUDIO_FORMAT_S24_32 = _GST_AUDIO_FORMAT_NE(S24_32),
+ GST_AUDIO_FORMAT_U24_32 = _GST_AUDIO_FORMAT_NE(U24_32),
+ GST_AUDIO_FORMAT_S32 = _GST_AUDIO_FORMAT_NE(S32),
+ GST_AUDIO_FORMAT_U32 = _GST_AUDIO_FORMAT_NE(U32),
+ GST_AUDIO_FORMAT_S24 = _GST_AUDIO_FORMAT_NE(S24),
+ GST_AUDIO_FORMAT_U24 = _GST_AUDIO_FORMAT_NE(U24),
+ GST_AUDIO_FORMAT_S20 = _GST_AUDIO_FORMAT_NE(S20),
+ GST_AUDIO_FORMAT_U20 = _GST_AUDIO_FORMAT_NE(U20),
+ GST_AUDIO_FORMAT_S18 = _GST_AUDIO_FORMAT_NE(S18),
+ GST_AUDIO_FORMAT_U18 = _GST_AUDIO_FORMAT_NE(U18),
+ GST_AUDIO_FORMAT_F32 = _GST_AUDIO_FORMAT_NE(F32),
+ GST_AUDIO_FORMAT_F64 = _GST_AUDIO_FORMAT_NE(F64)
+} GstAudioFormat;
+
+/* FIXME: need GTypes */
+typedef struct _GstAudioFormatInfo GstAudioFormatInfo;
+typedef struct _GstAudioInfo GstAudioInfo;
+
+/**
+ * GstAudioFormatFlags:
+ * @GST_AUDIO_FORMAT_FLAG_INTEGER: integer samples
+ * @GST_AUDIO_FORMAT_FLAG_FLOAT: float samples
+ * @GST_AUDIO_FORMAT_FLAG_SIGNED: signed samples
+ * @GST_AUDIO_FORMAT_FLAG_COMPLEX: complex layout
+ *
+ * The different audio flags that a format info can have.
+ *
+ * Since: 0.10.36
+ */
+typedef enum
+{
+ GST_AUDIO_FORMAT_FLAG_INTEGER = (1 << 0),
+ GST_AUDIO_FORMAT_FLAG_FLOAT = (1 << 1),
+ GST_AUDIO_FORMAT_FLAG_SIGNED = (1 << 2),
+ GST_AUDIO_FORMAT_FLAG_COMPLEX = (1 << 4)
+} GstAudioFormatFlags;
+
+/**
+ * GstAudioFormatInfo:
+ * @format: #GstAudioFormat
+ * @name: string representation of the format
+ * @flags: #GstAudioFormatFlags
+ * @endianness: the endianness
+ * @width: amount of bits used for one sample
+ * @depth: amount of valid bits in @width
+ * @silence: @width/8 bytes with 1 silent sample
+ *
+ * Information for an audio format.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioFormatInfo {
+ GstAudioFormat format;
+ const gchar * name;
+ GstAudioFormatFlags flags;
+ gint endianness;
+ gint width;
+ gint depth;
+ guint8 silence[8];
+ /*< private >*/
+ guint padding_i[4];
+ gpointer padding_p[4];
+};
+
+#define GST_AUDIO_FORMAT_INFO_FORMAT(info) ((info)->format)
+#define GST_AUDIO_FORMAT_INFO_NAME(info) ((info)->name)
+#define GST_AUDIO_FORMAT_INFO_FLAGS(info) ((info)->flags)
+
+#define GST_AUDIO_FORMAT_INFO_IS_INTEGER(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_INTEGER)
+#define GST_AUDIO_FORMAT_INFO_IS_FLOAT(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_FLOAT)
+#define GST_AUDIO_FORMAT_INFO_IS_SIGNED(info) !!((info)->flags & GST_AUDIO_FORMAT_FLAG_SIGNED)
+
+#define GST_AUDIO_FORMAT_INFO_ENDIANNESS(info) ((info)->endianness)
+#define GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN(info) ((info)->endianness == G_LITTLE_ENDIAN)
+#define GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN(info) ((info)->endianness == G_BIG_ENDIAN)
+#define GST_AUDIO_FORMAT_INFO_WIDTH(info) ((info)->width)
+#define GST_AUDIO_FORMAT_INFO_DEPTH(info) ((info)->depth)
+
+const GstAudioFormatInfo * gst_audio_format_get_info (GstAudioFormat format) G_GNUC_CONST;
+
+/**
+ * GstAudioFlags:
+ * @GST_AUDIO_FLAG_NONE: no valid flag
+ * @GST_AUDIO_FLAG_DEFAULT_POSITIONS: unpositioned audio layout, position array
+ * contains the default layout (meaning that the channel layout was not
+ * explicitly specified in the caps)
+ *
+ * Extra audio flags
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+ GST_AUDIO_FLAG_NONE = 0,
+ GST_AUDIO_FLAG_DEFAULT_POSITIONS = (1 << 0)
+} GstAudioFlags;
+
+/**
+ * GstAudioInfo:
+ * @finfo: the format info of the audio
+ * @flags: additional audio flags
+ * @rate: the audio sample rate
+ * @channels: the number of channels
+ * @bpf: the number of bytes for one frame, this is the size of one
+ * sample * @channels
+ * @position: the position for each channel (assume all NONE for >64 channels)
+ *
+ * Information describing audio properties. This information can be filled
+ * in from GstCaps with gst_audio_info_from_caps().
+ *
+ * Use the provided macros to access the info in this structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioInfo {
+ const GstAudioFormatInfo *finfo;
+ GstAudioFlags flags;
+ gint rate;
+ gint channels;
+ gint bpf;
+ GstAudioChannelPosition position[64];
+};
+
+#define GST_AUDIO_INFO_IS_VALID(i) ((i)->finfo != NULL && (i)->rate > 0 && (i)->channels > 0 && (i)->bpf > 0)
+
+#define GST_AUDIO_INFO_FORMAT(i) (GST_AUDIO_FORMAT_INFO_FORMAT((i)->finfo))
+#define GST_AUDIO_INFO_NAME(i) (GST_AUDIO_FORMAT_INFO_NAME((i)->finfo))
+#define GST_AUDIO_INFO_WIDTH(i) (GST_AUDIO_FORMAT_INFO_WIDTH((i)->finfo))
+#define GST_AUDIO_INFO_DEPTH(i) (GST_AUDIO_FORMAT_INFO_DEPTH((i)->finfo))
+#define GST_AUDIO_INFO_BPS(info) (GST_AUDIO_INFO_DEPTH(info) >> 3)
+
+#define GST_AUDIO_INFO_IS_INTEGER(i) (GST_AUDIO_FORMAT_INFO_IS_INTEGER((i)->finfo))
+#define GST_AUDIO_INFO_IS_FLOAT(i) (GST_AUDIO_FORMAT_INFO_IS_FLOAT((i)->finfo))
+#define GST_AUDIO_INFO_IS_SIGNED(i) (GST_AUDIO_FORMAT_INFO_IS_SIGNED((i)->finfo))
+
+#define GST_AUDIO_INFO_ENDIANNESS(i) (GST_AUDIO_FORMAT_INFO_ENDIANNES((i)->finfo))
+#define GST_AUDIO_INFO_IS_LITTLE_ENDIAN(i) (GST_AUDIO_FORMAT_INFO_IS_LITTLE_ENDIAN((i)->finfo))
+#define GST_AUDIO_INFO_IS_BIG_ENDIAN(i) (GST_AUDIO_FORMAT_INFO_IS_BIG_ENDIAN((i)->finfo))
+
+#define GST_AUDIO_INFO_FLAGS(info) ((info)->flags)
+#define GST_AUDIO_INFO_HAS_DEFAULT_POSITIONS(info) ((info)->flags & GST_AUDIO_FLAG_DEFAULT_POSITIONS)
+
+#define GST_AUDIO_INFO_RATE(info) ((info)->rate)
+#define GST_AUDIO_INFO_CHANNELS(info) ((info)->channels)
+#define GST_AUDIO_INFO_BPF(info) ((info)->bpf)
+#define GST_AUDIO_INFO_POSITION(info,c) ((info)->position[c])
+
+void gst_audio_info_init (GstAudioInfo * info);
+void gst_audio_info_clear (GstAudioInfo * info);
+
+GstAudioInfo * gst_audio_info_copy (GstAudioInfo * info);
+void gst_audio_info_free (GstAudioInfo * info);
+
+gboolean gst_audio_info_from_caps (GstAudioInfo * info, const GstCaps * caps);
+GstCaps * gst_audio_info_to_caps (GstAudioInfo * info);
+
+gboolean gst_audio_info_convert (GstAudioInfo * info,
+ GstFormat src_fmt, gint64 src_val,
+ GstFormat dest_fmt, gint64 * dest_val);
+
/* For people that are looking at this source: the purpose of these defines is
* to make GstCaps a bit easier, in that you don't have to know all of the
* properties that need to be defined. you can just use these macros. currently
/**
* GstAudioClock:
- * @clock: parent #GstSystemClock
*
* Opaque #GstAudioClock.
*/
struct _GstAudioClock {
GstSystemClock clock;
- /* --- protected --- */
+ /*< protected >*/
GstAudioClockGetTimeFunc func;
gpointer user_data;
--- /dev/null
+/* GStreamer
+ * Copyright (C) 2009 Igalia S.L.
+ * Author: Iago Toral Quiroga <itoral@igalia.com>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * 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:gstaudiodecoder
+ * @short_description: Base class for audio decoders
+ * @see_also: #GstBaseTransform
+ * @since: 0.10.36
+ *
+ * This base class is for audio decoders turning encoded data into
+ * raw audio samples.
+ *
+ * GstAudioDecoder and subclass should cooperate as follows.
+ * <orderedlist>
+ * <listitem>
+ * <itemizedlist><title>Configuration</title>
+ * <listitem><para>
+ * Initially, GstAudioDecoder calls @start when the decoder element
+ * is activated, which allows subclass to perform any global setup.
+ * Base class (context) parameters can already be set according to subclass
+ * capabilities (or possibly upon receive more information in subsequent
+ * @set_format).
+ * </para></listitem>
+ * <listitem><para>
+ * GstAudioDecoder calls @set_format to inform subclass of the format
+ * of input audio data that it is about to receive.
+ * While unlikely, it might be called more than once, if changing input
+ * parameters require reconfiguration.
+ * </para></listitem>
+ * <listitem><para>
+ * GstAudioDecoder calls @stop at end of all processing.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * As of configuration stage, and throughout processing, GstAudioDecoder
+ * provides various (context) parameters, e.g. describing the format of
+ * output audio data (valid when output caps have been set) or current parsing state.
+ * Conversely, subclass can and should configure context to inform
+ * base class of its expectation w.r.t. buffer handling.
+ * <listitem>
+ * <itemizedlist>
+ * <title>Data processing</title>
+ * <listitem><para>
+ * Base class gathers input data, and optionally allows subclass
+ * to parse this into subsequently manageable (as defined by subclass)
+ * chunks. Such chunks are subsequently referred to as 'frames',
+ * though they may or may not correspond to 1 (or more) audio format frame.
+ * </para></listitem>
+ * <listitem><para>
+ * Input frame is provided to subclass' @handle_frame.
+ * </para></listitem>
+ * <listitem><para>
+ * If codec processing results in decoded data, subclass should call
+ * @gst_audio_decoder_finish_frame to have decoded data pushed
+ * downstream.
+ * </para></listitem>
+ * <listitem><para>
+ * Just prior to actually pushing a buffer downstream,
+ * it is passed to @pre_push. Subclass should either use this callback
+ * to arrange for additional downstream pushing or otherwise ensure such
+ * custom pushing occurs after at least a method call has finished since
+ * setting src pad caps.
+ * </para></listitem>
+ * <listitem><para>
+ * During the parsing process GstAudioDecoderClass will handle both
+ * srcpad and sinkpad events. Sink events will be passed to subclass
+ * if @event callback has been provided.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * <listitem>
+ * <itemizedlist><title>Shutdown phase</title>
+ * <listitem><para>
+ * GstAudioDecoder class calls @stop to inform the subclass that data
+ * parsing will be stopped.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * </orderedlist>
+ *
+ * Subclass is responsible for providing pad template caps for
+ * source and sink pads. The pads need to be named "sink" and "src". It also
+ * needs to set the fixed caps on srcpad, when the format is ensured. This
+ * is typically when base class calls subclass' @set_format function, though
+ * it might be delayed until calling @gst_audio_decoder_finish_frame.
+ *
+ * In summary, above process should have subclass concentrating on
+ * codec data processing while leaving other matters to base class,
+ * such as most notably timestamp handling. While it may exert more control
+ * in this area (see e.g. @pre_push), it is very much not recommended.
+ *
+ * In particular, base class will try to arrange for perfect output timestamps
+ * as much as possible while tracking upstream timestamps.
+ * To this end, if deviation between the next ideal expected perfect timestamp
+ * and upstream exceeds #GstAudioDecoder:tolerance, then resync to upstream
+ * occurs (which would happen always if the tolerance mechanism is disabled).
+ *
+ * In non-live pipelines, baseclass can also (configurably) arrange for
+ * output buffer aggregation which may help to redue large(r) numbers of
+ * small(er) buffers being pushed and processed downstream.
+ *
+ * On the other hand, it should be noted that baseclass only provides limited
+ * seeking support (upon explicit subclass request), as full-fledged support
+ * should rather be left to upstream demuxer, parser or alike. This simple
+ * approach caters for seeking and duration reporting using estimated input
+ * bitrates.
+ *
+ * Things that subclass need to take care of:
+ * <itemizedlist>
+ * <listitem><para>Provide pad templates</para></listitem>
+ * <listitem><para>
+ * Set source pad caps when appropriate
+ * </para></listitem>
+ * <listitem><para>
+ * Set user-configurable properties to sane defaults for format and
+ * implementing codec at hand, and convey some subclass capabilities and
+ * expectations in context.
+ * </para></listitem>
+ * <listitem><para>
+ * Accept data in @handle_frame and provide encoded results to
+ * @gst_audio_decoder_finish_frame. If it is prepared to perform
+ * PLC, it should also accept NULL data in @handle_frame and provide for
+ * data for indicated duration.
+ * </para></listitem>
+ * </itemizedlist>
+ */
+
+#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 "gstaudiodecoder.h"
+#include <gst/pbutils/descriptions.h>
+
+#include <string.h>
+
+GST_DEBUG_CATEGORY (audiodecoder_debug);
+#define GST_CAT_DEFAULT audiodecoder_debug
+
+#define GST_AUDIO_DECODER_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_DECODER, \
+ GstAudioDecoderPrivate))
+
+enum
+{
+ LAST_SIGNAL
+};
+
+enum
+{
+ PROP_0,
+ PROP_LATENCY,
+ PROP_TOLERANCE,
+ PROP_PLC
+};
+
+#define DEFAULT_LATENCY 0
+#define DEFAULT_TOLERANCE 0
+#define DEFAULT_PLC FALSE
+#define DEFAULT_DRAINABLE TRUE
+#define DEFAULT_NEEDS_FORMAT FALSE
+
+typedef struct _GstAudioDecoderContext
+{
+ /* input */
+ /* (output) audio format */
+ GstAudioInfo info;
+
+ /* parsing state */
+ gboolean eos;
+ gboolean sync;
+
+ /* misc */
+ gint delay;
+
+ /* output */
+ gboolean do_plc;
+ gboolean do_byte_time;
+ gint max_errors;
+ /* MT-protected (with LOCK) */
+ GstClockTime min_latency;
+ GstClockTime max_latency;
+} GstAudioDecoderContext;
+
+struct _GstAudioDecoderPrivate
+{
+ /* activation status */
+ gboolean active;
+
+ /* input base/first ts as basis for output ts */
+ GstClockTime base_ts;
+ /* input samples processed and sent downstream so far (w.r.t. base_ts) */
+ guint64 samples;
+
+ /* collected input data */
+ GstAdapter *adapter;
+ /* tracking input ts for changes */
+ GstClockTime prev_ts;
+ /* frames obtained from input */
+ GQueue frames;
+ /* collected output data */
+ GstAdapter *adapter_out;
+ /* ts and duration for output data collected above */
+ GstClockTime out_ts, out_dur;
+ /* mark outgoing discont */
+ gboolean discont;
+
+ /* subclass gave all it could already */
+ gboolean drained;
+ /* subclass currently being forcibly drained */
+ gboolean force;
+
+ /* input bps estimatation */
+ /* global in bytes seen */
+ guint64 bytes_in;
+ /* global samples sent out */
+ guint64 samples_out;
+ /* bytes flushed during parsing */
+ guint sync_flush;
+ /* error count */
+ gint error_count;
+ /* codec id tag */
+ GstTagList *taglist;
+
+ /* whether circumstances allow output aggregation */
+ gint agg;
+
+ /* reverse playback queues */
+ /* collect input */
+ GList *gather;
+ /* to-be-decoded */
+ GList *decode;
+ /* reversed output */
+ GList *queued;
+
+ /* context storage */
+ GstAudioDecoderContext ctx;
+
+ /* properties */
+ GstClockTime latency;
+ GstClockTime tolerance;
+ gboolean plc;
+ gboolean drainable;
+ gboolean needs_format;
+
+ /* pending serialized sink events, will be sent from finish_frame() */
+ GList *pending_events;
+};
+
+
+static void gst_audio_decoder_finalize (GObject * object);
+static void gst_audio_decoder_set_property (GObject * object,
+ guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_audio_decoder_get_property (GObject * object,
+ guint prop_id, GValue * value, GParamSpec * pspec);
+
+static void gst_audio_decoder_clear_queues (GstAudioDecoder * dec);
+static GstFlowReturn gst_audio_decoder_chain_reverse (GstAudioDecoder *
+ dec, GstBuffer * buf);
+
+static GstStateChangeReturn gst_audio_decoder_change_state (GstElement *
+ element, GstStateChange transition);
+static gboolean gst_audio_decoder_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_audio_decoder_src_event (GstPad * pad, GstEvent * event);
+static gboolean gst_audio_decoder_sink_setcaps (GstPad * pad, GstCaps * caps);
+static gboolean gst_audio_decoder_src_setcaps (GstPad * pad, GstCaps * caps);
+static GstFlowReturn gst_audio_decoder_chain (GstPad * pad, GstBuffer * buf);
+static gboolean gst_audio_decoder_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_audio_decoder_sink_query (GstPad * pad, GstQuery * query);
+static const GstQueryType *gst_audio_decoder_get_query_types (GstPad * pad);
+static void gst_audio_decoder_reset (GstAudioDecoder * dec, gboolean full);
+
+
+GST_BOILERPLATE (GstAudioDecoder, gst_audio_decoder, GstElement,
+ GST_TYPE_ELEMENT);
+
+static void
+gst_audio_decoder_base_init (gpointer g_class)
+{
+}
+
+static void
+gst_audio_decoder_class_init (GstAudioDecoderClass * klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *element_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ element_class = GST_ELEMENT_CLASS (klass);
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ g_type_class_add_private (klass, sizeof (GstAudioDecoderPrivate));
+
+ GST_DEBUG_CATEGORY_INIT (audiodecoder_debug, "audiodecoder", 0,
+ "audio decoder base class");
+
+ gobject_class->set_property = gst_audio_decoder_set_property;
+ gobject_class->get_property = gst_audio_decoder_get_property;
+ gobject_class->finalize = gst_audio_decoder_finalize;
+
+ element_class->change_state = gst_audio_decoder_change_state;
+
+ /* Properties */
+ g_object_class_install_property (gobject_class, PROP_LATENCY,
+ g_param_spec_int64 ("min-latency", "Minimum Latency",
+ "Aggregate output data to a minimum of latency time (ns)",
+ 0, G_MAXINT64, DEFAULT_LATENCY,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (gobject_class, PROP_TOLERANCE,
+ g_param_spec_int64 ("tolerance", "Tolerance",
+ "Perfect ts while timestamp jitter/imperfection within tolerance (ns)",
+ 0, G_MAXINT64, DEFAULT_TOLERANCE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (gobject_class, PROP_PLC,
+ g_param_spec_boolean ("plc", "Packet Loss Concealment",
+ "Perform packet loss concealment (if supported)",
+ DEFAULT_PLC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_audio_decoder_init (GstAudioDecoder * dec, GstAudioDecoderClass * klass)
+{
+ GstPadTemplate *pad_template;
+
+ GST_DEBUG_OBJECT (dec, "gst_audio_decoder_init");
+
+ dec->priv = GST_AUDIO_DECODER_GET_PRIVATE (dec);
+
+ /* Setup sink pad */
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "sink");
+ g_return_if_fail (pad_template != NULL);
+
+ dec->sinkpad = gst_pad_new_from_template (pad_template, "sink");
+ gst_pad_set_event_function (dec->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_sink_event));
+ gst_pad_set_setcaps_function (dec->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_sink_setcaps));
+ gst_pad_set_chain_function (dec->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_chain));
+ gst_pad_set_query_function (dec->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_sink_query));
+ gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);
+ GST_DEBUG_OBJECT (dec, "sinkpad created");
+
+ /* Setup source pad */
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (klass), "src");
+ g_return_if_fail (pad_template != NULL);
+
+ dec->srcpad = gst_pad_new_from_template (pad_template, "src");
+ gst_pad_set_setcaps_function (dec->srcpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_src_setcaps));
+ gst_pad_set_event_function (dec->srcpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_src_event));
+ gst_pad_set_query_function (dec->srcpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_src_query));
+ gst_pad_set_query_type_function (dec->srcpad,
+ GST_DEBUG_FUNCPTR (gst_audio_decoder_get_query_types));
+ gst_pad_use_fixed_caps (dec->srcpad);
+ gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);
+ GST_DEBUG_OBJECT (dec, "srcpad created");
+
+ dec->priv->adapter = gst_adapter_new ();
+ dec->priv->adapter_out = gst_adapter_new ();
+ g_queue_init (&dec->priv->frames);
+
+ g_static_rec_mutex_init (&dec->stream_lock);
+
+ /* property default */
+ dec->priv->latency = DEFAULT_LATENCY;
+ dec->priv->tolerance = DEFAULT_TOLERANCE;
+ dec->priv->plc = DEFAULT_PLC;
+ dec->priv->drainable = DEFAULT_DRAINABLE;
+ dec->priv->needs_format = DEFAULT_NEEDS_FORMAT;
+
+ /* init state */
+ gst_audio_decoder_reset (dec, TRUE);
+ GST_DEBUG_OBJECT (dec, "init ok");
+}
+
+static void
+gst_audio_decoder_reset (GstAudioDecoder * dec, gboolean full)
+{
+ GST_DEBUG_OBJECT (dec, "gst_audio_decoder_reset");
+
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+ if (full) {
+ dec->priv->active = FALSE;
+ dec->priv->bytes_in = 0;
+ dec->priv->samples_out = 0;
+ dec->priv->agg = -1;
+ dec->priv->error_count = 0;
+ gst_audio_decoder_clear_queues (dec);
+
+ gst_audio_info_clear (&dec->priv->ctx.info);
+ memset (&dec->priv->ctx, 0, sizeof (dec->priv->ctx));
+ dec->priv->ctx.max_errors = GST_AUDIO_DECODER_MAX_ERRORS;
+
+ if (dec->priv->taglist) {
+ gst_tag_list_free (dec->priv->taglist);
+ dec->priv->taglist = NULL;
+ }
+
+ gst_segment_init (&dec->segment, GST_FORMAT_TIME);
+
+ g_list_foreach (dec->priv->pending_events, (GFunc) gst_event_unref, NULL);
+ g_list_free (dec->priv->pending_events);
+ dec->priv->pending_events = NULL;
+ }
+
+ g_queue_foreach (&dec->priv->frames, (GFunc) gst_buffer_unref, NULL);
+ g_queue_clear (&dec->priv->frames);
+ gst_adapter_clear (dec->priv->adapter);
+ gst_adapter_clear (dec->priv->adapter_out);
+ dec->priv->out_ts = GST_CLOCK_TIME_NONE;
+ dec->priv->out_dur = 0;
+ dec->priv->prev_ts = GST_CLOCK_TIME_NONE;
+ dec->priv->drained = TRUE;
+ dec->priv->base_ts = GST_CLOCK_TIME_NONE;
+ dec->priv->samples = 0;
+ dec->priv->discont = TRUE;
+ dec->priv->sync_flush = FALSE;
+
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+}
+
+static void
+gst_audio_decoder_finalize (GObject * object)
+{
+ GstAudioDecoder *dec;
+
+ g_return_if_fail (GST_IS_AUDIO_DECODER (object));
+ dec = GST_AUDIO_DECODER (object);
+
+ if (dec->priv->adapter) {
+ g_object_unref (dec->priv->adapter);
+ }
+ if (dec->priv->adapter_out) {
+ g_object_unref (dec->priv->adapter_out);
+ }
+
+ g_static_rec_mutex_free (&dec->stream_lock);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* automagically perform sanity checking of src caps;
+ * also extracts output data format */
+static gboolean
+gst_audio_decoder_src_setcaps (GstPad * pad, GstCaps * caps)
+{
+ GstAudioDecoder *dec;
+ gboolean res = TRUE;
+ guint old_rate;
+
+ dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+
+ GST_DEBUG_OBJECT (dec, "setting src caps %" GST_PTR_FORMAT, caps);
+
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+ /* parse caps here to check subclass;
+ * also makes us aware of output format */
+ if (!gst_caps_is_fixed (caps))
+ goto refuse_caps;
+
+ /* adjust ts tracking to new sample rate */
+ old_rate = GST_AUDIO_INFO_RATE (&dec->priv->ctx.info);
+ if (GST_CLOCK_TIME_IS_VALID (dec->priv->base_ts) && old_rate) {
+ dec->priv->base_ts +=
+ GST_FRAMES_TO_CLOCK_TIME (dec->priv->samples, old_rate);
+ dec->priv->samples = 0;
+ }
+
+ if (!gst_audio_info_from_caps (&dec->priv->ctx.info, caps))
+ goto refuse_caps;
+
+done:
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+ gst_object_unref (dec);
+ return res;
+
+ /* ERRORS */
+refuse_caps:
+ {
+ GST_WARNING_OBJECT (dec, "rejected caps %" GST_PTR_FORMAT, caps);
+ res = FALSE;
+ goto done;
+ }
+}
+
+static gboolean
+gst_audio_decoder_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+ GstAudioDecoder *dec;
+ GstAudioDecoderClass *klass;
+ gboolean res = TRUE;
+
+ dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+ GST_DEBUG_OBJECT (dec, "caps: %" GST_PTR_FORMAT, caps);
+
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+ /* NOTE pbutils only needed here */
+ /* TODO maybe (only) upstream demuxer/parser etc should handle this ? */
+ if (dec->priv->taglist)
+ gst_tag_list_free (dec->priv->taglist);
+ dec->priv->taglist = gst_tag_list_new ();
+ gst_pb_utils_add_codec_description_to_tag_list (dec->priv->taglist,
+ GST_TAG_AUDIO_CODEC, caps);
+
+ if (klass->set_format)
+ res = klass->set_format (dec, caps);
+
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+ g_object_unref (dec);
+ return res;
+}
+
+static void
+gst_audio_decoder_setup (GstAudioDecoder * dec)
+{
+ GstQuery *query;
+ gboolean res;
+
+ /* check if in live pipeline, then latency messing is no-no */
+ query = gst_query_new_latency ();
+ res = gst_pad_peer_query (dec->sinkpad, query);
+ if (res) {
+ gst_query_parse_latency (query, &res, NULL, NULL);
+ res = !res;
+ }
+ gst_query_unref (query);
+
+ /* normalize to bool */
+ dec->priv->agg = ! !res;
+}
+
+static GstFlowReturn
+gst_audio_decoder_push_forward (GstAudioDecoder * dec, GstBuffer * buf)
+{
+ GstAudioDecoderClass *klass;
+ GstAudioDecoderPrivate *priv;
+ GstAudioDecoderContext *ctx;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+ priv = dec->priv;
+ ctx = &dec->priv->ctx;
+
+ g_return_val_if_fail (ctx->info.bpf != 0, GST_FLOW_ERROR);
+
+ if (G_UNLIKELY (!buf)) {
+ g_assert_not_reached ();
+ return GST_FLOW_OK;
+ }
+
+ GST_LOG_OBJECT (dec, "clipping buffer of size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+ /* clip buffer */
+ buf = gst_audio_buffer_clip (buf, &dec->segment, ctx->info.rate,
+ ctx->info.bpf);
+ if (G_UNLIKELY (!buf)) {
+ GST_DEBUG_OBJECT (dec, "no data after clipping to segment");
+ goto exit;
+ }
+
+ /* decorate */
+ gst_buffer_set_caps (buf, GST_PAD_CAPS (dec->srcpad));
+
+ if (G_UNLIKELY (priv->discont)) {
+ GST_LOG_OBJECT (dec, "marking discont");
+ GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+ priv->discont = FALSE;
+ }
+
+ /* track where we are */
+ if (G_LIKELY (GST_BUFFER_TIMESTAMP_IS_VALID (buf))) {
+ /* duration should always be valid for raw audio */
+ g_assert (GST_BUFFER_DURATION_IS_VALID (buf));
+ dec->segment.last_stop =
+ GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf);
+ }
+
+ if (klass->pre_push) {
+ /* last chance for subclass to do some dirty stuff */
+ ret = klass->pre_push (dec, &buf);
+ if (ret != GST_FLOW_OK || !buf) {
+ GST_DEBUG_OBJECT (dec, "subclass returned %s, buf %p",
+ gst_flow_get_name (ret), buf);
+ if (buf)
+ gst_buffer_unref (buf);
+ goto exit;
+ }
+ }
+
+ GST_LOG_OBJECT (dec, "pushing buffer of size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+ ret = gst_pad_push (dec->srcpad, buf);
+
+exit:
+ return ret;
+}
+
+/* mini aggregator combining output buffers into fewer larger ones,
+ * if so allowed/configured */
+static GstFlowReturn
+gst_audio_decoder_output (GstAudioDecoder * dec, GstBuffer * buf)
+{
+ GstAudioDecoderPrivate *priv;
+ GstFlowReturn ret = GST_FLOW_OK;
+ GstBuffer *inbuf = NULL;
+
+ priv = dec->priv;
+
+ if (G_UNLIKELY (priv->agg < 0))
+ gst_audio_decoder_setup (dec);
+
+ if (G_LIKELY (buf)) {
+ GST_LOG_OBJECT (dec, "output buffer of size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+ }
+
+again:
+ inbuf = NULL;
+ if (priv->agg && dec->priv->latency > 0) {
+ gint av;
+ gboolean assemble = FALSE;
+ const GstClockTimeDiff tol = 10 * GST_MSECOND;
+ GstClockTimeDiff diff = -100 * GST_MSECOND;
+
+ av = gst_adapter_available (priv->adapter_out);
+ if (G_UNLIKELY (!buf)) {
+ /* forcibly send current */
+ assemble = TRUE;
+ GST_LOG_OBJECT (dec, "forcing fragment flush");
+ } else if (av && (!GST_BUFFER_TIMESTAMP_IS_VALID (buf) ||
+ !GST_CLOCK_TIME_IS_VALID (priv->out_ts) ||
+ ((diff = GST_CLOCK_DIFF (GST_BUFFER_TIMESTAMP (buf),
+ priv->out_ts + priv->out_dur)) > tol) || diff < -tol)) {
+ assemble = TRUE;
+ GST_LOG_OBJECT (dec, "buffer %d ms apart from current fragment",
+ (gint) (diff / GST_MSECOND));
+ } else {
+ /* add or start collecting */
+ if (!av) {
+ GST_LOG_OBJECT (dec, "starting new fragment");
+ priv->out_ts = GST_BUFFER_TIMESTAMP (buf);
+ } else {
+ GST_LOG_OBJECT (dec, "adding to fragment");
+ }
+ gst_adapter_push (priv->adapter_out, buf);
+ priv->out_dur += GST_BUFFER_DURATION (buf);
+ av += GST_BUFFER_SIZE (buf);
+ buf = NULL;
+ }
+ if (priv->out_dur > dec->priv->latency)
+ assemble = TRUE;
+ if (av && assemble) {
+ GST_LOG_OBJECT (dec, "assembling fragment");
+ inbuf = buf;
+ buf = gst_adapter_take_buffer (priv->adapter_out, av);
+ GST_BUFFER_TIMESTAMP (buf) = priv->out_ts;
+ GST_BUFFER_DURATION (buf) = priv->out_dur;
+ priv->out_ts = GST_CLOCK_TIME_NONE;
+ priv->out_dur = 0;
+ }
+ }
+
+ if (G_LIKELY (buf)) {
+ if (dec->segment.rate > 0.0) {
+ ret = gst_audio_decoder_push_forward (dec, buf);
+ GST_LOG_OBJECT (dec, "buffer pushed: %s", gst_flow_get_name (ret));
+ } else {
+ ret = GST_FLOW_OK;
+ priv->queued = g_list_prepend (priv->queued, buf);
+ GST_LOG_OBJECT (dec, "buffer queued");
+ }
+
+ if (inbuf) {
+ buf = inbuf;
+ goto again;
+ }
+ }
+
+ return ret;
+}
+
+/**
+ * gst_audio_decoder_finish_frame:
+ * @dec: a #GstAudioDecoder
+ * @buf: decoded data
+ * @frames: number of decoded frames represented by decoded data
+ *
+ * Collects decoded data and pushes it downstream.
+ *
+ * @buf may be NULL in which case the indicated number of frames
+ * are discarded and considered to have produced no output
+ * (e.g. lead-in or setup frames).
+ * Otherwise, source pad caps must be set when it is called with valid
+ * data in @buf.
+ *
+ * Note that a frame received in gst_audio_decoder_handle_frame() may be
+ * invalidated by a call to this function.
+ *
+ * Returns: a #GstFlowReturn that should be escalated to caller (of caller)
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_audio_decoder_finish_frame (GstAudioDecoder * dec, GstBuffer * buf,
+ gint frames)
+{
+ GstAudioDecoderPrivate *priv;
+ GstAudioDecoderContext *ctx;
+ gint samples = 0;
+ GstClockTime ts, next_ts;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ /* subclass should know what it is producing by now */
+ g_return_val_if_fail (buf == NULL || GST_PAD_CAPS (dec->srcpad) != NULL,
+ GST_FLOW_ERROR);
+ /* subclass should not hand us no data */
+ g_return_val_if_fail (buf == NULL || GST_BUFFER_SIZE (buf) > 0,
+ GST_FLOW_ERROR);
+ /* no dummy calls please */
+ g_return_val_if_fail (frames != 0, GST_FLOW_ERROR);
+
+ priv = dec->priv;
+ ctx = &dec->priv->ctx;
+
+ /* must know the output format by now */
+ g_return_val_if_fail (buf == NULL || GST_AUDIO_INFO_IS_VALID (&ctx->info),
+ GST_FLOW_ERROR);
+
+ GST_LOG_OBJECT (dec, "accepting %d bytes == %d samples for %d frames",
+ buf ? GST_BUFFER_SIZE (buf) : -1,
+ buf ? GST_BUFFER_SIZE (buf) / ctx->info.bpf : -1, frames);
+
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+ if (priv->pending_events) {
+ GList *pending_events, *l;
+
+ pending_events = priv->pending_events;
+ priv->pending_events = NULL;
+
+ GST_DEBUG_OBJECT (dec, "Pushing pending events");
+ for (l = pending_events; l; l = l->next)
+ gst_pad_push_event (dec->srcpad, l->data);
+ g_list_free (pending_events);
+ }
+
+ /* output shoud be whole number of sample frames */
+ if (G_LIKELY (buf && ctx->info.bpf)) {
+ if (GST_BUFFER_SIZE (buf) % ctx->info.bpf)
+ goto wrong_buffer;
+ /* per channel least */
+ samples = GST_BUFFER_SIZE (buf) / ctx->info.bpf;
+ }
+
+ /* frame and ts book-keeping */
+ if (G_UNLIKELY (frames < 0)) {
+ if (G_UNLIKELY (-frames - 1 > priv->frames.length))
+ goto overflow;
+ frames = priv->frames.length + frames + 1;
+ } else if (G_UNLIKELY (frames > priv->frames.length)) {
+ if (G_LIKELY (!priv->force)) {
+ /* no way we can let this pass */
+ g_assert_not_reached ();
+ /* really no way */
+ goto overflow;
+ }
+ }
+
+ if (G_LIKELY (priv->frames.length))
+ ts = GST_BUFFER_TIMESTAMP (priv->frames.head->data);
+ else
+ ts = GST_CLOCK_TIME_NONE;
+
+ GST_DEBUG_OBJECT (dec, "leading frame ts %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (ts));
+
+ while (priv->frames.length && frames) {
+ gst_buffer_unref (g_queue_pop_head (&priv->frames));
+ dec->priv->ctx.delay = dec->priv->frames.length;
+ frames--;
+ }
+
+ if (G_UNLIKELY (!buf))
+ goto exit;
+
+ /* lock on */
+ if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (priv->base_ts))) {
+ priv->base_ts = ts;
+ GST_DEBUG_OBJECT (dec, "base_ts now %" GST_TIME_FORMAT, GST_TIME_ARGS (ts));
+ }
+
+ /* slightly convoluted approach caters for perfect ts if subclass desires */
+ if (GST_CLOCK_TIME_IS_VALID (ts)) {
+ if (dec->priv->tolerance > 0) {
+ GstClockTimeDiff diff;
+
+ g_assert (GST_CLOCK_TIME_IS_VALID (priv->base_ts));
+ next_ts = priv->base_ts +
+ gst_util_uint64_scale (priv->samples, GST_SECOND, ctx->info.rate);
+ GST_LOG_OBJECT (dec,
+ "buffer is %" G_GUINT64_FORMAT " samples past base_ts %"
+ GST_TIME_FORMAT ", expected ts %" GST_TIME_FORMAT, priv->samples,
+ GST_TIME_ARGS (priv->base_ts), GST_TIME_ARGS (next_ts));
+ diff = GST_CLOCK_DIFF (next_ts, ts);
+ GST_LOG_OBJECT (dec, "ts diff %d ms", (gint) (diff / GST_MSECOND));
+ /* if within tolerance,
+ * discard buffer ts and carry on producing perfect stream,
+ * otherwise resync to ts */
+ if (G_UNLIKELY (diff < (gint64) - dec->priv->tolerance ||
+ diff > (gint64) dec->priv->tolerance)) {
+ GST_DEBUG_OBJECT (dec, "base_ts resync");
+ priv->base_ts = ts;
+ priv->samples = 0;
+ }
+ } else {
+ GST_DEBUG_OBJECT (dec, "base_ts resync");
+ priv->base_ts = ts;
+ priv->samples = 0;
+ }
+ }
+
+ /* delayed one-shot stuff until confirmed data */
+ if (priv->taglist) {
+ GST_DEBUG_OBJECT (dec, "codec tag %" GST_PTR_FORMAT, priv->taglist);
+ if (gst_tag_list_is_empty (priv->taglist)) {
+ gst_tag_list_free (priv->taglist);
+ } else {
+ gst_element_found_tags (GST_ELEMENT (dec), priv->taglist);
+ }
+ priv->taglist = NULL;
+ }
+
+ buf = gst_buffer_make_metadata_writable (buf);
+ if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (priv->base_ts))) {
+ GST_BUFFER_TIMESTAMP (buf) =
+ priv->base_ts +
+ GST_FRAMES_TO_CLOCK_TIME (priv->samples, ctx->info.rate);
+ GST_BUFFER_DURATION (buf) = priv->base_ts +
+ GST_FRAMES_TO_CLOCK_TIME (priv->samples + samples, ctx->info.rate) -
+ GST_BUFFER_TIMESTAMP (buf);
+ } else {
+ GST_BUFFER_TIMESTAMP (buf) = GST_CLOCK_TIME_NONE;
+ GST_BUFFER_DURATION (buf) =
+ GST_FRAMES_TO_CLOCK_TIME (samples, ctx->info.rate);
+ }
+ priv->samples += samples;
+ priv->samples_out += samples;
+
+ /* we got data, so note things are looking up */
+ if (G_UNLIKELY (dec->priv->error_count))
+ dec->priv->error_count--;
+
+exit:
+ ret = gst_audio_decoder_output (dec, buf);
+
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+ return ret;
+
+ /* ERRORS */
+wrong_buffer:
+ {
+ GST_ELEMENT_ERROR (dec, STREAM, ENCODE, (NULL),
+ ("buffer size %d not a multiple of %d", GST_BUFFER_SIZE (buf),
+ ctx->info.bpf));
+ gst_buffer_unref (buf);
+ ret = GST_FLOW_ERROR;
+ goto exit;
+ }
+overflow:
+ {
+ GST_ELEMENT_ERROR (dec, STREAM, ENCODE,
+ ("received more decoded frames %d than provided %d", frames,
+ priv->frames.length), (NULL));
+ if (buf)
+ gst_buffer_unref (buf);
+ ret = GST_FLOW_ERROR;
+ goto exit;
+ }
+}
+
+static GstFlowReturn
+gst_audio_decoder_handle_frame (GstAudioDecoder * dec,
+ GstAudioDecoderClass * klass, GstBuffer * buffer)
+{
+ if (G_LIKELY (buffer)) {
+ /* keep around for admin */
+ GST_LOG_OBJECT (dec, "tracking frame size %d, ts %" GST_TIME_FORMAT,
+ GST_BUFFER_SIZE (buffer),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
+ g_queue_push_tail (&dec->priv->frames, buffer);
+ dec->priv->ctx.delay = dec->priv->frames.length;
+ dec->priv->bytes_in += GST_BUFFER_SIZE (buffer);
+ } else {
+ GST_LOG_OBJECT (dec, "providing subclass with NULL frame");
+ }
+
+ return klass->handle_frame (dec, buffer);
+}
+
+/* maybe subclass configurable instead, but this allows for a whole lot of
+ * raw samples, so at least quite some encoded ... */
+#define GST_AUDIO_DECODER_MAX_SYNC 10 * 8 * 2 * 1024
+
+static GstFlowReturn
+gst_audio_decoder_push_buffers (GstAudioDecoder * dec, gboolean force)
+{
+ GstAudioDecoderClass *klass;
+ GstAudioDecoderPrivate *priv;
+ GstAudioDecoderContext *ctx;
+ GstFlowReturn ret = GST_FLOW_OK;
+ GstBuffer *buffer;
+ gint av, flush;
+
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+ priv = dec->priv;
+ ctx = &dec->priv->ctx;
+
+ g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR);
+
+ av = gst_adapter_available (priv->adapter);
+ GST_DEBUG_OBJECT (dec, "available: %d", av);
+
+ while (ret == GST_FLOW_OK) {
+
+ flush = 0;
+ ctx->eos = force;
+
+ if (G_LIKELY (av)) {
+ gint len;
+ GstClockTime ts;
+
+ /* parse if needed */
+ if (klass->parse) {
+ gint offset = 0;
+
+ /* limited (legacy) parsing; avoid whole of baseparse */
+ GST_DEBUG_OBJECT (dec, "parsing available: %d", av);
+ /* piggyback sync state on discont */
+ ctx->sync = !priv->discont;
+ ret = klass->parse (dec, priv->adapter, &offset, &len);
+
+ g_assert (offset <= av);
+ if (offset) {
+ /* jumped a bit */
+ GST_DEBUG_OBJECT (dec, "setting DISCONT");
+ gst_adapter_flush (priv->adapter, offset);
+ flush = offset;
+ /* avoid parsing indefinitely */
+ priv->sync_flush += offset;
+ if (priv->sync_flush > GST_AUDIO_DECODER_MAX_SYNC)
+ goto parse_failed;
+ }
+
+ if (ret == GST_FLOW_UNEXPECTED) {
+ GST_LOG_OBJECT (dec, "no frame yet");
+ ret = GST_FLOW_OK;
+ break;
+ } else if (ret == GST_FLOW_OK) {
+ GST_LOG_OBJECT (dec, "frame at offset %d of length %d", offset, len);
+ g_assert (len);
+ g_assert (offset + len <= av);
+ priv->sync_flush = 0;
+ } else {
+ break;
+ }
+ } else {
+ len = av;
+ }
+ /* track upstream ts, but do not get stuck if nothing new upstream */
+ ts = gst_adapter_prev_timestamp (priv->adapter, NULL);
+ if (ts == priv->prev_ts) {
+ GST_LOG_OBJECT (dec, "ts == prev_ts; discarding");
+ ts = GST_CLOCK_TIME_NONE;
+ } else {
+ priv->prev_ts = ts;
+ }
+ buffer = gst_adapter_take_buffer (priv->adapter, len);
+ buffer = gst_buffer_make_metadata_writable (buffer);
+ GST_BUFFER_TIMESTAMP (buffer) = ts;
+ flush += len;
+ } else {
+ if (!force)
+ break;
+ if (!priv->drainable) {
+ priv->drained = TRUE;
+ break;
+ }
+ buffer = NULL;
+ }
+
+ ret = gst_audio_decoder_handle_frame (dec, klass, buffer);
+
+ /* do not keep pushing it ... */
+ if (G_UNLIKELY (!av)) {
+ priv->drained = TRUE;
+ break;
+ }
+
+ av -= flush;
+ g_assert (av >= 0);
+ }
+
+ GST_LOG_OBJECT (dec, "done pushing to subclass");
+ return ret;
+
+ /* ERRORS */
+parse_failed:
+ {
+ GST_ELEMENT_ERROR (dec, STREAM, DECODE, (NULL), ("failed to parse stream"));
+ return GST_FLOW_ERROR;
+ }
+}
+
+static GstFlowReturn
+gst_audio_decoder_drain (GstAudioDecoder * dec)
+{
+ GstFlowReturn ret;
+
+ if (dec->priv->drained && !dec->priv->gather)
+ return GST_FLOW_OK;
+ else {
+ /* dispatch reverse pending buffers */
+ /* chain eventually calls upon drain as well, but by that time
+ * gather list should be clear, so ok ... */
+ if (dec->segment.rate < 0.0 && dec->priv->gather)
+ gst_audio_decoder_chain_reverse (dec, NULL);
+ /* have subclass give all it can */
+ ret = gst_audio_decoder_push_buffers (dec, TRUE);
+ /* ensure all output sent */
+ ret = gst_audio_decoder_output (dec, NULL);
+ /* everything should be away now */
+ if (dec->priv->frames.length) {
+ /* not fatal/impossible though if subclass/codec eats stuff */
+ GST_WARNING_OBJECT (dec, "still %d frames left after draining",
+ dec->priv->frames.length);
+ g_queue_foreach (&dec->priv->frames, (GFunc) gst_buffer_unref, NULL);
+ g_queue_clear (&dec->priv->frames);
+ }
+ /* discard (unparsed) leftover */
+ gst_adapter_clear (dec->priv->adapter);
+
+ return ret;
+ }
+}
+
+/* hard == FLUSH, otherwise discont */
+static GstFlowReturn
+gst_audio_decoder_flush (GstAudioDecoder * dec, gboolean hard)
+{
+ GstAudioDecoderClass *klass;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+ GST_LOG_OBJECT (dec, "flush hard %d", hard);
+
+ if (!hard) {
+ ret = gst_audio_decoder_drain (dec);
+ } else {
+ gst_audio_decoder_clear_queues (dec);
+ gst_segment_init (&dec->segment, GST_FORMAT_TIME);
+ dec->priv->error_count = 0;
+ }
+ /* only bother subclass with flushing if known it is already alive
+ * and kicking out stuff */
+ if (klass->flush && dec->priv->samples_out > 0)
+ klass->flush (dec, hard);
+ /* and get (re)set for the sequel */
+ gst_audio_decoder_reset (dec, FALSE);
+
+ return ret;
+}
+
+static GstFlowReturn
+gst_audio_decoder_chain_forward (GstAudioDecoder * dec, GstBuffer * buffer)
+{
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ /* discard silly case, though maybe ts may be of value ?? */
+ if (G_UNLIKELY (GST_BUFFER_SIZE (buffer) == 0)) {
+ GST_DEBUG_OBJECT (dec, "discarding empty buffer");
+ gst_buffer_unref (buffer);
+ goto exit;
+ }
+
+ /* grab buffer */
+ gst_adapter_push (dec->priv->adapter, buffer);
+ buffer = NULL;
+ /* new stuff, so we can push subclass again */
+ dec->priv->drained = FALSE;
+
+ /* hand to subclass */
+ ret = gst_audio_decoder_push_buffers (dec, FALSE);
+
+exit:
+ GST_LOG_OBJECT (dec, "chain-done");
+ return ret;
+}
+
+static void
+gst_audio_decoder_clear_queues (GstAudioDecoder * dec)
+{
+ GstAudioDecoderPrivate *priv = dec->priv;
+
+ g_list_foreach (priv->queued, (GFunc) gst_mini_object_unref, NULL);
+ g_list_free (priv->queued);
+ priv->queued = NULL;
+ g_list_foreach (priv->gather, (GFunc) gst_mini_object_unref, NULL);
+ g_list_free (priv->gather);
+ priv->gather = NULL;
+ g_list_foreach (priv->decode, (GFunc) gst_mini_object_unref, NULL);
+ g_list_free (priv->decode);
+ priv->decode = NULL;
+}
+
+/*
+ * Input:
+ * Buffer decoding order: 7 8 9 4 5 6 3 1 2 EOS
+ * Discont flag: D D D D
+ *
+ * - Each Discont marks a discont in the decoding order.
+ *
+ * for vorbis, each buffer is a keyframe when we have the previous
+ * buffer. This means that to decode buffer 7, we need buffer 6, which
+ * arrives out of order.
+ *
+ * we first gather buffers in the gather queue until we get a DISCONT. We
+ * prepend each incomming buffer so that they are in reversed order.
+ *
+ * gather queue: 9 8 7
+ * decode queue:
+ * output queue:
+ *
+ * When a DISCONT is received (buffer 4), we move the gather queue to the
+ * decode queue. This is simply done be taking the head of the gather queue
+ * and prepending it to the decode queue. This yields:
+ *
+ * gather queue:
+ * decode queue: 7 8 9
+ * output queue:
+ *
+ * Then we decode each buffer in the decode queue in order and put the output
+ * buffer in the output queue. The first buffer (7) will not produce any output
+ * because it needs the previous buffer (6) which did not arrive yet. This
+ * yields:
+ *
+ * gather queue:
+ * decode queue: 7 8 9
+ * output queue: 9 8
+ *
+ * Then we remove the consumed buffers from the decode queue. Buffer 7 is not
+ * completely consumed, we need to keep it around for when we receive buffer
+ * 6. This yields:
+ *
+ * gather queue:
+ * decode queue: 7
+ * output queue: 9 8
+ *
+ * Then we accumulate more buffers:
+ *
+ * gather queue: 6 5 4
+ * decode queue: 7
+ * output queue:
+ *
+ * prepending to the decode queue on DISCONT yields:
+ *
+ * gather queue:
+ * decode queue: 4 5 6 7
+ * output queue:
+ *
+ * after decoding and keeping buffer 4:
+ *
+ * gather queue:
+ * decode queue: 4
+ * output queue: 7 6 5
+ *
+ * Etc..
+ */
+static GstFlowReturn
+gst_audio_decoder_flush_decode (GstAudioDecoder * dec)
+{
+ GstAudioDecoderPrivate *priv = dec->priv;
+ GstFlowReturn res = GST_FLOW_OK;
+ GstClockTime timestamp;
+ GList *walk;
+
+ walk = priv->decode;
+
+ GST_DEBUG_OBJECT (dec, "flushing buffers to decoder");
+
+ /* clear buffer and decoder state */
+ gst_audio_decoder_flush (dec, FALSE);
+
+ while (walk) {
+ GList *next;
+ GstBuffer *buf = GST_BUFFER_CAST (walk->data);
+
+ GST_DEBUG_OBJECT (dec, "decoding buffer %p, ts %" GST_TIME_FORMAT,
+ buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+ next = g_list_next (walk);
+ /* decode buffer, resulting data prepended to output queue */
+ gst_buffer_ref (buf);
+ res = gst_audio_decoder_chain_forward (dec, buf);
+
+ /* if we generated output, we can discard the buffer, else we
+ * keep it in the queue */
+ if (priv->queued) {
+ GST_DEBUG_OBJECT (dec, "decoded buffer to %p", priv->queued->data);
+ priv->decode = g_list_delete_link (priv->decode, walk);
+ gst_buffer_unref (buf);
+ } else {
+ GST_DEBUG_OBJECT (dec, "buffer did not decode, keeping");
+ }
+ walk = next;
+ }
+
+ /* drain any aggregation (or otherwise) leftover */
+ gst_audio_decoder_drain (dec);
+
+ /* now send queued data downstream */
+ timestamp = GST_CLOCK_TIME_NONE;
+ while (priv->queued) {
+ GstBuffer *buf = GST_BUFFER_CAST (priv->queued->data);
+
+ /* duration should always be valid for raw audio */
+ g_assert (GST_BUFFER_DURATION_IS_VALID (buf));
+
+ /* interpolate (backward) if needed */
+ if (G_LIKELY (timestamp != -1))
+ timestamp -= GST_BUFFER_DURATION (buf);
+
+ if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+ GST_LOG_OBJECT (dec, "applying reverse interpolated ts %"
+ GST_TIME_FORMAT, GST_TIME_ARGS (timestamp));
+ GST_BUFFER_TIMESTAMP (buf) = timestamp;
+ } else {
+ /* track otherwise */
+ timestamp = GST_BUFFER_TIMESTAMP (buf);
+ GST_LOG_OBJECT (dec, "tracking ts %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (timestamp));
+ }
+
+ if (G_LIKELY (res == GST_FLOW_OK)) {
+ GST_DEBUG_OBJECT (dec, "pushing buffer %p of size %u, "
+ "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf,
+ GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+ /* should be already, but let's be sure */
+ buf = gst_buffer_make_metadata_writable (buf);
+ /* avoid stray DISCONT from forward processing,
+ * which have no meaning in reverse pushing */
+ GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
+ res = gst_audio_decoder_push_forward (dec, buf);
+ } else {
+ gst_buffer_unref (buf);
+ }
+
+ priv->queued = g_list_delete_link (priv->queued, priv->queued);
+ }
+
+ return res;
+}
+
+static GstFlowReturn
+gst_audio_decoder_chain_reverse (GstAudioDecoder * dec, GstBuffer * buf)
+{
+ GstAudioDecoderPrivate *priv = dec->priv;
+ GstFlowReturn result = GST_FLOW_OK;
+
+ /* if we have a discont, move buffers to the decode list */
+ if (!buf || GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) {
+ GST_DEBUG_OBJECT (dec, "received discont");
+ while (priv->gather) {
+ GstBuffer *gbuf;
+
+ gbuf = GST_BUFFER_CAST (priv->gather->data);
+ /* remove from the gather list */
+ priv->gather = g_list_delete_link (priv->gather, priv->gather);
+ /* copy to decode queue */
+ priv->decode = g_list_prepend (priv->decode, gbuf);
+ }
+ /* decode stuff in the decode queue */
+ gst_audio_decoder_flush_decode (dec);
+ }
+
+ if (G_LIKELY (buf)) {
+ GST_DEBUG_OBJECT (dec, "gathering buffer %p of size %u, "
+ "time %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf,
+ GST_BUFFER_SIZE (buf), GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+ /* add buffer to gather queue */
+ priv->gather = g_list_prepend (priv->gather, buf);
+ }
+
+ return result;
+}
+
+static GstFlowReturn
+gst_audio_decoder_chain (GstPad * pad, GstBuffer * buffer)
+{
+ GstAudioDecoder *dec;
+ GstFlowReturn ret;
+
+ dec = GST_AUDIO_DECODER (GST_PAD_PARENT (pad));
+
+ if (G_UNLIKELY (!GST_PAD_CAPS (pad) && dec->priv->needs_format))
+ goto not_negotiated;
+
+ GST_LOG_OBJECT (dec,
+ "received buffer of size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buffer),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+
+ if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) {
+ gint64 samples, ts;
+
+ /* track present position */
+ ts = dec->priv->base_ts;
+ samples = dec->priv->samples;
+
+ GST_DEBUG_OBJECT (dec, "handling discont");
+ gst_audio_decoder_flush (dec, FALSE);
+ dec->priv->discont = TRUE;
+
+ /* buffer may claim DISCONT loudly, if it can't tell us where we are now,
+ * we'll stick to where we were ...
+ * Particularly useful/needed for upstream BYTE based */
+ if (dec->segment.rate > 0.0 && !GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) {
+ GST_DEBUG_OBJECT (dec, "... but restoring previous ts tracking");
+ dec->priv->base_ts = ts;
+ dec->priv->samples = samples;
+ }
+ }
+
+ if (dec->segment.rate > 0.0)
+ ret = gst_audio_decoder_chain_forward (dec, buffer);
+ else
+ ret = gst_audio_decoder_chain_reverse (dec, buffer);
+
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
+ return ret;
+
+ /* ERRORS */
+not_negotiated:
+ {
+ GST_ELEMENT_ERROR (dec, CORE, NEGOTIATION, (NULL),
+ ("decoder not initialized"));
+ gst_buffer_unref (buffer);
+ return GST_FLOW_NOT_NEGOTIATED;
+ }
+}
+
+/* perform upstream byte <-> time conversion (duration, seeking)
+ * if subclass allows and if enough data for moderately decent conversion */
+static inline gboolean
+gst_audio_decoder_do_byte (GstAudioDecoder * dec)
+{
+ return dec->priv->ctx.do_byte_time && dec->priv->ctx.info.bpf &&
+ dec->priv->ctx.info.rate <= dec->priv->samples_out;
+}
+
+static gboolean
+gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event)
+{
+ gboolean handled = FALSE;
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_NEWSEGMENT:
+ {
+ GstFormat format;
+ gdouble rate, arate;
+ gint64 start, stop, time;
+ gboolean update;
+
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+ gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format,
+ &start, &stop, &time);
+
+ if (format == GST_FORMAT_TIME) {
+ GST_DEBUG_OBJECT (dec, "received TIME NEW_SEGMENT %" GST_TIME_FORMAT
+ " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT
+ ", rate %g, applied_rate %g",
+ GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (time),
+ rate, arate);
+ } else {
+ GstFormat dformat = GST_FORMAT_TIME;
+
+ GST_DEBUG_OBJECT (dec, "received NEW_SEGMENT %" G_GINT64_FORMAT
+ " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT
+ ", rate %g, applied_rate %g", start, stop, time, rate, arate);
+ /* handle newsegment resulting from legacy simple seeking */
+ /* note that we need to convert this whether or not enough data
+ * to handle initial newsegment */
+ if (dec->priv->ctx.do_byte_time &&
+ gst_pad_query_convert (dec->sinkpad, GST_FORMAT_BYTES, start,
+ &dformat, &start)) {
+ /* best attempt convert */
+ /* as these are only estimates, stop is kept open-ended to avoid
+ * premature cutting */
+ GST_DEBUG_OBJECT (dec, "converted to TIME start %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (start));
+ format = GST_FORMAT_TIME;
+ time = start;
+ stop = GST_CLOCK_TIME_NONE;
+ /* replace event */
+ gst_event_unref (event);
+ event = gst_event_new_new_segment_full (update, rate, arate,
+ GST_FORMAT_TIME, start, stop, time);
+ } else {
+ GST_DEBUG_OBJECT (dec, "unsupported format; ignoring");
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+ break;
+ }
+ }
+
+ /* finish current segment */
+ gst_audio_decoder_drain (dec);
+
+ if (update) {
+ /* time progressed without data, see if we can fill the gap with
+ * some concealment data */
+ GST_DEBUG_OBJECT (dec,
+ "segment update: plc %d, do_plc %d, last_stop %" GST_TIME_FORMAT,
+ dec->priv->plc, dec->priv->ctx.do_plc,
+ GST_TIME_ARGS (dec->segment.last_stop));
+ if (dec->priv->plc && dec->priv->ctx.do_plc &&
+ dec->segment.rate > 0.0 && dec->segment.last_stop < start) {
+ GstAudioDecoderClass *klass;
+ GstBuffer *buf;
+
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+ /* hand subclass empty frame with duration that needs covering */
+ buf = gst_buffer_new ();
+ GST_BUFFER_DURATION (buf) = start - dec->segment.last_stop;
+ /* best effort, not much error handling */
+ gst_audio_decoder_handle_frame (dec, klass, buf);
+ }
+ } else {
+ /* prepare for next one */
+ gst_audio_decoder_flush (dec, FALSE);
+ /* and that's where we time from,
+ * in case upstream does not come up with anything better
+ * (e.g. upstream BYTE) */
+ if (format != GST_FORMAT_TIME) {
+ dec->priv->base_ts = start;
+ dec->priv->samples = 0;
+ }
+ }
+
+ /* and follow along with segment */
+ gst_segment_set_newsegment_full (&dec->segment, update, rate, arate,
+ format, start, stop, time);
+
+ dec->priv->pending_events =
+ g_list_append (dec->priv->pending_events, event);
+ handled = TRUE;
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+ break;
+ }
+
+ case GST_EVENT_FLUSH_START:
+ break;
+
+ case GST_EVENT_FLUSH_STOP:
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+ /* prepare for fresh start */
+ gst_audio_decoder_flush (dec, TRUE);
+
+ g_list_foreach (dec->priv->pending_events, (GFunc) gst_event_unref, NULL);
+ g_list_free (dec->priv->pending_events);
+ dec->priv->pending_events = NULL;
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+ break;
+
+ case GST_EVENT_EOS:
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+ gst_audio_decoder_drain (dec);
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+ break;
+
+ default:
+ break;
+ }
+
+ return handled;
+}
+
+static gboolean
+gst_audio_decoder_sink_event (GstPad * pad, GstEvent * event)
+{
+ GstAudioDecoder *dec;
+ GstAudioDecoderClass *klass;
+ gboolean handled = FALSE;
+ gboolean ret = TRUE;
+
+ dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+ GST_DEBUG_OBJECT (dec, "received event %d, %s", GST_EVENT_TYPE (event),
+ GST_EVENT_TYPE_NAME (event));
+
+ if (klass->event)
+ handled = klass->event (dec, event);
+
+ if (!handled)
+ handled = gst_audio_decoder_sink_eventfunc (dec, event);
+
+ if (!handled) {
+ /* Forward non-serialized events and EOS/FLUSH_STOP immediately.
+ * For EOS this is required because no buffer or serialized event
+ * will come after EOS and nothing could trigger another
+ * _finish_frame() call.
+ *
+ * For FLUSH_STOP this is required because it is expected
+ * to be forwarded immediately and no buffers are queued anyway.
+ */
+ if (!GST_EVENT_IS_SERIALIZED (event)
+ || GST_EVENT_TYPE (event) == GST_EVENT_EOS
+ || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+ ret = gst_pad_event_default (pad, event);
+ } else {
+ GST_AUDIO_DECODER_STREAM_LOCK (dec);
+ dec->priv->pending_events =
+ g_list_append (dec->priv->pending_events, event);
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+ ret = TRUE;
+ }
+ }
+
+ GST_DEBUG_OBJECT (dec, "event handled");
+
+ gst_object_unref (dec);
+ return ret;
+}
+
+static gboolean
+gst_audio_decoder_do_seek (GstAudioDecoder * dec, GstEvent * event)
+{
+ GstSeekFlags flags;
+ GstSeekType start_type, end_type;
+ GstFormat format;
+ gdouble rate;
+ gint64 start, start_time, end_time;
+ GstSegment seek_segment;
+ guint32 seqnum;
+
+ gst_event_parse_seek (event, &rate, &format, &flags, &start_type,
+ &start_time, &end_type, &end_time);
+
+ /* we'll handle plain open-ended flushing seeks with the simple approach */
+ if (rate != 1.0) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: rate");
+ return FALSE;
+ }
+
+ if (start_type != GST_SEEK_TYPE_SET) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: start time");
+ return FALSE;
+ }
+
+ if (end_type != GST_SEEK_TYPE_NONE ||
+ (end_type == GST_SEEK_TYPE_SET && end_time != GST_CLOCK_TIME_NONE)) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: end time");
+ return FALSE;
+ }
+
+ if (!(flags & GST_SEEK_FLAG_FLUSH)) {
+ GST_DEBUG_OBJECT (dec, "unsupported seek: not flushing");
+ return FALSE;
+ }
+
+ memcpy (&seek_segment, &dec->segment, sizeof (seek_segment));
+ gst_segment_set_seek (&seek_segment, rate, format, flags, start_type,
+ start_time, end_type, end_time, NULL);
+ start_time = seek_segment.last_stop;
+
+ format = GST_FORMAT_BYTES;
+ if (!gst_pad_query_convert (dec->sinkpad, GST_FORMAT_TIME, start_time,
+ &format, &start)) {
+ GST_DEBUG_OBJECT (dec, "conversion failed");
+ return FALSE;
+ }
+
+ seqnum = gst_event_get_seqnum (event);
+ event = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags,
+ GST_SEEK_TYPE_SET, start, GST_SEEK_TYPE_NONE, -1);
+ gst_event_set_seqnum (event, seqnum);
+
+ GST_DEBUG_OBJECT (dec, "seeking to %" GST_TIME_FORMAT " at byte offset %"
+ G_GINT64_FORMAT, GST_TIME_ARGS (start_time), start);
+
+ return gst_pad_push_event (dec->sinkpad, event);
+}
+
+static gboolean
+gst_audio_decoder_src_event (GstPad * pad, GstEvent * event)
+{
+ GstAudioDecoder *dec;
+ gboolean res = FALSE;
+
+ dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+ if (G_UNLIKELY (dec == NULL)) {
+ gst_event_unref (event);
+ return FALSE;
+ }
+
+ GST_DEBUG_OBJECT (dec, "received event %d, %s", GST_EVENT_TYPE (event),
+ GST_EVENT_TYPE_NAME (event));
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_SEEK:
+ {
+ GstFormat format, tformat;
+ gdouble rate;
+ GstSeekFlags flags;
+ GstSeekType cur_type, stop_type;
+ gint64 cur, stop;
+ gint64 tcur, tstop;
+ guint32 seqnum;
+
+ gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur,
+ &stop_type, &stop);
+ seqnum = gst_event_get_seqnum (event);
+
+ /* upstream gets a chance first */
+ if ((res = gst_pad_push_event (dec->sinkpad, event)))
+ break;
+
+ /* if upstream fails for a time seek, maybe we can help if allowed */
+ if (format == GST_FORMAT_TIME) {
+ if (gst_audio_decoder_do_byte (dec))
+ res = gst_audio_decoder_do_seek (dec, event);
+ break;
+ }
+
+ /* ... though a non-time seek can be aided as well */
+ /* First bring the requested format to time */
+ tformat = GST_FORMAT_TIME;
+ if (!(res = gst_pad_query_convert (pad, format, cur, &tformat, &tcur)))
+ goto convert_error;
+ if (!(res = gst_pad_query_convert (pad, format, stop, &tformat, &tstop)))
+ goto convert_error;
+
+ /* then seek with time on the peer */
+ event = gst_event_new_seek (rate, GST_FORMAT_TIME,
+ flags, cur_type, tcur, stop_type, tstop);
+ gst_event_set_seqnum (event, seqnum);
+
+ res = gst_pad_push_event (dec->sinkpad, event);
+ break;
+ }
+ default:
+ res = gst_pad_push_event (dec->sinkpad, event);
+ break;
+ }
+done:
+ gst_object_unref (dec);
+
+ return res;
+
+ /* ERRORS */
+convert_error:
+ {
+ GST_DEBUG_OBJECT (dec, "cannot convert start/stop for seek");
+ goto done;
+ }
+}
+
+/*
+ * gst_audio_encoded_audio_convert:
+ * @fmt: audio format of the encoded audio
+ * @bytes: number of encoded bytes
+ * @samples: number of encoded samples
+ * @src_format: source format
+ * @src_value: source value
+ * @dest_format: destination format
+ * @dest_value: destination format
+ *
+ * Helper function to convert @src_value in @src_format to @dest_value in
+ * @dest_format for encoded audio data. Conversion is possible between
+ * BYTE and TIME format by using estimated bitrate based on
+ * @samples and @bytes (and @fmt).
+ */
+/* FIXME: make gst_audio_encoded_audio_convert() public? */
+static gboolean
+gst_audio_encoded_audio_convert (GstAudioInfo * fmt,
+ gint64 bytes, gint64 samples, GstFormat src_format,
+ gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
+{
+ gboolean res = FALSE;
+
+ g_return_val_if_fail (dest_format != NULL, FALSE);
+ g_return_val_if_fail (dest_value != NULL, FALSE);
+
+ if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+ src_value == -1)) {
+ if (dest_value)
+ *dest_value = src_value;
+ return TRUE;
+ }
+
+ if (samples == 0 || bytes == 0 || fmt->rate == 0) {
+ GST_DEBUG ("not enough metadata yet to convert");
+ goto exit;
+ }
+
+ bytes *= fmt->rate;
+
+ switch (src_format) {
+ case GST_FORMAT_BYTES:
+ switch (*dest_format) {
+ case GST_FORMAT_TIME:
+ *dest_value = gst_util_uint64_scale (src_value,
+ GST_SECOND * samples, bytes);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ case GST_FORMAT_TIME:
+ switch (*dest_format) {
+ case GST_FORMAT_BYTES:
+ *dest_value = gst_util_uint64_scale (src_value, bytes,
+ samples * GST_SECOND);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ default:
+ res = FALSE;
+ }
+
+exit:
+ return res;
+}
+
+static gboolean
+gst_audio_decoder_sink_query (GstPad * pad, GstQuery * query)
+{
+ gboolean res = TRUE;
+ GstAudioDecoder *dec;
+
+ dec = GST_AUDIO_DECODER (gst_pad_get_parent (pad));
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_FORMATS:
+ {
+ gst_query_set_formats (query, 2, GST_FORMAT_TIME, GST_FORMAT_BYTES);
+ res = TRUE;
+ 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_audio_encoded_audio_convert (&dec->priv->ctx.info,
+ dec->priv->bytes_in, dec->priv->samples_out,
+ 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;
+ }
+
+error:
+ gst_object_unref (dec);
+ return res;
+}
+
+static const GstQueryType *
+gst_audio_decoder_get_query_types (GstPad * pad)
+{
+ static const GstQueryType gst_audio_decoder_src_query_types[] = {
+ GST_QUERY_POSITION,
+ GST_QUERY_DURATION,
+ GST_QUERY_CONVERT,
+ GST_QUERY_LATENCY,
+ 0
+ };
+
+ return gst_audio_decoder_src_query_types;
+}
+
+/* FIXME ? are any of these queries (other than latency) a decoder's business ??
+ * also, the conversion stuff might seem to make sense, but seems to not mind
+ * segment stuff etc at all
+ * Supposedly that's backward compatibility ... */
+static gboolean
+gst_audio_decoder_src_query (GstPad * pad, GstQuery * query)
+{
+ GstAudioDecoder *dec;
+ GstPad *peerpad;
+ gboolean res = FALSE;
+
+ dec = GST_AUDIO_DECODER (GST_PAD_PARENT (pad));
+ if (G_UNLIKELY (dec == NULL))
+ return FALSE;
+
+ peerpad = gst_pad_get_peer (GST_PAD (dec->sinkpad));
+
+ GST_LOG_OBJECT (dec, "handling query: %" GST_PTR_FORMAT, query);
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_DURATION:
+ {
+ GstFormat format;
+
+ /* upstream in any case */
+ if ((res = gst_pad_query_default (pad, query)))
+ break;
+
+ gst_query_parse_duration (query, &format, NULL);
+ /* try answering TIME by converting from BYTE if subclass allows */
+ if (format == GST_FORMAT_TIME && gst_audio_decoder_do_byte (dec)) {
+ gint64 value;
+
+ format = GST_FORMAT_BYTES;
+ if (gst_pad_query_peer_duration (dec->sinkpad, &format, &value)) {
+ GST_LOG_OBJECT (dec, "upstream size %" G_GINT64_FORMAT, value);
+ format = GST_FORMAT_TIME;
+ if (gst_pad_query_convert (dec->sinkpad, GST_FORMAT_BYTES, value,
+ &format, &value)) {
+ gst_query_set_duration (query, GST_FORMAT_TIME, value);
+ res = TRUE;
+ }
+ }
+ }
+ break;
+ }
+ case GST_QUERY_POSITION:
+ {
+ GstFormat format;
+ gint64 time, value;
+
+ if ((res = gst_pad_peer_query (dec->sinkpad, query))) {
+ GST_LOG_OBJECT (dec, "returning peer response");
+ break;
+ }
+
+ /* we start from the last seen time */
+ time = dec->segment.last_stop;
+ /* correct for the segment values */
+ time = gst_segment_to_stream_time (&dec->segment, GST_FORMAT_TIME, time);
+
+ GST_LOG_OBJECT (dec,
+ "query %p: our time: %" GST_TIME_FORMAT, query, GST_TIME_ARGS (time));
+
+ /* and convert to the final format */
+ gst_query_parse_position (query, &format, NULL);
+ if (!(res = gst_pad_query_convert (pad, GST_FORMAT_TIME, time,
+ &format, &value)))
+ break;
+
+ gst_query_set_position (query, format, value);
+
+ GST_LOG_OBJECT (dec,
+ "query %p: we return %" G_GINT64_FORMAT " (format %u)", query, value,
+ format);
+ break;
+ }
+ case GST_QUERY_FORMATS:
+ {
+ gst_query_set_formats (query, 3,
+ GST_FORMAT_TIME, GST_FORMAT_BYTES, GST_FORMAT_DEFAULT);
+ res = TRUE;
+ 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_audio_info_convert (&dec->priv->ctx.info,
+ src_fmt, src_val, dest_fmt, &dest_val)))
+ break;
+ gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+ break;
+ }
+ case GST_QUERY_LATENCY:
+ {
+ if ((res = gst_pad_peer_query (dec->sinkpad, query))) {
+ gboolean live;
+ GstClockTime min_latency, max_latency;
+
+ gst_query_parse_latency (query, &live, &min_latency, &max_latency);
+ GST_DEBUG_OBJECT (dec, "Peer latency: live %d, min %"
+ GST_TIME_FORMAT " max %" GST_TIME_FORMAT, live,
+ GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
+
+ GST_OBJECT_LOCK (dec);
+ /* add our latency */
+ if (min_latency != -1)
+ min_latency += dec->priv->ctx.min_latency;
+ if (max_latency != -1)
+ max_latency += dec->priv->ctx.max_latency;
+ GST_OBJECT_UNLOCK (dec);
+
+ gst_query_set_latency (query, live, min_latency, max_latency);
+ }
+ break;
+ }
+ default:
+ res = gst_pad_query_default (pad, query);
+ break;
+ }
+
+ gst_object_unref (peerpad);
+ return res;
+}
+
+static gboolean
+gst_audio_decoder_stop (GstAudioDecoder * dec)
+{
+ GstAudioDecoderClass *klass;
+ gboolean ret = TRUE;
+
+ GST_DEBUG_OBJECT (dec, "gst_audio_decoder_stop");
+
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+ if (klass->stop) {
+ ret = klass->stop (dec);
+ }
+
+ /* clean up */
+ gst_audio_decoder_reset (dec, TRUE);
+
+ if (ret)
+ dec->priv->active = FALSE;
+
+ return TRUE;
+}
+
+static gboolean
+gst_audio_decoder_start (GstAudioDecoder * dec)
+{
+ GstAudioDecoderClass *klass;
+ gboolean ret = TRUE;
+
+ GST_DEBUG_OBJECT (dec, "gst_audio_decoder_start");
+
+ klass = GST_AUDIO_DECODER_GET_CLASS (dec);
+
+ /* arrange clean state */
+ gst_audio_decoder_reset (dec, TRUE);
+
+ if (klass->start) {
+ ret = klass->start (dec);
+ }
+
+ if (ret)
+ dec->priv->active = TRUE;
+
+ return TRUE;
+}
+
+static void
+gst_audio_decoder_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec)
+{
+ GstAudioDecoder *dec;
+
+ dec = GST_AUDIO_DECODER (object);
+
+ switch (prop_id) {
+ case PROP_LATENCY:
+ g_value_set_int64 (value, dec->priv->latency);
+ break;
+ case PROP_TOLERANCE:
+ g_value_set_int64 (value, dec->priv->tolerance);
+ break;
+ case PROP_PLC:
+ g_value_set_boolean (value, dec->priv->plc);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gst_audio_decoder_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
+{
+ GstAudioDecoder *dec;
+
+ dec = GST_AUDIO_DECODER (object);
+
+ switch (prop_id) {
+ case PROP_LATENCY:
+ dec->priv->latency = g_value_get_int64 (value);
+ break;
+ case PROP_TOLERANCE:
+ dec->priv->tolerance = g_value_get_int64 (value);
+ break;
+ case PROP_PLC:
+ dec->priv->plc = g_value_get_boolean (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static GstStateChangeReturn
+gst_audio_decoder_change_state (GstElement * element, GstStateChange transition)
+{
+ GstAudioDecoder *codec;
+ GstStateChangeReturn ret;
+
+ codec = GST_AUDIO_DECODER (element);
+
+ switch (transition) {
+ case GST_STATE_CHANGE_NULL_TO_READY:
+ break;
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
+ if (!gst_audio_decoder_start (codec)) {
+ goto start_failed;
+ }
+ break;
+ case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
+ break;
+ default:
+ break;
+ }
+
+ ret = parent_class->change_state (element, transition);
+
+ switch (transition) {
+ case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+ break;
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ if (!gst_audio_decoder_stop (codec)) {
+ goto stop_failed;
+ }
+ break;
+ case GST_STATE_CHANGE_READY_TO_NULL:
+ break;
+ default:
+ break;
+ }
+
+ return ret;
+
+start_failed:
+ {
+ GST_ELEMENT_ERROR (codec, LIBRARY, INIT, (NULL), ("Failed to start codec"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+stop_failed:
+ {
+ GST_ELEMENT_ERROR (codec, LIBRARY, INIT, (NULL), ("Failed to stop codec"));
+ return GST_STATE_CHANGE_FAILURE;
+ }
+}
+
+GstFlowReturn
+_gst_audio_decoder_error (GstAudioDecoder * dec, gint weight,
+ GQuark domain, gint code, gchar * txt, gchar * dbg, const gchar * file,
+ const gchar * function, gint line)
+{
+ if (txt)
+ GST_WARNING_OBJECT (dec, "error: %s", txt);
+ if (dbg)
+ GST_WARNING_OBJECT (dec, "error: %s", dbg);
+ dec->priv->error_count += weight;
+ dec->priv->discont = TRUE;
+ if (dec->priv->ctx.max_errors < dec->priv->error_count) {
+ gst_element_message_full (GST_ELEMENT (dec), GST_MESSAGE_ERROR,
+ domain, code, txt, dbg, file, function, line);
+ return GST_FLOW_ERROR;
+ } else {
+ return GST_FLOW_OK;
+ }
+}
+
+/**
+ * gst_audio_decoder_get_audio_info:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: a #GstAudioInfo describing the input audio format
+ *
+ * Since: 0.10.36
+ */
+GstAudioInfo *
+gst_audio_decoder_get_audio_info (GstAudioDecoder * dec)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), NULL);
+
+ return &dec->priv->ctx.info;
+}
+
+/**
+ * gst_audio_decoder_set_plc_aware:
+ * @dec: a #GstAudioDecoder
+ * @plc: new plc state
+ *
+ * Indicates whether or not subclass handles packet loss concealment (plc).
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_plc_aware (GstAudioDecoder * dec, gboolean plc)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ dec->priv->ctx.do_plc = plc;
+}
+
+/**
+ * gst_audio_decoder_get_plc_aware:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured plc handling
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_plc_aware (GstAudioDecoder * dec)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+ return dec->priv->ctx.do_plc;
+}
+
+/**
+ * gst_audio_decoder_set_byte_time:
+ * @dec: a #GstAudioDecoder
+ * @enabled: whether to enable byte to time conversion
+ *
+ * Allows baseclass to perform byte to time estimated conversion.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_byte_time (GstAudioDecoder * dec, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ dec->priv->ctx.do_byte_time = enabled;
+}
+
+/**
+ * gst_audio_decoder_get_byte_time:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured byte to time conversion setting
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_byte_time (GstAudioDecoder * dec)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+ return dec->priv->ctx.do_byte_time;
+}
+
+/**
+ * gst_audio_decoder_get_delay:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured decoder delay
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_delay (GstAudioDecoder * dec)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+ return dec->priv->ctx.delay;
+}
+
+/**
+ * gst_audio_decoder_set_max_errors:
+ * @dec: a #GstAudioDecoder
+ * @num: max tolerated errors
+ *
+ * Sets numbers of tolerated decoder errors, where a tolerated one is then only
+ * warned about, but more than tolerated will lead to fatal error. Default
+ * is set to GST_AUDIO_DECODER_MAX_ERRORS.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_max_errors (GstAudioDecoder * dec, gint num)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ dec->priv->ctx.max_errors = num;
+}
+
+/**
+ * gst_audio_decoder_get_max_errors:
+ * @dec: a #GstAudioDecoder
+ *
+ * Returns: currently configured decoder tolerated error count.
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_decoder_get_max_errors (GstAudioDecoder * dec)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+ return dec->priv->ctx.max_errors;
+}
+
+/**
+ * gst_audio_decoder_set_latency:
+ * @dec: a #GstAudioDecoder
+ * @min: minimum latency
+ * @max: maximum latency
+ *
+ * Sets decoder latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_latency (GstAudioDecoder * dec,
+ GstClockTime min, GstClockTime max)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ GST_OBJECT_LOCK (dec);
+ dec->priv->ctx.min_latency = min;
+ dec->priv->ctx.max_latency = max;
+ GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_latency:
+ * @dec: a #GstAudioDecoder
+ * @min: (out) (allow-none): a pointer to storage to hold minimum latency
+ * @max: (out) (allow-none): a pointer to storage to hold maximum latency
+ *
+ * Sets the variables pointed to by @min and @max to the currently configured
+ * latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_get_latency (GstAudioDecoder * dec,
+ GstClockTime * min, GstClockTime * max)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ GST_OBJECT_LOCK (dec);
+ if (min)
+ *min = dec->priv->ctx.min_latency;
+ if (max)
+ *max = dec->priv->ctx.max_latency;
+ GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_parse_state:
+ * @dec: a #GstAudioDecoder
+ * @sync: a pointer to a variable to hold the current sync state
+ * @eos: a pointer to a variable to hold the current eos state
+ *
+ * Return current parsing (sync and eos) state.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_get_parse_state (GstAudioDecoder * dec,
+ gboolean * sync, gboolean * eos)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ if (sync)
+ *sync = dec->priv->ctx.sync;
+ if (eos)
+ *eos = dec->priv->ctx.eos;
+}
+
+/**
+ * gst_audio_decoder_set_plc:
+ * @dec: a #GstAudioDecoder
+ * @enabled: new state
+ *
+ * Enable or disable decoder packet loss concealment, provided subclass
+ * and codec are capable and allow handling plc.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_plc (GstAudioDecoder * dec, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ GST_LOG_OBJECT (dec, "enabled: %d", enabled);
+
+ GST_OBJECT_LOCK (dec);
+ dec->priv->plc = enabled;
+ GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_plc:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder packet loss concealment handling.
+ *
+ * Returns: TRUE if packet loss concealment is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_decoder_get_plc (GstAudioDecoder * dec)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), FALSE);
+
+ GST_OBJECT_LOCK (dec);
+ result = dec->priv->plc;
+ GST_OBJECT_UNLOCK (dec);
+
+ return result;
+}
+
+/**
+ * gst_audio_decoder_set_min_latency:
+ * @dec: a #GstAudioDecoder
+ * @num: new minimum latency
+ *
+ * Sets decoder minimum aggregation latency.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_min_latency (GstAudioDecoder * dec, gint64 num)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ GST_OBJECT_LOCK (dec);
+ dec->priv->latency = num;
+ GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_min_latency:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder's latency aggregation.
+ *
+ * Returns: aggregation latency.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gint64
+gst_audio_decoder_get_min_latency (GstAudioDecoder * dec)
+{
+ gint64 result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), FALSE);
+
+ GST_OBJECT_LOCK (dec);
+ result = dec->priv->latency;
+ GST_OBJECT_UNLOCK (dec);
+
+ return result;
+}
+
+/**
+ * gst_audio_decoder_set_tolerance:
+ * @dec: a #GstAudioDecoder
+ * @tolerance: new tolerance
+ *
+ * Configures decoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_tolerance (GstAudioDecoder * dec, gint64 tolerance)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ GST_OBJECT_LOCK (dec);
+ dec->priv->tolerance = tolerance;
+ GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_tolerance:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries current audio jitter tolerance threshold.
+ *
+ * Returns: decoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gint64
+gst_audio_decoder_get_tolerance (GstAudioDecoder * dec)
+{
+ gint64 result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+ GST_OBJECT_LOCK (dec);
+ result = dec->priv->tolerance;
+ GST_OBJECT_UNLOCK (dec);
+
+ return result;
+}
+
+/**
+ * gst_audio_decoder_set_drainable:
+ * @dec: a #GstAudioDecoder
+ * @enabled: new state
+ *
+ * Configures decoder drain handling. If drainable, subclass might
+ * be handed a NULL buffer to have it return any leftover decoded data.
+ * Otherwise, it is not considered so capable and will only ever be passed
+ * real data.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_drainable (GstAudioDecoder * dec, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ GST_OBJECT_LOCK (dec);
+ dec->priv->drainable = enabled;
+ GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_drainable:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder drain handling.
+ *
+ * Returns: TRUE if drainable handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_decoder_get_drainable (GstAudioDecoder * dec)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+ GST_OBJECT_LOCK (dec);
+ result = dec->priv->drainable;
+ GST_OBJECT_UNLOCK (dec);
+
+ return result;
+}
+
+/**
+ * gst_audio_decoder_set_needs_format:
+ * @dec: a #GstAudioDecoder
+ * @enabled: new state
+ *
+ * Configures decoder format needs. If enabled, subclass needs to be
+ * negotiated with format caps before it can process any data. It will then
+ * never be handed any data before it has been configured.
+ * Otherwise, it might be handed data without having been configured and
+ * is then expected being able to do so either by default
+ * or based on the input data.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_decoder_set_needs_format (GstAudioDecoder * dec, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+ GST_OBJECT_LOCK (dec);
+ dec->priv->needs_format = enabled;
+ GST_OBJECT_UNLOCK (dec);
+}
+
+/**
+ * gst_audio_decoder_get_needs_format:
+ * @dec: a #GstAudioDecoder
+ *
+ * Queries decoder required format handling.
+ *
+ * Returns: TRUE if required format handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_decoder_get_needs_format (GstAudioDecoder * dec)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_DECODER (dec), 0);
+
+ GST_OBJECT_LOCK (dec);
+ result = dec->priv->needs_format;
+ GST_OBJECT_UNLOCK (dec);
+
+ return result;
+}
--- /dev/null
+/* GStreamer
+ * Copyright (C) 2009 Igalia S.L.
+ * Author: Iago Toral Quiroga <itoral@igalia.com>
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * 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_AUDIO_DECODER_H_
+#define _GST_AUDIO_DECODER_H_
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+#include <gst/base/gstadapter.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_AUDIO_DECODER \
+ (gst_audio_decoder_get_type())
+#define GST_AUDIO_DECODER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_DECODER,GstAudioDecoder))
+#define GST_AUDIO_DECODER_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_DECODER,GstAudioDecoderClass))
+#define GST_AUDIO_DECODER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_DECODER,GstAudioDecoderClass))
+#define GST_IS_AUDIO_DECODER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_DECODER))
+#define GST_IS_AUDIO_DECODER_CLASS(obj) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIO_DECODER))
+
+/**
+ * GST_AUDIO_DECODER_SINK_NAME:
+ *
+ * The name of the templates for the sink pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SINK_NAME "sink"
+/**
+ * GST_AUDIO_DECODER_SRC_NAME:
+ *
+ * The name of the templates for the source pad.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SRC_NAME "src"
+
+/**
+ * GST_AUDIO_DECODER_SRC_PAD:
+ * @obj: base audio codec instance
+ *
+ * Gives the pointer to the source #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SRC_PAD(obj) (((GstAudioDecoder *) (obj))->srcpad)
+
+/**
+ * GST_AUDIO_DECODER_SINK_PAD:
+ * @obj: base audio codec instance
+ *
+ * Gives the pointer to the sink #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_SINK_PAD(obj) (((GstAudioDecoder *) (obj))->sinkpad)
+
+#define GST_AUDIO_DECODER_STREAM_LOCK(dec) g_static_rec_mutex_lock (&GST_AUDIO_DECODER (dec)->stream_lock)
+#define GST_AUDIO_DECODER_STREAM_UNLOCK(dec) g_static_rec_mutex_unlock (&GST_AUDIO_DECODER (dec)->stream_lock)
+
+typedef struct _GstAudioDecoder GstAudioDecoder;
+typedef struct _GstAudioDecoderClass GstAudioDecoderClass;
+
+typedef struct _GstAudioDecoderPrivate GstAudioDecoderPrivate;
+
+/* do not use this one, use macro below */
+GstFlowReturn _gst_audio_decoder_error (GstAudioDecoder *dec, gint weight,
+ GQuark domain, gint code,
+ gchar *txt, gchar *debug,
+ const gchar *file, const gchar *function,
+ gint line);
+
+/**
+ * GST_AUDIO_DECODER_ERROR:
+ * @el: the base audio decoder element that generates the error
+ * @weight: element defined weight of the error, added to error count
+ * @domain: like CORE, LIBRARY, RESOURCE or STREAM (see #gstreamer-GstGError)
+ * @code: error code defined for that domain (see #gstreamer-GstGError)
+ * @text: the message to display (format string and args enclosed in
+ * parentheses)
+ * @debug: debugging information for the message (format string and args
+ * enclosed in parentheses)
+ * @ret: variable to receive return value
+ *
+ * Utility function that audio decoder elements can use in case they encountered
+ * a data processing error that may be fatal for the current "data unit" but
+ * need not prevent subsequent decoding. Such errors are counted and if there
+ * are too many, as configured in the context's max_errors, the pipeline will
+ * post an error message and the application will be requested to stop further
+ * media processing. Otherwise, it is considered a "glitch" and only a warning
+ * is logged. In either case, @ret is set to the proper value to
+ * return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_ERROR(el, weight, domain, code, text, debug, ret) \
+G_STMT_START { \
+ gchar *__txt = _gst_element_error_printf text; \
+ gchar *__dbg = _gst_element_error_printf debug; \
+ GstAudioDecoder *dec = GST_AUDIO_DECODER (el); \
+ ret = _gst_audio_decoder_error (dec, weight, GST_ ## domain ## _ERROR, \
+ GST_ ## domain ## _ERROR_ ## code, __txt, __dbg, __FILE__, \
+ GST_FUNCTION, __LINE__); \
+} G_STMT_END
+
+
+/**
+ * GST_AUDIO_DECODER_MAX_ERRORS:
+ *
+ * Default maximum number of errors tolerated before signaling error.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_DECODER_MAX_ERRORS 10
+
+/**
+ * GstAudioDecoder:
+ *
+ * The opaque #GstAudioDecoder data structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioDecoder
+{
+ GstElement element;
+
+ /*< protected >*/
+ /* source and sink pads */
+ GstPad *sinkpad;
+ GstPad *srcpad;
+
+ /* protects all data processing, i.e. is locked
+ * in the chain function, finish_frame and when
+ * processing serialized events */
+ GStaticRecMutex stream_lock;
+
+ /* MT-protected (with STREAM_LOCK) */
+ GstSegment segment;
+
+ /*< private >*/
+ GstAudioDecoderPrivate *priv;
+ gpointer _gst_reserved[GST_PADDING_LARGE];
+};
+
+/**
+ * GstAudioDecoderClass:
+ * @element_class: The parent class structure
+ * @start: Optional.
+ * Called when the element starts processing.
+ * Allows opening external resources.
+ * @stop: Optional.
+ * Called when the element stops processing.
+ * Allows closing external resources.
+ * @set_format: Notifies subclass of incoming data format (caps).
+ * @parse: Optional.
+ * Allows chopping incoming data into manageable units (frames)
+ * for subsequent decoding. This division is at subclass
+ * discretion and may or may not correspond to 1 (or more)
+ * frames as defined by audio format.
+ * @handle_frame: Provides input data (or NULL to clear any remaining data)
+ * to subclass. Input data ref management is performed by
+ * base class, subclass should not care or intervene,
+ * and input data is only valid until next call to base class,
+ * most notably a call to gst_audio_decoder_finish_frame().
+ * @flush: Optional.
+ * Instructs subclass to clear any codec caches and discard
+ * any pending samples and not yet returned decoded data.
+ * @hard indicates whether a FLUSH is being processed,
+ * or otherwise a DISCONT (or conceptually similar).
+ * @event: Optional.
+ * Event handler on the sink pad. This function should return
+ * TRUE if the event was handled and should be discarded
+ * (i.e. not unref'ed).
+ * @pre_push: Optional.
+ * Called just prior to pushing (encoded data) buffer downstream.
+ * Subclass has full discretionary access to buffer,
+ * and a not OK flow return will abort downstream pushing.
+ *
+ * Subclasses can override any of the available virtual methods or not, as
+ * needed. At minimum @handle_frame (and likely @set_format) needs to be
+ * overridden.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioDecoderClass
+{
+ GstElementClass element_class;
+
+ /*< public >*/
+ /* virtual methods for subclasses */
+
+ gboolean (*start) (GstAudioDecoder *dec);
+
+ gboolean (*stop) (GstAudioDecoder *dec);
+
+ gboolean (*set_format) (GstAudioDecoder *dec,
+ GstCaps *caps);
+
+ GstFlowReturn (*parse) (GstAudioDecoder *dec,
+ GstAdapter *adapter,
+ gint *offset, gint *length);
+
+ GstFlowReturn (*handle_frame) (GstAudioDecoder *dec,
+ GstBuffer *buffer);
+
+ void (*flush) (GstAudioDecoder *dec, gboolean hard);
+
+ GstFlowReturn (*pre_push) (GstAudioDecoder *dec,
+ GstBuffer **buffer);
+
+ gboolean (*event) (GstAudioDecoder *dec,
+ GstEvent *event);
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING_LARGE];
+};
+
+GType gst_audio_decoder_get_type (void);
+
+GstFlowReturn gst_audio_decoder_finish_frame (GstAudioDecoder * dec,
+ GstBuffer * buf, gint frames);
+
+/* context parameters */
+GstAudioInfo * gst_audio_decoder_get_audio_info (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_plc_aware (GstAudioDecoder * dec,
+ gboolean plc);
+
+gint gst_audio_decoder_get_plc_aware (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_byte_time (GstAudioDecoder * dec,
+ gboolean enabled);
+
+gint gst_audio_decoder_get_byte_time (GstAudioDecoder * dec);
+
+gint gst_audio_decoder_get_delay (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_max_errors (GstAudioDecoder * dec,
+ gint num);
+
+gint gst_audio_decoder_get_max_errors (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_latency (GstAudioDecoder * dec,
+ GstClockTime min,
+ GstClockTime max);
+
+void gst_audio_decoder_get_latency (GstAudioDecoder * dec,
+ GstClockTime * min,
+ GstClockTime * max);
+
+void gst_audio_decoder_get_parse_state (GstAudioDecoder * dec,
+ gboolean * sync,
+ gboolean * eos);
+
+
+/* object properties */
+void gst_audio_decoder_set_plc (GstAudioDecoder * dec,
+ gboolean enabled);
+
+gboolean gst_audio_decoder_get_plc (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_min_latency (GstAudioDecoder * dec,
+ gint64 num);
+
+gint64 gst_audio_decoder_get_min_latency (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_tolerance (GstAudioDecoder * dec,
+ gint64 tolerance);
+
+gint64 gst_audio_decoder_get_tolerance (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_drainable (GstAudioDecoder * dec,
+ gboolean enabled);
+
+gboolean gst_audio_decoder_get_drainable (GstAudioDecoder * dec);
+
+void gst_audio_decoder_set_needs_format (GstAudioDecoder * dec,
+ gboolean enabled);
+
+gboolean gst_audio_decoder_get_needs_format (GstAudioDecoder * dec);
+
+G_END_DECLS
+
+#endif /* _GST_AUDIO_DECODER_H_ */
--- /dev/null
+/* GStreamer
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * 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:gstaudioencoder
+ * @short_description: Base class for audio encoders
+ * @see_also: #GstBaseTransform
+ * @since: 0.10.36
+ *
+ * This base class is for audio encoders turning raw audio samples into
+ * encoded audio data.
+ *
+ * GstAudioEncoder and subclass should cooperate as follows.
+ * <orderedlist>
+ * <listitem>
+ * <itemizedlist><title>Configuration</title>
+ * <listitem><para>
+ * Initially, GstAudioEncoder calls @start when the encoder element
+ * is activated, which allows subclass to perform any global setup.
+ * </para></listitem>
+ * <listitem><para>
+ * GstAudioEncoder calls @set_format to inform subclass of the format
+ * of input audio data that it is about to receive. Subclass should
+ * setup for encoding and configure various base class parameters
+ * appropriately, notably those directing desired input data handling.
+ * While unlikely, it might be called more than once, if changing input
+ * parameters require reconfiguration.
+ * </para></listitem>
+ * <listitem><para>
+ * GstAudioEncoder calls @stop at end of all processing.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * As of configuration stage, and throughout processing, GstAudioEncoder
+ * maintains various parameters that provide required context,
+ * e.g. describing the format of input audio data.
+ * Conversely, subclass can and should configure these context parameters
+ * to inform base class of its expectation w.r.t. buffer handling.
+ * <listitem>
+ * <itemizedlist>
+ * <title>Data processing</title>
+ * <listitem><para>
+ * Base class gathers input sample data (as directed by the context's
+ * frame_samples and frame_max) and provides this to subclass' @handle_frame.
+ * </para></listitem>
+ * <listitem><para>
+ * If codec processing results in encoded data, subclass should call
+ * @gst_audio_encoder_finish_frame to have encoded data pushed
+ * downstream. Alternatively, it might also call to indicate dropped
+ * (non-encoded) samples.
+ * </para></listitem>
+ * <listitem><para>
+ * Just prior to actually pushing a buffer downstream,
+ * it is passed to @pre_push.
+ * </para></listitem>
+ * <listitem><para>
+ * During the parsing process GstAudioEncoderClass will handle both
+ * srcpad and sinkpad events. Sink events will be passed to subclass
+ * if @event callback has been provided.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * <listitem>
+ * <itemizedlist><title>Shutdown phase</title>
+ * <listitem><para>
+ * GstAudioEncoder class calls @stop to inform the subclass that data
+ * parsing will be stopped.
+ * </para></listitem>
+ * </itemizedlist>
+ * </listitem>
+ * </orderedlist>
+ *
+ * Subclass is responsible for providing pad template caps for
+ * source and sink pads. The pads need to be named "sink" and "src". It also
+ * needs to set the fixed caps on srcpad, when the format is ensured. This
+ * is typically when base class calls subclass' @set_format function, though
+ * it might be delayed until calling @gst_audio_encoder_finish_frame.
+ *
+ * In summary, above process should have subclass concentrating on
+ * codec data processing while leaving other matters to base class,
+ * such as most notably timestamp handling. While it may exert more control
+ * in this area (see e.g. @pre_push), it is very much not recommended.
+ *
+ * In particular, base class will either favor tracking upstream timestamps
+ * (at the possible expense of jitter) or aim to arrange for a perfect stream of
+ * output timestamps, depending on #GstAudioEncoder:perfect-timestamp.
+ * However, in the latter case, the input may not be so perfect or ideal, which
+ * is handled as follows. An input timestamp is compared with the expected
+ * timestamp as dictated by input sample stream and if the deviation is less
+ * than #GstAudioEncoder:tolerance, the deviation is discarded.
+ * Otherwise, it is considered a discontuinity and subsequent output timestamp
+ * is resynced to the new position after performing configured discontinuity
+ * processing. In the non-perfect-timestamp case, an upstream variation
+ * exceeding tolerance only leads to marking DISCONT on subsequent outgoing
+ * (while timestamps are adjusted to upstream regardless of variation).
+ * While DISCONT is also marked in the perfect-timestamp case, this one
+ * optionally (see #GstAudioEncoder:hard-resync)
+ * performs some additional steps, such as clipping of (early) input samples
+ * or draining all currently remaining input data, depending on the direction
+ * of the discontuinity.
+ *
+ * If perfect timestamps are arranged, it is also possible to request baseclass
+ * (usually set by subclass) to provide additional buffer metadata (in OFFSET
+ * and OFFSET_END) fields according to granule defined semantics currently
+ * needed by oggmux. Specifically, OFFSET is set to granulepos (= sample count
+ * including buffer) and OFFSET_END to corresponding timestamp (as determined
+ * by same sample count and sample rate).
+ *
+ * Things that subclass need to take care of:
+ * <itemizedlist>
+ * <listitem><para>Provide pad templates</para></listitem>
+ * <listitem><para>
+ * Set source pad caps when appropriate
+ * </para></listitem>
+ * <listitem><para>
+ * Inform base class of buffer processing needs using context's
+ * frame_samples and frame_bytes.
+ * </para></listitem>
+ * <listitem><para>
+ * Set user-configurable properties to sane defaults for format and
+ * implementing codec at hand, e.g. those controlling timestamp behaviour
+ * and discontinuity processing.
+ * </para></listitem>
+ * <listitem><para>
+ * Accept data in @handle_frame and provide encoded results to
+ * @gst_audio_encoder_finish_frame.
+ * </para></listitem>
+ * </itemizedlist>
+ *
+ */
+
+#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 "gstaudioencoder.h"
+#include <gst/base/gstadapter.h>
+#include <gst/audio/audio.h>
+#include <gst/pbutils/descriptions.h>
+
+#include <stdlib.h>
+#include <string.h>
+
+
+GST_DEBUG_CATEGORY_STATIC (gst_audio_encoder_debug);
+#define GST_CAT_DEFAULT gst_audio_encoder_debug
+
+#define GST_AUDIO_ENCODER_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), GST_TYPE_AUDIO_ENCODER, \
+ GstAudioEncoderPrivate))
+
+enum
+{
+ PROP_0,
+ PROP_PERFECT_TS,
+ PROP_GRANULE,
+ PROP_HARD_RESYNC,
+ PROP_TOLERANCE
+};
+
+#define DEFAULT_PERFECT_TS FALSE
+#define DEFAULT_GRANULE FALSE
+#define DEFAULT_HARD_RESYNC FALSE
+#define DEFAULT_TOLERANCE 40000000
+#define DEFAULT_HARD_MIN FALSE
+#define DEFAULT_DRAINABLE TRUE
+
+typedef struct _GstAudioEncoderContext
+{
+ /* input */
+ GstAudioInfo info;
+
+ /* output */
+ gint frame_samples_min, frame_samples_max;
+ gint frame_max;
+ gint lookahead;
+ /* MT-protected (with LOCK) */
+ GstClockTime min_latency;
+ GstClockTime max_latency;
+} GstAudioEncoderContext;
+
+struct _GstAudioEncoderPrivate
+{
+ /* activation status */
+ gboolean active;
+
+ /* input base/first ts as basis for output ts;
+ * kept nearly constant for perfect_ts,
+ * otherwise resyncs to upstream ts */
+ GstClockTime base_ts;
+ /* corresponding base granulepos */
+ gint64 base_gp;
+ /* input samples processed and sent downstream so far (w.r.t. base_ts) */
+ guint64 samples;
+
+ /* currently collected sample data */
+ GstAdapter *adapter;
+ /* offset in adapter up to which already supplied to encoder */
+ gint offset;
+ /* mark outgoing discont */
+ gboolean discont;
+ /* to guess duration of drained data */
+ GstClockTime last_duration;
+
+ /* subclass provided data in processing round */
+ gboolean got_data;
+ /* subclass gave all it could already */
+ gboolean drained;
+ /* subclass currently being forcibly drained */
+ gboolean force;
+
+ /* output bps estimatation */
+ /* global in samples seen */
+ guint64 samples_in;
+ /* global bytes sent out */
+ guint64 bytes_out;
+
+ /* context storage */
+ GstAudioEncoderContext ctx;
+
+ /* properties */
+ gint64 tolerance;
+ gboolean perfect_ts;
+ gboolean hard_resync;
+ gboolean granule;
+ gboolean hard_min;
+ gboolean drainable;
+
+ /* pending tags */
+ GstTagList *tags;
+ /* pending serialized sink events, will be sent from finish_frame() */
+ GList *pending_events;
+};
+
+
+static GstElementClass *parent_class = NULL;
+
+static void gst_audio_encoder_class_init (GstAudioEncoderClass * klass);
+static void gst_audio_encoder_init (GstAudioEncoder * parse,
+ GstAudioEncoderClass * klass);
+
+GType
+gst_audio_encoder_get_type (void)
+{
+ static GType audio_encoder_type = 0;
+
+ if (!audio_encoder_type) {
+ static const GTypeInfo audio_encoder_info = {
+ sizeof (GstAudioEncoderClass),
+ (GBaseInitFunc) NULL,
+ (GBaseFinalizeFunc) NULL,
+ (GClassInitFunc) gst_audio_encoder_class_init,
+ NULL,
+ NULL,
+ sizeof (GstAudioEncoder),
+ 0,
+ (GInstanceInitFunc) gst_audio_encoder_init,
+ };
+ const GInterfaceInfo preset_interface_info = {
+ NULL, /* interface_init */
+ NULL, /* interface_finalize */
+ NULL /* interface_data */
+ };
+
+ audio_encoder_type = g_type_register_static (GST_TYPE_ELEMENT,
+ "GstAudioEncoder", &audio_encoder_info, G_TYPE_FLAG_ABSTRACT);
+
+ g_type_add_interface_static (audio_encoder_type, GST_TYPE_PRESET,
+ &preset_interface_info);
+ }
+ return audio_encoder_type;
+}
+
+static void gst_audio_encoder_finalize (GObject * object);
+static void gst_audio_encoder_reset (GstAudioEncoder * enc, gboolean full);
+
+static void gst_audio_encoder_set_property (GObject * object,
+ guint prop_id, const GValue * value, GParamSpec * pspec);
+static void gst_audio_encoder_get_property (GObject * object,
+ guint prop_id, GValue * value, GParamSpec * pspec);
+
+static gboolean gst_audio_encoder_sink_activate_push (GstPad * pad,
+ gboolean active);
+
+static gboolean gst_audio_encoder_sink_event (GstPad * pad, GstEvent * event);
+static gboolean gst_audio_encoder_sink_setcaps (GstPad * pad, GstCaps * caps);
+static GstFlowReturn gst_audio_encoder_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_audio_encoder_src_query (GstPad * pad, GstQuery * query);
+static gboolean gst_audio_encoder_sink_query (GstPad * pad, GstQuery * query);
+static const GstQueryType *gst_audio_encoder_get_query_types (GstPad * pad);
+static GstCaps *gst_audio_encoder_sink_getcaps (GstPad * pad);
+
+
+static void
+gst_audio_encoder_class_init (GstAudioEncoderClass * klass)
+{
+ GObjectClass *gobject_class;
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ parent_class = g_type_class_peek_parent (klass);
+
+ GST_DEBUG_CATEGORY_INIT (gst_audio_encoder_debug, "audioencoder", 0,
+ "audio encoder base class");
+
+ g_type_class_add_private (klass, sizeof (GstAudioEncoderPrivate));
+
+ gobject_class->set_property = gst_audio_encoder_set_property;
+ gobject_class->get_property = gst_audio_encoder_get_property;
+
+ gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_audio_encoder_finalize);
+
+ /* properties */
+ g_object_class_install_property (gobject_class, PROP_PERFECT_TS,
+ g_param_spec_boolean ("perfect-timestamp", "Perfect Timestamps",
+ "Favour perfect timestamps over tracking upstream timestamps",
+ DEFAULT_PERFECT_TS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_GRANULE,
+ g_param_spec_boolean ("mark-granule", "Granule Marking",
+ "Apply granule semantics to buffer metadata (implies perfect-timestamp)",
+ DEFAULT_GRANULE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_HARD_RESYNC,
+ g_param_spec_boolean ("hard-resync", "Hard Resync",
+ "Perform clipping and sample flushing upon discontinuity",
+ DEFAULT_HARD_RESYNC, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_TOLERANCE,
+ g_param_spec_int64 ("tolerance", "Tolerance",
+ "Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns)",
+ 0, G_MAXINT64, DEFAULT_TOLERANCE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_audio_encoder_init (GstAudioEncoder * enc, GstAudioEncoderClass * bclass)
+{
+ GstPadTemplate *pad_template;
+
+ GST_DEBUG_OBJECT (enc, "gst_audio_encoder_init");
+
+ enc->priv = GST_AUDIO_ENCODER_GET_PRIVATE (enc);
+
+ /* only push mode supported */
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "sink");
+ g_return_if_fail (pad_template != NULL);
+ enc->sinkpad = gst_pad_new_from_template (pad_template, "sink");
+ gst_pad_set_event_function (enc->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_event));
+ gst_pad_set_setcaps_function (enc->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_setcaps));
+ gst_pad_set_getcaps_function (enc->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_getcaps));
+ gst_pad_set_query_function (enc->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_query));
+ gst_pad_set_chain_function (enc->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_chain));
+ gst_pad_set_activatepush_function (enc->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_sink_activate_push));
+ gst_element_add_pad (GST_ELEMENT (enc), enc->sinkpad);
+
+ GST_DEBUG_OBJECT (enc, "sinkpad created");
+
+ /* and we don't mind upstream traveling stuff that much ... */
+ pad_template =
+ gst_element_class_get_pad_template (GST_ELEMENT_CLASS (bclass), "src");
+ g_return_if_fail (pad_template != NULL);
+ enc->srcpad = gst_pad_new_from_template (pad_template, "src");
+ gst_pad_set_query_function (enc->srcpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_src_query));
+ gst_pad_set_query_type_function (enc->srcpad,
+ GST_DEBUG_FUNCPTR (gst_audio_encoder_get_query_types));
+ gst_pad_use_fixed_caps (enc->srcpad);
+ gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad);
+ GST_DEBUG_OBJECT (enc, "src created");
+
+ enc->priv->adapter = gst_adapter_new ();
+
+ g_static_rec_mutex_init (&enc->stream_lock);
+
+ /* property default */
+ enc->priv->granule = DEFAULT_GRANULE;
+ enc->priv->perfect_ts = DEFAULT_PERFECT_TS;
+ enc->priv->hard_resync = DEFAULT_HARD_RESYNC;
+ enc->priv->tolerance = DEFAULT_TOLERANCE;
+ enc->priv->hard_min = DEFAULT_HARD_MIN;
+ enc->priv->drainable = DEFAULT_DRAINABLE;
+
+ /* init state */
+ gst_audio_encoder_reset (enc, TRUE);
+ GST_DEBUG_OBJECT (enc, "init ok");
+}
+
+static void
+gst_audio_encoder_reset (GstAudioEncoder * enc, gboolean full)
+{
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+ GST_LOG_OBJECT (enc, "reset full %d", full);
+
+ if (full) {
+ enc->priv->active = FALSE;
+ enc->priv->samples_in = 0;
+ enc->priv->bytes_out = 0;
+ gst_audio_info_clear (&enc->priv->ctx.info);
+ memset (&enc->priv->ctx, 0, sizeof (enc->priv->ctx));
+
+ if (enc->priv->tags)
+ gst_tag_list_free (enc->priv->tags);
+ enc->priv->tags = NULL;
+
+ g_list_foreach (enc->priv->pending_events, (GFunc) gst_event_unref, NULL);
+ g_list_free (enc->priv->pending_events);
+ enc->priv->pending_events = NULL;
+ }
+
+ gst_segment_init (&enc->segment, GST_FORMAT_TIME);
+
+ gst_adapter_clear (enc->priv->adapter);
+ enc->priv->got_data = FALSE;
+ enc->priv->drained = TRUE;
+ enc->priv->offset = 0;
+ enc->priv->base_ts = GST_CLOCK_TIME_NONE;
+ enc->priv->base_gp = -1;
+ enc->priv->samples = 0;
+ enc->priv->discont = FALSE;
+
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+}
+
+static void
+gst_audio_encoder_finalize (GObject * object)
+{
+ GstAudioEncoder *enc = GST_AUDIO_ENCODER (object);
+
+ g_object_unref (enc->priv->adapter);
+
+ g_static_rec_mutex_free (&enc->stream_lock);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/**
+ * gst_audio_encoder_finish_frame:
+ * @enc: a #GstAudioEncoder
+ * @buffer: encoded data
+ * @samples: number of samples (per channel) represented by encoded data
+ *
+ * Collects encoded data and pushes encoded data downstream.
+ * Source pad caps must be set when this is called.
+ *
+ * If @samples < 0, then best estimate is all samples provided to encoder
+ * (subclass) so far. @buf may be NULL, in which case next number of @samples
+ * are considered discarded, e.g. as a result of discontinuous transmission,
+ * and a discontinuity is marked.
+ *
+ * Note that samples received in gst_audio_encoder_handle_frame()
+ * may be invalidated by a call to this function.
+ *
+ * Returns: a #GstFlowReturn that should be escalated to caller (of caller)
+ *
+ * Since: 0.10.36
+ */
+GstFlowReturn
+gst_audio_encoder_finish_frame (GstAudioEncoder * enc, GstBuffer * buf,
+ gint samples)
+{
+ GstAudioEncoderClass *klass;
+ GstAudioEncoderPrivate *priv;
+ GstAudioEncoderContext *ctx;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+ priv = enc->priv;
+ ctx = &enc->priv->ctx;
+
+ /* subclass should know what it is producing by now */
+ g_return_val_if_fail (GST_PAD_CAPS (enc->srcpad) != NULL, GST_FLOW_ERROR);
+ /* subclass should not hand us no data */
+ g_return_val_if_fail (buf == NULL || GST_BUFFER_SIZE (buf) > 0,
+ GST_FLOW_ERROR);
+
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+ GST_LOG_OBJECT (enc, "accepting %d bytes encoded data as %d samples",
+ buf ? GST_BUFFER_SIZE (buf) : -1, samples);
+
+ /* mark subclass still alive and providing */
+ if (G_LIKELY (buf))
+ priv->got_data = TRUE;
+
+ if (priv->pending_events) {
+ GList *pending_events, *l;
+
+ pending_events = priv->pending_events;
+ priv->pending_events = NULL;
+
+ GST_DEBUG_OBJECT (enc, "Pushing pending events");
+ for (l = pending_events; l; l = l->next)
+ gst_pad_push_event (enc->srcpad, l->data);
+ g_list_free (pending_events);
+ }
+
+ /* send after pending events, which likely includes newsegment event */
+ if (G_UNLIKELY (enc->priv->tags)) {
+ GstTagList *tags;
+
+ /* add codec info to pending tags */
+ tags = enc->priv->tags;
+ /* no more pending */
+ enc->priv->tags = NULL;
+ gst_pb_utils_add_codec_description_to_tag_list (tags, GST_TAG_CODEC,
+ GST_PAD_CAPS (enc->srcpad));
+ gst_pb_utils_add_codec_description_to_tag_list (tags, GST_TAG_AUDIO_CODEC,
+ GST_PAD_CAPS (enc->srcpad));
+ GST_DEBUG_OBJECT (enc, "sending tags %" GST_PTR_FORMAT, tags);
+ gst_element_found_tags_for_pad (GST_ELEMENT (enc), enc->srcpad, tags);
+ }
+
+ /* remove corresponding samples from input */
+ if (samples < 0)
+ samples = (enc->priv->offset / ctx->info.bpf);
+
+ if (G_LIKELY (samples)) {
+ /* track upstream ts if so configured */
+ if (!enc->priv->perfect_ts) {
+ guint64 ts, distance;
+
+ ts = gst_adapter_prev_timestamp (priv->adapter, &distance);
+ g_assert (distance % ctx->info.bpf == 0);
+ distance /= ctx->info.bpf;
+ GST_LOG_OBJECT (enc, "%" G_GUINT64_FORMAT " samples past prev_ts %"
+ GST_TIME_FORMAT, distance, GST_TIME_ARGS (ts));
+ GST_LOG_OBJECT (enc, "%" G_GUINT64_FORMAT " samples past base_ts %"
+ GST_TIME_FORMAT, priv->samples, GST_TIME_ARGS (priv->base_ts));
+ /* when draining adapter might be empty and no ts to offer */
+ if (GST_CLOCK_TIME_IS_VALID (ts) && ts != priv->base_ts) {
+ GstClockTimeDiff diff;
+ GstClockTime old_ts, next_ts;
+
+ /* passed into another buffer;
+ * mild check for discontinuity and only mark if so */
+ next_ts = ts +
+ gst_util_uint64_scale (distance, GST_SECOND, ctx->info.rate);
+ old_ts = priv->base_ts +
+ gst_util_uint64_scale (priv->samples, GST_SECOND, ctx->info.rate);
+ diff = GST_CLOCK_DIFF (next_ts, old_ts);
+ GST_LOG_OBJECT (enc, "ts diff %d ms", (gint) (diff / GST_MSECOND));
+ /* only mark discontinuity if beyond tolerance */
+ if (G_UNLIKELY (diff < -enc->priv->tolerance ||
+ diff > enc->priv->tolerance)) {
+ GST_DEBUG_OBJECT (enc, "marked discont");
+ priv->discont = TRUE;
+ }
+ if (diff > GST_SECOND / ctx->info.rate / 2 ||
+ diff < -GST_SECOND / ctx->info.rate / 2) {
+ GST_LOG_OBJECT (enc, "new upstream ts %" GST_TIME_FORMAT
+ " at distance %" G_GUINT64_FORMAT, GST_TIME_ARGS (ts), distance);
+ /* re-sync to upstream ts */
+ priv->base_ts = ts;
+ priv->samples = distance;
+ } else {
+ GST_LOG_OBJECT (enc, "new upstream ts only introduces jitter");
+ }
+ }
+ }
+ /* advance sample view */
+ if (G_UNLIKELY (samples * ctx->info.bpf > priv->offset)) {
+ if (G_LIKELY (!priv->force)) {
+ /* no way we can let this pass */
+ g_assert_not_reached ();
+ /* really no way */
+ goto overflow;
+ } else {
+ priv->offset = 0;
+ if (samples * ctx->info.bpf >= gst_adapter_available (priv->adapter))
+ gst_adapter_clear (priv->adapter);
+ else
+ gst_adapter_flush (priv->adapter, samples * ctx->info.bpf);
+ }
+ } else {
+ gst_adapter_flush (priv->adapter, samples * ctx->info.bpf);
+ priv->offset -= samples * ctx->info.bpf;
+ /* avoid subsequent stray prev_ts */
+ if (G_UNLIKELY (gst_adapter_available (priv->adapter) == 0))
+ gst_adapter_clear (priv->adapter);
+ }
+ /* sample count advanced below after buffer handling */
+ }
+
+ /* collect output */
+ if (G_LIKELY (buf)) {
+ GST_LOG_OBJECT (enc, "taking %d bytes for output", GST_BUFFER_SIZE (buf));
+ buf = gst_buffer_make_metadata_writable (buf);
+
+ /* decorate */
+ gst_buffer_set_caps (buf, GST_PAD_CAPS (enc->srcpad));
+ if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (priv->base_ts))) {
+ /* FIXME ? lookahead could lead to weird ts and duration ?
+ * (particularly if not in perfect mode) */
+ /* mind sample rounding and produce perfect output */
+ GST_BUFFER_TIMESTAMP (buf) = priv->base_ts +
+ gst_util_uint64_scale (priv->samples - ctx->lookahead, GST_SECOND,
+ ctx->info.rate);
+ GST_DEBUG_OBJECT (enc, "out samples %d", samples);
+ if (G_LIKELY (samples > 0)) {
+ priv->samples += samples;
+ GST_BUFFER_DURATION (buf) = priv->base_ts +
+ gst_util_uint64_scale (priv->samples - ctx->lookahead, GST_SECOND,
+ ctx->info.rate) - GST_BUFFER_TIMESTAMP (buf);
+ priv->last_duration = GST_BUFFER_DURATION (buf);
+ } else {
+ /* duration forecast in case of handling remainder;
+ * the last one is probably like the previous one ... */
+ GST_BUFFER_DURATION (buf) = priv->last_duration;
+ }
+ if (priv->base_gp >= 0) {
+ /* pamper oggmux */
+ /* FIXME: in longer run, muxer should take care of this ... */
+ /* offset_end = granulepos for ogg muxer */
+ GST_BUFFER_OFFSET_END (buf) = priv->base_gp + priv->samples -
+ enc->priv->ctx.lookahead;
+ /* offset = timestamp corresponding to granulepos for ogg muxer */
+ GST_BUFFER_OFFSET (buf) =
+ GST_FRAMES_TO_CLOCK_TIME (GST_BUFFER_OFFSET_END (buf),
+ ctx->info.rate);
+ } else {
+ GST_BUFFER_OFFSET (buf) = priv->bytes_out;
+ GST_BUFFER_OFFSET_END (buf) = priv->bytes_out + GST_BUFFER_SIZE (buf);
+ }
+ }
+
+ priv->bytes_out += GST_BUFFER_SIZE (buf);
+
+ if (G_UNLIKELY (priv->discont)) {
+ GST_LOG_OBJECT (enc, "marking discont");
+ GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+ priv->discont = FALSE;
+ }
+
+ if (klass->pre_push) {
+ /* last chance for subclass to do some dirty stuff */
+ ret = klass->pre_push (enc, &buf);
+ if (ret != GST_FLOW_OK || !buf) {
+ GST_DEBUG_OBJECT (enc, "subclass returned %s, buf %p",
+ gst_flow_get_name (ret), buf);
+ if (buf)
+ gst_buffer_unref (buf);
+ goto exit;
+ }
+ }
+
+ GST_LOG_OBJECT (enc, "pushing buffer of size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buf),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buf)));
+
+ ret = gst_pad_push (enc->srcpad, buf);
+ GST_LOG_OBJECT (enc, "buffer pushed: %s", gst_flow_get_name (ret));
+ } else {
+ /* merely advance samples, most work for that already done above */
+ priv->samples += samples;
+ }
+
+exit:
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+ return ret;
+
+ /* ERRORS */
+overflow:
+ {
+ GST_ELEMENT_ERROR (enc, STREAM, ENCODE,
+ ("received more encoded samples %d than provided %d",
+ samples, priv->offset / ctx->info.bpf), (NULL));
+ if (buf)
+ gst_buffer_unref (buf);
+ ret = GST_FLOW_ERROR;
+ goto exit;
+ }
+}
+
+ /* adapter tracking idea:
+ * - start of adapter corresponds with what has already been encoded
+ * (i.e. really returned by encoder subclass)
+ * - start + offset is what needs to be fed to subclass next */
+static GstFlowReturn
+gst_audio_encoder_push_buffers (GstAudioEncoder * enc, gboolean force)
+{
+ GstAudioEncoderClass *klass;
+ GstAudioEncoderPrivate *priv;
+ GstAudioEncoderContext *ctx;
+ gint av, need;
+ GstBuffer *buf;
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+ g_return_val_if_fail (klass->handle_frame != NULL, GST_FLOW_ERROR);
+
+ priv = enc->priv;
+ ctx = &enc->priv->ctx;
+
+ while (ret == GST_FLOW_OK) {
+
+ buf = NULL;
+ av = gst_adapter_available (priv->adapter);
+
+ g_assert (priv->offset <= av);
+ av -= priv->offset;
+
+ need =
+ ctx->frame_samples_min >
+ 0 ? ctx->frame_samples_min * ctx->info.bpf : av;
+ GST_LOG_OBJECT (enc, "available: %d, needed: %d, force: %d", av, need,
+ force);
+
+ if ((need > av) || !av) {
+ if (G_UNLIKELY (force)) {
+ priv->force = TRUE;
+ need = av;
+ } else {
+ break;
+ }
+ } else {
+ priv->force = FALSE;
+ }
+
+ if (ctx->frame_samples_max > 0)
+ need = MIN (av, ctx->frame_samples_max * ctx->info.bpf);
+
+ if (ctx->frame_samples_min == ctx->frame_samples_max) {
+ /* if we have some extra metadata,
+ * provide for integer multiple of frames to allow for better granularity
+ * of processing */
+ if (ctx->frame_samples_min > 0 && need) {
+ if (ctx->frame_max > 1)
+ need = need * MIN ((av / need), ctx->frame_max);
+ else if (ctx->frame_max == 0)
+ need = need * (av / need);
+ }
+ }
+
+ priv->got_data = FALSE;
+ if (G_LIKELY (need)) {
+ buf = gst_buffer_new ();
+ GST_BUFFER_DATA (buf) = (guint8 *)
+ gst_adapter_peek (priv->adapter, priv->offset + need) + priv->offset;
+ GST_BUFFER_SIZE (buf) = need;
+ } else if (!priv->drainable) {
+ GST_DEBUG_OBJECT (enc, "non-drainable and no more data");
+ goto finish;
+ }
+
+ GST_LOG_OBJECT (enc, "providing subclass with %d bytes at offset %d",
+ need, priv->offset);
+
+ /* mark this already as consumed,
+ * which it should be when subclass gives us data in exchange for samples */
+ priv->offset += need;
+ priv->samples_in += need / ctx->info.bpf;
+
+ /* subclass might not want to be bothered with leftover data,
+ * so take care of that here if so, otherwise pass along */
+ if (G_UNLIKELY (priv->force && priv->hard_min && buf)) {
+ GST_DEBUG_OBJECT (enc, "bypassing subclass with leftover");
+ ret = gst_audio_encoder_finish_frame (enc, NULL, -1);
+ } else {
+ ret = klass->handle_frame (enc, buf);
+ }
+
+ if (G_LIKELY (buf))
+ gst_buffer_unref (buf);
+
+ finish:
+ /* no data to feed, no leftover provided, then bail out */
+ if (G_UNLIKELY (!buf && !priv->got_data)) {
+ priv->drained = TRUE;
+ GST_LOG_OBJECT (enc, "no more data drained from subclass");
+ break;
+ }
+ }
+
+ return ret;
+}
+
+static GstFlowReturn
+gst_audio_encoder_drain (GstAudioEncoder * enc)
+{
+ GST_DEBUG_OBJECT (enc, "draining");
+ if (enc->priv->drained)
+ return GST_FLOW_OK;
+ else {
+ GST_DEBUG_OBJECT (enc, "... really");
+ return gst_audio_encoder_push_buffers (enc, TRUE);
+ }
+}
+
+static void
+gst_audio_encoder_set_base_gp (GstAudioEncoder * enc)
+{
+ GstClockTime ts;
+
+ if (!enc->priv->granule)
+ return;
+
+ /* use running time for granule */
+ /* incoming data is clipped, so a valid input should yield a valid output */
+ ts = gst_segment_to_running_time (&enc->segment, GST_FORMAT_TIME,
+ enc->priv->base_ts);
+ if (GST_CLOCK_TIME_IS_VALID (ts)) {
+ enc->priv->base_gp =
+ GST_CLOCK_TIME_TO_FRAMES (enc->priv->base_ts, enc->priv->ctx.info.rate);
+ GST_DEBUG_OBJECT (enc, "new base gp %" G_GINT64_FORMAT, enc->priv->base_gp);
+ } else {
+ /* should reasonably have a valid base,
+ * otherwise start at 0 if we did not already start there earlier */
+ if (enc->priv->base_gp < 0) {
+ enc->priv->base_gp = 0;
+ GST_DEBUG_OBJECT (enc, "new base gp %" G_GINT64_FORMAT,
+ enc->priv->base_gp);
+ }
+ }
+}
+
+static GstFlowReturn
+gst_audio_encoder_chain (GstPad * pad, GstBuffer * buffer)
+{
+ GstAudioEncoder *enc;
+ GstAudioEncoderPrivate *priv;
+ GstAudioEncoderContext *ctx;
+ GstFlowReturn ret = GST_FLOW_OK;
+ gboolean discont;
+
+ enc = GST_AUDIO_ENCODER (GST_OBJECT_PARENT (pad));
+
+ priv = enc->priv;
+ ctx = &enc->priv->ctx;
+
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+ /* should know what is coming by now */
+ if (!ctx->info.bpf)
+ goto not_negotiated;
+
+ GST_LOG_OBJECT (enc,
+ "received buffer of size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buffer),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+ /* input shoud be whole number of sample frames */
+ if (GST_BUFFER_SIZE (buffer) % ctx->info.bpf)
+ goto wrong_buffer;
+
+#ifndef GST_DISABLE_GST_DEBUG
+ {
+ GstClockTime duration;
+ GstClockTimeDiff diff;
+
+ /* verify buffer duration */
+ duration = gst_util_uint64_scale (GST_BUFFER_SIZE (buffer), GST_SECOND,
+ ctx->info.rate * ctx->info.bpf);
+ diff = GST_CLOCK_DIFF (duration, GST_BUFFER_DURATION (buffer));
+ if (GST_BUFFER_DURATION (buffer) != GST_CLOCK_TIME_NONE &&
+ (diff > GST_SECOND / ctx->info.rate / 2 ||
+ diff < -GST_SECOND / ctx->info.rate / 2)) {
+ GST_DEBUG_OBJECT (enc, "incoming buffer had incorrect duration %"
+ GST_TIME_FORMAT ", expected duration %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)),
+ GST_TIME_ARGS (duration));
+ }
+ }
+#endif
+
+ discont = GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT);
+ if (G_UNLIKELY (discont)) {
+ GST_LOG_OBJECT (buffer, "marked discont");
+ enc->priv->discont = discont;
+ }
+
+ /* clip to segment */
+ /* NOTE: slightly painful linking -laudio only for this one ... */
+ buffer = gst_audio_buffer_clip (buffer, &enc->segment, ctx->info.rate,
+ ctx->info.bpf);
+ if (G_UNLIKELY (!buffer)) {
+ GST_DEBUG_OBJECT (buffer, "no data after clipping to segment");
+ goto done;
+ }
+
+ GST_LOG_OBJECT (enc,
+ "buffer after segment clipping has size %d with ts %" GST_TIME_FORMAT
+ ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buffer),
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)),
+ GST_TIME_ARGS (GST_BUFFER_DURATION (buffer)));
+
+ if (!GST_CLOCK_TIME_IS_VALID (priv->base_ts)) {
+ priv->base_ts = GST_BUFFER_TIMESTAMP (buffer);
+ GST_DEBUG_OBJECT (enc, "new base ts %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (priv->base_ts));
+ gst_audio_encoder_set_base_gp (enc);
+ }
+
+ /* check for continuity;
+ * checked elsewhere in non-perfect case */
+ if (enc->priv->perfect_ts) {
+ GstClockTimeDiff diff = 0;
+ GstClockTime next_ts = 0;
+
+ if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer) &&
+ GST_CLOCK_TIME_IS_VALID (priv->base_ts)) {
+ guint64 samples;
+
+ samples = priv->samples +
+ gst_adapter_available (priv->adapter) / ctx->info.bpf;
+ next_ts = priv->base_ts +
+ gst_util_uint64_scale (samples, GST_SECOND, ctx->info.rate);
+ GST_LOG_OBJECT (enc, "buffer is %" G_GUINT64_FORMAT
+ " samples past base_ts %" GST_TIME_FORMAT
+ ", expected ts %" GST_TIME_FORMAT, samples,
+ GST_TIME_ARGS (priv->base_ts), GST_TIME_ARGS (next_ts));
+ diff = GST_CLOCK_DIFF (next_ts, GST_BUFFER_TIMESTAMP (buffer));
+ GST_LOG_OBJECT (enc, "ts diff %d ms", (gint) (diff / GST_MSECOND));
+ /* if within tolerance,
+ * discard buffer ts and carry on producing perfect stream,
+ * otherwise clip or resync to ts */
+ if (G_UNLIKELY (diff < -enc->priv->tolerance ||
+ diff > enc->priv->tolerance)) {
+ GST_DEBUG_OBJECT (enc, "marked discont");
+ discont = TRUE;
+ }
+ }
+
+ /* do some fancy tweaking in hard resync case */
+ if (discont && enc->priv->hard_resync) {
+ if (diff < 0) {
+ guint64 diff_bytes;
+
+ GST_WARNING_OBJECT (enc, "Buffer is older than expected ts %"
+ GST_TIME_FORMAT ". Clipping buffer", GST_TIME_ARGS (next_ts));
+
+ diff_bytes =
+ GST_CLOCK_TIME_TO_FRAMES (-diff, ctx->info.rate) * ctx->info.bpf;
+ if (diff_bytes >= GST_BUFFER_SIZE (buffer)) {
+ gst_buffer_unref (buffer);
+ goto done;
+ }
+ buffer = gst_buffer_make_metadata_writable (buffer);
+ GST_BUFFER_DATA (buffer) += diff_bytes;
+ GST_BUFFER_SIZE (buffer) -= diff_bytes;
+
+ GST_BUFFER_TIMESTAMP (buffer) += diff;
+ /* care even less about duration after this */
+ } else {
+ /* drain stuff prior to resync */
+ gst_audio_encoder_drain (enc);
+ }
+ }
+ if (discont) {
+ /* now re-sync ts */
+ priv->base_ts += diff;
+ gst_audio_encoder_set_base_gp (enc);
+ priv->discont |= discont;
+ }
+ }
+
+ gst_adapter_push (enc->priv->adapter, buffer);
+ /* new stuff, so we can push subclass again */
+ enc->priv->drained = FALSE;
+
+ ret = gst_audio_encoder_push_buffers (enc, FALSE);
+
+done:
+ GST_LOG_OBJECT (enc, "chain leaving");
+
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+ return ret;
+
+ /* ERRORS */
+not_negotiated:
+ {
+ GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL),
+ ("encoder not initialized"));
+ gst_buffer_unref (buffer);
+ ret = GST_FLOW_NOT_NEGOTIATED;
+ goto done;
+ }
+wrong_buffer:
+ {
+ GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
+ ("buffer size %d not a multiple of %d", GST_BUFFER_SIZE (buffer),
+ ctx->info.bpf));
+ gst_buffer_unref (buffer);
+ ret = GST_FLOW_ERROR;
+ goto done;
+ }
+}
+
+static gboolean
+audio_info_is_equal (GstAudioInfo * from, GstAudioInfo * to)
+{
+ if (from == to)
+ return TRUE;
+ if (from->finfo == NULL || to->finfo == NULL)
+ return FALSE;
+ if (GST_AUDIO_INFO_FORMAT (from) != GST_AUDIO_INFO_FORMAT (to))
+ return FALSE;
+ if (GST_AUDIO_INFO_RATE (from) != GST_AUDIO_INFO_RATE (to))
+ return FALSE;
+ if (GST_AUDIO_INFO_CHANNELS (from) != GST_AUDIO_INFO_CHANNELS (to))
+ return FALSE;
+ if (GST_AUDIO_INFO_CHANNELS (from) > 64)
+ return TRUE;
+ return memcmp (from->position, to->position,
+ GST_AUDIO_INFO_CHANNELS (from) * sizeof (to->position[0]));
+}
+
+static gboolean
+gst_audio_encoder_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+ GstAudioEncoder *enc;
+ GstAudioEncoderClass *klass;
+ GstAudioEncoderContext *ctx;
+ GstAudioInfo *state, *old_state;
+ gboolean res = TRUE, changed = FALSE;
+ guint old_rate;
+
+ enc = GST_AUDIO_ENCODER (GST_PAD_PARENT (pad));
+ klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+ /* subclass must do something here ... */
+ g_return_val_if_fail (klass->set_format != NULL, FALSE);
+
+ ctx = &enc->priv->ctx;
+ state = &ctx->info;
+
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+
+ GST_DEBUG_OBJECT (enc, "caps: %" GST_PTR_FORMAT, caps);
+
+ if (!gst_caps_is_fixed (caps))
+ goto refuse_caps;
+
+ /* adjust ts tracking to new sample rate */
+ old_rate = GST_AUDIO_INFO_RATE (state);
+ if (GST_CLOCK_TIME_IS_VALID (enc->priv->base_ts) && old_rate) {
+ enc->priv->base_ts +=
+ GST_FRAMES_TO_CLOCK_TIME (enc->priv->samples, old_rate);
+ enc->priv->samples = 0;
+ }
+
+ old_state = gst_audio_info_copy (state);
+ if (!gst_audio_info_from_caps (state, caps))
+ goto refuse_caps;
+
+ changed = !audio_info_is_equal (state, old_state);
+ gst_audio_info_free (old_state);
+
+ if (changed) {
+ GstClockTime old_min_latency;
+ GstClockTime old_max_latency;
+
+ /* drain any pending old data stuff */
+ gst_audio_encoder_drain (enc);
+
+ /* context defaults */
+ enc->priv->ctx.frame_samples_min = 0;
+ enc->priv->ctx.frame_samples_max = 0;
+ enc->priv->ctx.frame_max = 0;
+ enc->priv->ctx.lookahead = 0;
+
+ /* element might report latency */
+ GST_OBJECT_LOCK (enc);
+ old_min_latency = ctx->min_latency;
+ old_max_latency = ctx->max_latency;
+ GST_OBJECT_UNLOCK (enc);
+
+ if (klass->set_format)
+ res = klass->set_format (enc, state);
+
+ /* invalidate state to ensure no casual carrying on */
+ if (!res) {
+ GST_DEBUG_OBJECT (enc, "subclass did not accept format");
+ gst_audio_info_clear (state);
+ goto exit;
+ }
+
+ /* notify if new latency */
+ GST_OBJECT_LOCK (enc);
+ if ((ctx->min_latency > 0 && ctx->min_latency != old_min_latency) ||
+ (ctx->max_latency > 0 && ctx->max_latency != old_max_latency)) {
+ GST_OBJECT_UNLOCK (enc);
+ /* post latency message on the bus */
+ gst_element_post_message (GST_ELEMENT (enc),
+ gst_message_new_latency (GST_OBJECT (enc)));
+ GST_OBJECT_LOCK (enc);
+ }
+ GST_OBJECT_UNLOCK (enc);
+ } else {
+ GST_DEBUG_OBJECT (enc, "new audio format identical to configured format");
+ }
+
+exit:
+
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+ return res;
+
+ /* ERRORS */
+refuse_caps:
+ {
+ GST_WARNING_OBJECT (enc, "rejected caps %" GST_PTR_FORMAT, caps);
+ goto exit;
+ }
+}
+
+
+/**
+ * gst_audio_encoder_proxy_getcaps:
+ * @enc: a #GstAudioEncoder
+ * @caps: initial caps
+ *
+ * Returns caps that express @caps (or sink template caps if @caps == NULL)
+ * restricted to channel/rate combinations supported by downstream elements
+ * (e.g. muxers).
+ *
+ * Returns: a #GstCaps owned by caller
+ *
+ * Since: 0.10.36
+ */
+GstCaps *
+gst_audio_encoder_proxy_getcaps (GstAudioEncoder * enc, GstCaps * caps)
+{
+ const GstCaps *templ_caps;
+ GstCaps *allowed = NULL;
+ GstCaps *fcaps, *filter_caps;
+ gint i, j;
+
+ /* we want to be able to communicate to upstream elements like audioconvert
+ * and audioresample any rate/channel restrictions downstream (e.g. muxer
+ * only accepting certain sample rates) */
+ templ_caps = caps ? caps : gst_pad_get_pad_template_caps (enc->sinkpad);
+ allowed = gst_pad_get_allowed_caps (enc->srcpad);
+ if (!allowed || gst_caps_is_empty (allowed) || gst_caps_is_any (allowed)) {
+ fcaps = gst_caps_copy (templ_caps);
+ goto done;
+ }
+
+ GST_LOG_OBJECT (enc, "template caps %" GST_PTR_FORMAT, templ_caps);
+ GST_LOG_OBJECT (enc, "allowed caps %" GST_PTR_FORMAT, allowed);
+
+ filter_caps = gst_caps_new_empty ();
+
+ for (i = 0; i < gst_caps_get_size (templ_caps); i++) {
+ GQuark q_name;
+
+ q_name = gst_structure_get_name_id (gst_caps_get_structure (templ_caps, i));
+
+ /* pick rate + channel fields from allowed caps */
+ for (j = 0; j < gst_caps_get_size (allowed); j++) {
+ const GstStructure *allowed_s = gst_caps_get_structure (allowed, j);
+ const GValue *val;
+ GstStructure *s;
+
+ s = gst_structure_id_empty_new (q_name);
+ if ((val = gst_structure_get_value (allowed_s, "rate")))
+ gst_structure_set_value (s, "rate", val);
+ if ((val = gst_structure_get_value (allowed_s, "channels")))
+ gst_structure_set_value (s, "channels", val);
+ /* following might also make sense for some encoded formats,
+ * e.g. wavpack */
+ if ((val = gst_structure_get_value (allowed_s, "width")))
+ gst_structure_set_value (s, "width", val);
+ if ((val = gst_structure_get_value (allowed_s, "depth")))
+ gst_structure_set_value (s, "depth", val);
+ if ((val = gst_structure_get_value (allowed_s, "endianness")))
+ gst_structure_set_value (s, "endianness", val);
+ if ((val = gst_structure_get_value (allowed_s, "signed")))
+ gst_structure_set_value (s, "signed", val);
+ if ((val = gst_structure_get_value (allowed_s, "channel-positions")))
+ gst_structure_set_value (s, "channel-positions", val);
+
+ gst_caps_merge_structure (filter_caps, s);
+ }
+ }
+
+ fcaps = gst_caps_intersect (filter_caps, templ_caps);
+ gst_caps_unref (filter_caps);
+
+done:
+ gst_caps_replace (&allowed, NULL);
+
+ GST_LOG_OBJECT (enc, "proxy caps %" GST_PTR_FORMAT, fcaps);
+
+ return fcaps;
+}
+
+static GstCaps *
+gst_audio_encoder_sink_getcaps (GstPad * pad)
+{
+ GstAudioEncoder *enc;
+ GstAudioEncoderClass *klass;
+ GstCaps *caps;
+
+ enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+ klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+ g_assert (pad == enc->sinkpad);
+
+ if (klass->getcaps)
+ caps = klass->getcaps (enc);
+ else
+ caps = gst_audio_encoder_proxy_getcaps (enc, NULL);
+ gst_object_unref (enc);
+
+ GST_LOG_OBJECT (enc, "returning caps %" GST_PTR_FORMAT, caps);
+
+ return caps;
+}
+
+static gboolean
+gst_audio_encoder_sink_eventfunc (GstAudioEncoder * enc, GstEvent * event)
+{
+ GstAudioEncoderClass *klass;
+ gboolean handled = FALSE;
+
+ klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+ 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) {
+ GST_DEBUG_OBJECT (enc, "received TIME NEW_SEGMENT %" GST_TIME_FORMAT
+ " -- %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT
+ ", rate %g, applied_rate %g",
+ GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (time),
+ rate, arate);
+ } else {
+ GST_DEBUG_OBJECT (enc, "received NEW_SEGMENT %" G_GINT64_FORMAT
+ " -- %" G_GINT64_FORMAT ", time %" G_GINT64_FORMAT
+ ", rate %g, applied_rate %g", start, stop, time, rate, arate);
+ GST_DEBUG_OBJECT (enc, "unsupported format; ignoring");
+ break;
+ }
+
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+ /* finish current segment */
+ gst_audio_encoder_drain (enc);
+ /* reset partially for new segment */
+ gst_audio_encoder_reset (enc, FALSE);
+ /* and follow along with segment */
+ gst_segment_set_newsegment_full (&enc->segment, update, rate, arate,
+ format, start, stop, time);
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+ break;
+ }
+
+ case GST_EVENT_FLUSH_START:
+ break;
+
+ case GST_EVENT_FLUSH_STOP:
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+ /* discard any pending stuff */
+ /* TODO route through drain ?? */
+ if (!enc->priv->drained && klass->flush)
+ klass->flush (enc);
+ /* and get (re)set for the sequel */
+ gst_audio_encoder_reset (enc, FALSE);
+
+ g_list_foreach (enc->priv->pending_events, (GFunc) gst_event_unref, NULL);
+ g_list_free (enc->priv->pending_events);
+ enc->priv->pending_events = NULL;
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+
+ break;
+
+ case GST_EVENT_EOS:
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+ gst_audio_encoder_drain (enc);
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+ break;
+
+ case GST_EVENT_TAG:
+ {
+ GstTagList *tags;
+
+ gst_event_parse_tag (event, &tags);
+ tags = gst_tag_list_copy (tags);
+ gst_event_unref (event);
+
+ /* FIXME: make generic based on GST_TAG_FLAG_ENCODED */
+ gst_tag_list_remove_tag (tags, GST_TAG_CODEC);
+ gst_tag_list_remove_tag (tags, GST_TAG_AUDIO_CODEC);
+ gst_tag_list_remove_tag (tags, GST_TAG_VIDEO_CODEC);
+ gst_tag_list_remove_tag (tags, GST_TAG_SUBTITLE_CODEC);
+ gst_tag_list_remove_tag (tags, GST_TAG_CONTAINER_FORMAT);
+ gst_tag_list_remove_tag (tags, GST_TAG_BITRATE);
+ gst_tag_list_remove_tag (tags, GST_TAG_NOMINAL_BITRATE);
+ gst_tag_list_remove_tag (tags, GST_TAG_MAXIMUM_BITRATE);
+ gst_tag_list_remove_tag (tags, GST_TAG_MINIMUM_BITRATE);
+ gst_tag_list_remove_tag (tags, GST_TAG_ENCODER);
+ gst_tag_list_remove_tag (tags, GST_TAG_ENCODER_VERSION);
+ event = gst_event_new_tag (tags);
+
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+ enc->priv->pending_events =
+ g_list_append (enc->priv->pending_events, event);
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+ handled = TRUE;
+ break;
+ }
+
+ default:
+ break;
+ }
+
+ return handled;
+}
+
+static gboolean
+gst_audio_encoder_sink_event (GstPad * pad, GstEvent * event)
+{
+ GstAudioEncoder *enc;
+ GstAudioEncoderClass *klass;
+ gboolean handled = FALSE;
+ gboolean ret = TRUE;
+
+ enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+ klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+ GST_DEBUG_OBJECT (enc, "received event %d, %s", GST_EVENT_TYPE (event),
+ GST_EVENT_TYPE_NAME (event));
+
+ if (klass->event)
+ handled = klass->event (enc, event);
+
+ if (!handled)
+ handled = gst_audio_encoder_sink_eventfunc (enc, event);
+
+ if (!handled) {
+ /* Forward non-serialized events and EOS/FLUSH_STOP immediately.
+ * For EOS this is required because no buffer or serialized event
+ * will come after EOS and nothing could trigger another
+ * _finish_frame() call.
+ *
+ * For FLUSH_STOP this is required because it is expected
+ * to be forwarded immediately and no buffers are queued anyway.
+ */
+ if (!GST_EVENT_IS_SERIALIZED (event)
+ || GST_EVENT_TYPE (event) == GST_EVENT_EOS
+ || GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+ ret = gst_pad_event_default (pad, event);
+ } else {
+ GST_AUDIO_ENCODER_STREAM_LOCK (enc);
+ enc->priv->pending_events =
+ g_list_append (enc->priv->pending_events, event);
+ GST_AUDIO_ENCODER_STREAM_UNLOCK (enc);
+ ret = TRUE;
+ }
+ }
+
+ GST_DEBUG_OBJECT (enc, "event handled");
+
+ gst_object_unref (enc);
+ return ret;
+}
+
+static gboolean
+gst_audio_encoder_sink_query (GstPad * pad, GstQuery * query)
+{
+ gboolean res = TRUE;
+ GstAudioEncoder *enc;
+
+ enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_FORMATS:
+ {
+ gst_query_set_formats (query, 3,
+ GST_FORMAT_TIME, GST_FORMAT_BYTES, GST_FORMAT_DEFAULT);
+ res = TRUE;
+ 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_audio_info_convert (&enc->priv->ctx.info,
+ 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;
+ }
+
+error:
+ gst_object_unref (enc);
+ return res;
+}
+
+static const GstQueryType *
+gst_audio_encoder_get_query_types (GstPad * pad)
+{
+ static const GstQueryType gst_audio_encoder_src_query_types[] = {
+ GST_QUERY_POSITION,
+ GST_QUERY_DURATION,
+ GST_QUERY_CONVERT,
+ GST_QUERY_LATENCY,
+ 0
+ };
+
+ return gst_audio_encoder_src_query_types;
+}
+
+/*
+ * gst_audio_encoded_audio_convert:
+ * @fmt: audio format of the encoded audio
+ * @bytes: number of encoded bytes
+ * @samples: number of encoded samples
+ * @src_format: source format
+ * @src_value: source value
+ * @dest_format: destination format
+ * @dest_value: destination format
+ *
+ * Helper function to convert @src_value in @src_format to @dest_value in
+ * @dest_format for encoded audio data. Conversion is possible between
+ * BYTE and TIME format by using estimated bitrate based on
+ * @samples and @bytes (and @fmt).
+ *
+ * Since: 0.10.36
+ */
+/* FIXME: make gst_audio_encoded_audio_convert() public? */
+static gboolean
+gst_audio_encoded_audio_convert (GstAudioInfo * fmt,
+ gint64 bytes, gint64 samples, GstFormat src_format,
+ gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
+{
+ gboolean res = FALSE;
+
+ g_return_val_if_fail (dest_format != NULL, FALSE);
+ g_return_val_if_fail (dest_value != NULL, FALSE);
+
+ if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+ src_value == -1)) {
+ if (dest_value)
+ *dest_value = src_value;
+ return TRUE;
+ }
+
+ if (samples == 0 || bytes == 0 || fmt->rate == 0) {
+ GST_DEBUG ("not enough metadata yet to convert");
+ goto exit;
+ }
+
+ bytes *= fmt->rate;
+
+ switch (src_format) {
+ case GST_FORMAT_BYTES:
+ switch (*dest_format) {
+ case GST_FORMAT_TIME:
+ *dest_value = gst_util_uint64_scale (src_value,
+ GST_SECOND * samples, bytes);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ case GST_FORMAT_TIME:
+ switch (*dest_format) {
+ case GST_FORMAT_BYTES:
+ *dest_value = gst_util_uint64_scale (src_value, bytes,
+ samples * GST_SECOND);
+ res = TRUE;
+ break;
+ default:
+ res = FALSE;
+ }
+ break;
+ default:
+ res = FALSE;
+ }
+
+exit:
+ return res;
+}
+
+/* FIXME ? are any of these queries (other than latency) an encoder's business
+ * also, the conversion stuff might seem to make sense, but seems to not mind
+ * segment stuff etc at all
+ * Supposedly that's backward compatibility ... */
+static gboolean
+gst_audio_encoder_src_query (GstPad * pad, GstQuery * query)
+{
+ GstAudioEncoder *enc;
+ GstPad *peerpad;
+ gboolean res = FALSE;
+
+ enc = GST_AUDIO_ENCODER (GST_PAD_PARENT (pad));
+ if (G_UNLIKELY (enc == NULL))
+ return FALSE;
+
+ peerpad = gst_pad_get_peer (GST_PAD (enc->sinkpad));
+
+ GST_LOG_OBJECT (enc, "handling query: %" GST_PTR_FORMAT, query);
+
+ switch (GST_QUERY_TYPE (query)) {
+ case GST_QUERY_POSITION:
+ {
+ GstFormat fmt, req_fmt;
+ gint64 pos, val;
+
+ if ((res = gst_pad_peer_query (enc->sinkpad, query))) {
+ GST_LOG_OBJECT (enc, "returning peer response");
+ break;
+ }
+
+ if (!peerpad) {
+ GST_LOG_OBJECT (enc, "no peer");
+ break;
+ }
+
+ gst_query_parse_position (query, &req_fmt, NULL);
+ fmt = GST_FORMAT_TIME;
+ if (!(res = gst_pad_query_position (peerpad, &fmt, &pos)))
+ break;
+
+ if ((res = gst_pad_query_convert (peerpad, 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;
+
+ if ((res = gst_pad_peer_query (enc->sinkpad, query))) {
+ GST_LOG_OBJECT (enc, "returning peer response");
+ break;
+ }
+
+ if (!peerpad) {
+ GST_LOG_OBJECT (enc, "no peer");
+ break;
+ }
+
+ gst_query_parse_duration (query, &req_fmt, NULL);
+ fmt = GST_FORMAT_TIME;
+ if (!(res = gst_pad_query_duration (peerpad, &fmt, &dur)))
+ break;
+
+ if ((res = gst_pad_query_convert (peerpad, fmt, dur, &req_fmt, &val))) {
+ gst_query_set_duration (query, req_fmt, val);
+ }
+ break;
+ }
+ case GST_QUERY_FORMATS:
+ {
+ gst_query_set_formats (query, 2, GST_FORMAT_TIME, GST_FORMAT_BYTES);
+ res = TRUE;
+ 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_audio_encoded_audio_convert (&enc->priv->ctx.info,
+ enc->priv->bytes_out, enc->priv->samples_in, src_fmt, src_val,
+ &dest_fmt, &dest_val)))
+ break;
+ gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+ break;
+ }
+ case GST_QUERY_LATENCY:
+ {
+ if ((res = gst_pad_peer_query (enc->sinkpad, query))) {
+ gboolean live;
+ GstClockTime min_latency, max_latency;
+
+ gst_query_parse_latency (query, &live, &min_latency, &max_latency);
+ GST_DEBUG_OBJECT (enc, "Peer latency: live %d, min %"
+ GST_TIME_FORMAT " max %" GST_TIME_FORMAT, live,
+ GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
+
+ GST_OBJECT_LOCK (enc);
+ /* add our latency */
+ if (min_latency != -1)
+ min_latency += enc->priv->ctx.min_latency;
+ if (max_latency != -1)
+ max_latency += enc->priv->ctx.max_latency;
+ GST_OBJECT_UNLOCK (enc);
+
+ gst_query_set_latency (query, live, min_latency, max_latency);
+ }
+ break;
+ }
+ default:
+ res = gst_pad_query_default (pad, query);
+ break;
+ }
+
+ gst_object_unref (peerpad);
+ return res;
+}
+
+static void
+gst_audio_encoder_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
+{
+ GstAudioEncoder *enc;
+
+ enc = GST_AUDIO_ENCODER (object);
+
+ switch (prop_id) {
+ case PROP_PERFECT_TS:
+ if (enc->priv->granule && !g_value_get_boolean (value))
+ GST_WARNING_OBJECT (enc, "perfect-timestamp can not be set FALSE "
+ "while granule handling is enabled");
+ else
+ enc->priv->perfect_ts = g_value_get_boolean (value);
+ break;
+ case PROP_HARD_RESYNC:
+ enc->priv->hard_resync = g_value_get_boolean (value);
+ break;
+ case PROP_TOLERANCE:
+ enc->priv->tolerance = g_value_get_int64 (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gst_audio_encoder_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec)
+{
+ GstAudioEncoder *enc;
+
+ enc = GST_AUDIO_ENCODER (object);
+
+ switch (prop_id) {
+ case PROP_PERFECT_TS:
+ g_value_set_boolean (value, enc->priv->perfect_ts);
+ break;
+ case PROP_GRANULE:
+ g_value_set_boolean (value, enc->priv->granule);
+ break;
+ case PROP_HARD_RESYNC:
+ g_value_set_boolean (value, enc->priv->hard_resync);
+ break;
+ case PROP_TOLERANCE:
+ g_value_set_int64 (value, enc->priv->tolerance);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static gboolean
+gst_audio_encoder_activate (GstAudioEncoder * enc, gboolean active)
+{
+ GstAudioEncoderClass *klass;
+ gboolean result = FALSE;
+
+ klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
+
+ g_return_val_if_fail (!enc->priv->granule || enc->priv->perfect_ts, FALSE);
+
+ GST_DEBUG_OBJECT (enc, "activate %d", active);
+
+ if (active) {
+
+ if (enc->priv->tags)
+ gst_tag_list_free (enc->priv->tags);
+ enc->priv->tags = gst_tag_list_new ();
+
+ if (!enc->priv->active && klass->start)
+ result = klass->start (enc);
+ } else {
+ /* We must make sure streaming has finished before resetting things
+ * and calling the ::stop vfunc */
+ GST_PAD_STREAM_LOCK (enc->sinkpad);
+ GST_PAD_STREAM_UNLOCK (enc->sinkpad);
+
+ if (enc->priv->active && klass->stop)
+ result = klass->stop (enc);
+
+ /* clean up */
+ gst_audio_encoder_reset (enc, TRUE);
+ }
+ GST_DEBUG_OBJECT (enc, "activate return: %d", result);
+ return result;
+}
+
+
+static gboolean
+gst_audio_encoder_sink_activate_push (GstPad * pad, gboolean active)
+{
+ gboolean result = TRUE;
+ GstAudioEncoder *enc;
+
+ enc = GST_AUDIO_ENCODER (gst_pad_get_parent (pad));
+
+ GST_DEBUG_OBJECT (enc, "sink activate push %d", active);
+
+ result = gst_audio_encoder_activate (enc, active);
+
+ if (result)
+ enc->priv->active = active;
+
+ GST_DEBUG_OBJECT (enc, "sink activate push return: %d", result);
+
+ gst_object_unref (enc);
+ return result;
+}
+
+/**
+ * gst_audio_encoder_get_audio_info:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: a #GstAudioInfo describing the input audio format
+ *
+ * Since: 0.10.36
+ */
+GstAudioInfo *
+gst_audio_encoder_get_audio_info (GstAudioEncoder * enc)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), NULL);
+
+ return &enc->priv->ctx.info;
+}
+
+/**
+ * gst_audio_encoder_set_frame_samples_min:
+ * @enc: a #GstAudioEncoder
+ * @num: number of samples per frame
+ *
+ * Sets number of samples (per channel) subclass needs to be handed,
+ * at least or will be handed all available if 0.
+ *
+ * If an exact number of samples is required, gst_audio_encoder_set_frame_samples_max()
+ * must be called with the same number.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_frame_samples_min (GstAudioEncoder * enc, gint num)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ enc->priv->ctx.frame_samples_min = num;
+}
+
+/**
+ * gst_audio_encoder_get_frame_samples_min:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently minimum requested samples per frame
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_encoder_get_frame_samples_min (GstAudioEncoder * enc)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+ return enc->priv->ctx.frame_samples_min;
+}
+
+/**
+ * gst_audio_encoder_set_frame_samples_max:
+ * @enc: a #GstAudioEncoder
+ * @num: number of samples per frame
+ *
+ * Sets number of samples (per channel) subclass needs to be handed,
+ * at most or will be handed all available if 0.
+ *
+ * If an exact number of samples is required, gst_audio_encoder_set_frame_samples_min()
+ * must be called with the same number.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_frame_samples_max (GstAudioEncoder * enc, gint num)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ enc->priv->ctx.frame_samples_max = num;
+}
+
+/**
+ * gst_audio_encoder_get_frame_samples_min:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently maximum requested samples per frame
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_encoder_get_frame_samples_max (GstAudioEncoder * enc)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+ return enc->priv->ctx.frame_samples_max;
+}
+
+/**
+ * gst_audio_encoder_set_frame_max:
+ * @enc: a #GstAudioEncoder
+ * @num: number of frames
+ *
+ * Sets max number of frames accepted at once (assumed minimally 1).
+ * Requires @frame_samples_min and @frame_samples_max to be the equal.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_frame_max (GstAudioEncoder * enc, gint num)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ enc->priv->ctx.frame_max = num;
+}
+
+/**
+ * gst_audio_encoder_get_frame_max:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently configured maximum handled frames
+ *
+ * Since: 0.10.36
+ */
+gint
+gst_audio_encoder_get_frame_max (GstAudioEncoder * enc)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+ return enc->priv->ctx.frame_max;
+}
+
+/**
+ * gst_audio_encoder_set_lookahead:
+ * @enc: a #GstAudioEncoder
+ * @num: lookahead
+ *
+ * Sets encoder lookahead (in units of input rate samples)
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_lookahead (GstAudioEncoder * enc, gint num)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ enc->priv->ctx.lookahead = num;
+}
+
+/**
+ * gst_audio_encoder_get_lookahead:
+ * @enc: a #GstAudioEncoder
+ *
+ * Returns: currently configured encoder lookahead
+ */
+gint
+gst_audio_encoder_get_lookahead (GstAudioEncoder * enc)
+{
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+ return enc->priv->ctx.lookahead;
+}
+
+/**
+ * gst_audio_encoder_set_latency:
+ * @enc: a #GstAudioEncoder
+ * @min: minimum latency
+ * @max: maximum latency
+ *
+ * Sets encoder latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_latency (GstAudioEncoder * enc,
+ GstClockTime min, GstClockTime max)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_OBJECT_LOCK (enc);
+ enc->priv->ctx.min_latency = min;
+ enc->priv->ctx.max_latency = max;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_latency:
+ * @enc: a #GstAudioEncoder
+ * @min: (out) (allow-none): a pointer to storage to hold minimum latency
+ * @max: (out) (allow-none): a pointer to storage to hold maximum latency
+ *
+ * Sets the variables pointed to by @min and @max to the currently configured
+ * latency.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_get_latency (GstAudioEncoder * enc,
+ GstClockTime * min, GstClockTime * max)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_OBJECT_LOCK (enc);
+ if (min)
+ *min = enc->priv->ctx.min_latency;
+ if (max)
+ *max = enc->priv->ctx.max_latency;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_set_mark_granule:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Enable or disable encoder granule handling.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_mark_granule (GstAudioEncoder * enc, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_LOG_OBJECT (enc, "enabled: %d", enabled);
+
+ GST_OBJECT_LOCK (enc);
+ enc->priv->granule = enabled;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_mark_granule:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries if the encoder will handle granule marking.
+ *
+ * Returns: TRUE if granule marking is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_mark_granule (GstAudioEncoder * enc)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), FALSE);
+
+ GST_OBJECT_LOCK (enc);
+ result = enc->priv->granule;
+ GST_OBJECT_UNLOCK (enc);
+
+ return result;
+}
+
+/**
+ * gst_audio_encoder_set_perfect_timestamp:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Enable or disable encoder perfect output timestamp preference.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_perfect_timestamp (GstAudioEncoder * enc,
+ gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_LOG_OBJECT (enc, "enabled: %d", enabled);
+
+ GST_OBJECT_LOCK (enc);
+ enc->priv->perfect_ts = enabled;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_perfect_timestamp:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder perfect timestamp behaviour.
+ *
+ * Returns: TRUE if perfect timestamp setting enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_perfect_timestamp (GstAudioEncoder * enc)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), FALSE);
+
+ GST_OBJECT_LOCK (enc);
+ result = enc->priv->perfect_ts;
+ GST_OBJECT_UNLOCK (enc);
+
+ return result;
+}
+
+/**
+ * gst_audio_encoder_set_hard_sync:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Sets encoder hard resync handling.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_hard_resync (GstAudioEncoder * enc, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_LOG_OBJECT (enc, "enabled: %d", enabled);
+
+ GST_OBJECT_LOCK (enc);
+ enc->priv->hard_resync = enabled;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_hard_sync:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder's hard resync setting.
+ *
+ * Returns: TRUE if hard resync is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_hard_resync (GstAudioEncoder * enc)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), FALSE);
+
+ GST_OBJECT_LOCK (enc);
+ result = enc->priv->hard_resync;
+ GST_OBJECT_UNLOCK (enc);
+
+ return result;
+}
+
+/**
+ * gst_audio_encoder_set_tolerance:
+ * @enc: a #GstAudioEncoder
+ * @tolerance: new tolerance
+ *
+ * Configures encoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_tolerance (GstAudioEncoder * enc, gint64 tolerance)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_OBJECT_LOCK (enc);
+ enc->priv->tolerance = tolerance;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_tolerance:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries current audio jitter tolerance threshold.
+ *
+ * Returns: encoder audio jitter tolerance threshold.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gint64
+gst_audio_encoder_get_tolerance (GstAudioEncoder * enc)
+{
+ gint64 result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+ GST_OBJECT_LOCK (enc);
+ result = enc->priv->tolerance;
+ GST_OBJECT_UNLOCK (enc);
+
+ return result;
+}
+
+/**
+ * gst_audio_encoder_set_hard_min:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Configures encoder hard minimum handling. If enabled, subclass
+ * will never be handed less samples than it configured, which otherwise
+ * might occur near end-of-data handling. Instead, the leftover samples
+ * will simply be discarded.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_hard_min (GstAudioEncoder * enc, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_OBJECT_LOCK (enc);
+ enc->priv->hard_min = enabled;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_hard_min:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder hard minimum handling.
+ *
+ * Returns: TRUE if hard minimum handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_hard_min (GstAudioEncoder * enc)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+ GST_OBJECT_LOCK (enc);
+ result = enc->priv->hard_min;
+ GST_OBJECT_UNLOCK (enc);
+
+ return result;
+}
+
+/**
+ * gst_audio_encoder_set_drainable:
+ * @enc: a #GstAudioEncoder
+ * @enabled: new state
+ *
+ * Configures encoder drain handling. If drainable, subclass might
+ * be handed a NULL buffer to have it return any leftover encoded data.
+ * Otherwise, it is not considered so capable and will only ever be passed
+ * real data.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_set_drainable (GstAudioEncoder * enc, gboolean enabled)
+{
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+ GST_OBJECT_LOCK (enc);
+ enc->priv->drainable = enabled;
+ GST_OBJECT_UNLOCK (enc);
+}
+
+/**
+ * gst_audio_encoder_get_drainable:
+ * @enc: a #GstAudioEncoder
+ *
+ * Queries encoder drain handling.
+ *
+ * Returns: TRUE if drainable handling is enabled.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_encoder_get_drainable (GstAudioEncoder * enc)
+{
+ gboolean result;
+
+ g_return_val_if_fail (GST_IS_AUDIO_ENCODER (enc), 0);
+
+ GST_OBJECT_LOCK (enc);
+ result = enc->priv->drainable;
+ GST_OBJECT_UNLOCK (enc);
+
+ return result;
+}
+
+/**
+ * gst_audio_encoder_merge_tags:
+ * @enc: a #GstAudioEncoder
+ * @tags: a #GstTagList to merge
+ * @mode: the #GstTagMergeMode to use
+ *
+ * Adds tags to so-called pending tags, which will be processed
+ * before pushing out data downstream.
+ *
+ * Note that this is provided for convenience, and the subclass is
+ * not required to use this and can still do tag handling on its own,
+ * although it should be aware that baseclass already takes care
+ * of the usual CODEC/AUDIO_CODEC tags.
+ *
+ * MT safe.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_audio_encoder_merge_tags (GstAudioEncoder * enc,
+ const GstTagList * tags, GstTagMergeMode mode)
+{
+ GstTagList *otags;
+
+ g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+ g_return_if_fail (tags == NULL || GST_IS_TAG_LIST (tags));
+
+ GST_OBJECT_LOCK (enc);
+ if (tags)
+ GST_DEBUG_OBJECT (enc, "merging tags %" GST_PTR_FORMAT, tags);
+ otags = enc->priv->tags;
+ enc->priv->tags = gst_tag_list_merge (enc->priv->tags, tags, mode);
+ if (otags)
+ gst_tag_list_free (otags);
+ GST_OBJECT_UNLOCK (enc);
+}
--- /dev/null
+/* GStreamer
+ * Copyright (C) 2011 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
+ * Copyright (C) 2011 Nokia Corporation. All rights reserved.
+ * Contact: Stefan Kost <stefan.kost@nokia.com>
+ *
+ * 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_AUDIO_ENCODER_H__
+#define __GST_AUDIO_ENCODER_H__
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_AUDIO_ENCODER (gst_audio_encoder_get_type())
+#define GST_AUDIO_ENCODER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_ENCODER,GstAudioEncoder))
+#define GST_AUDIO_ENCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_ENCODER,GstAudioEncoderClass))
+#define GST_AUDIO_ENCODER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_ENCODER,GstAudioEncoderClass))
+#define GST_IS_AUDIO_ENCODER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_AUDIO_ENCODER))
+#define GST_IS_AUDIO_ENCODER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_AUDIO_ENCODER))
+#define GST_AUDIO_ENCODER_CAST(obj) ((GstAudioEncoder *)(obj))
+
+/**
+ * GST_AUDIO_ENCODER_SINK_NAME:
+ *
+ * the name of the templates for the sink pad
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SINK_NAME "sink"
+/**
+ * GST_AUDIO_ENCODER_SRC_NAME:
+ *
+ * the name of the templates for the source pad
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SRC_NAME "src"
+
+/**
+ * GST_AUDIO_ENCODER_SRC_PAD:
+ * @obj: base parse instance
+ *
+ * Gives the pointer to the source #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SRC_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)->srcpad)
+
+/**
+ * GST_AUDIO_ENCODER_SINK_PAD:
+ * @obj: base parse instance
+ *
+ * Gives the pointer to the sink #GstPad object of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SINK_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)->sinkpad)
+
+/**
+ * GST_AUDIO_ENCODER_SEGMENT:
+ * @obj: base parse instance
+ *
+ * Gives the segment of the element.
+ *
+ * Since: 0.10.36
+ */
+#define GST_AUDIO_ENCODER_SEGMENT(obj) (GST_AUDIO_ENCODER_CAST (obj)->segment)
+
+#define GST_AUDIO_ENCODER_STREAM_LOCK(enc) g_static_rec_mutex_lock (&GST_AUDIO_ENCODER (enc)->stream_lock)
+#define GST_AUDIO_ENCODER_STREAM_UNLOCK(enc) g_static_rec_mutex_unlock (&GST_AUDIO_ENCODER (enc)->stream_lock)
+
+typedef struct _GstAudioEncoder GstAudioEncoder;
+typedef struct _GstAudioEncoderClass GstAudioEncoderClass;
+
+typedef struct _GstAudioEncoderPrivate GstAudioEncoderPrivate;
+
+/**
+ * GstAudioEncoder:
+ *
+ * The opaque #GstAudioEncoder data structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioEncoder {
+ GstElement element;
+
+ /*< protected >*/
+ /* source and sink pads */
+ GstPad *sinkpad;
+ GstPad *srcpad;
+
+ /* protects all data processing, i.e. is locked
+ * in the chain function, finish_frame and when
+ * processing serialized events */
+ GStaticRecMutex stream_lock;
+
+ /* MT-protected (with STREAM_LOCK) */
+ GstSegment segment;
+
+ /*< private >*/
+ GstAudioEncoderPrivate *priv;
+ gpointer _gst_reserved[GST_PADDING_LARGE];
+};
+
+/**
+ * GstAudioEncoderClass:
+ * @element_class: The parent class structure
+ * @start: Optional.
+ * Called when the element starts processing.
+ * Allows opening external resources.
+ * @stop: Optional.
+ * Called when the element stops processing.
+ * Allows closing external resources.
+ * @set_format: Notifies subclass of incoming data format.
+ * GstAudioInfo contains the format according to provided caps.
+ * @handle_frame: Provides input samples (or NULL to clear any remaining data)
+ * according to directions as configured by the subclass
+ * using the API. Input data ref management is performed
+ * by base class, subclass should not care or intervene,
+ * and input data is only valid until next call to base class,
+ * most notably a call to gst_audio_encoder_finish_frame().
+ * @flush: Optional.
+ * Instructs subclass to clear any codec caches and discard
+ * any pending samples and not yet returned encoded data.
+ * @event: Optional.
+ * Event handler on the sink pad. This function should return
+ * TRUE if the event was handled and should be discarded
+ * (i.e. not unref'ed).
+ * @pre_push: Optional.
+ * Called just prior to pushing (encoded data) buffer downstream.
+ * Subclass has full discretionary access to buffer,
+ * and a not OK flow return will abort downstream pushing.
+ * @getcaps: Optional.
+ * Allows for a custom sink getcaps implementation (e.g.
+ * for multichannel input specification). If not implemented,
+ * default returns gst_audio_encoder_proxy_getcaps
+ * applied to sink template caps.
+ *
+ * Subclasses can override any of the available virtual methods or not, as
+ * needed. At minimum @set_format and @handle_frame needs to be overridden.
+ *
+ * Since: 0.10.36
+ */
+struct _GstAudioEncoderClass {
+ GstElementClass element_class;
+
+ /*< public >*/
+ /* virtual methods for subclasses */
+
+ gboolean (*start) (GstAudioEncoder *enc);
+
+ gboolean (*stop) (GstAudioEncoder *enc);
+
+ gboolean (*set_format) (GstAudioEncoder *enc,
+ GstAudioInfo *info);
+
+ GstFlowReturn (*handle_frame) (GstAudioEncoder *enc,
+ GstBuffer *buffer);
+
+ void (*flush) (GstAudioEncoder *enc);
+
+ GstFlowReturn (*pre_push) (GstAudioEncoder *enc,
+ GstBuffer **buffer);
+
+ gboolean (*event) (GstAudioEncoder *enc,
+ GstEvent *event);
+
+ GstCaps * (*getcaps) (GstAudioEncoder *enc);
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING_LARGE];
+};
+
+GType gst_audio_encoder_get_type (void);
+
+GstFlowReturn gst_audio_encoder_finish_frame (GstAudioEncoder * enc,
+ GstBuffer * buffer,
+ gint samples);
+
+GstCaps * gst_audio_encoder_proxy_getcaps (GstAudioEncoder * enc,
+ GstCaps * caps);
+
+
+/* context parameters */
+GstAudioInfo * gst_audio_encoder_get_audio_info (GstAudioEncoder * enc);
+
+gint gst_audio_encoder_get_frame_samples_min (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_frame_samples_min (GstAudioEncoder * enc, gint num);
+
+gint gst_audio_encoder_get_frame_samples_max (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_frame_samples_max (GstAudioEncoder * enc, gint num);
+
+gint gst_audio_encoder_get_frame_max (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_frame_max (GstAudioEncoder * enc, gint num);
+
+gint gst_audio_encoder_get_lookahead (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_lookahead (GstAudioEncoder * enc, gint num);
+
+void gst_audio_encoder_get_latency (GstAudioEncoder * enc,
+ GstClockTime * min,
+ GstClockTime * max);
+
+void gst_audio_encoder_set_latency (GstAudioEncoder * enc,
+ GstClockTime min,
+ GstClockTime max);
+
+/* object properties */
+
+void gst_audio_encoder_set_mark_granule (GstAudioEncoder * enc,
+ gboolean enabled);
+
+gboolean gst_audio_encoder_get_mark_granule (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_perfect_timestamp (GstAudioEncoder * enc,
+ gboolean enabled);
+
+gboolean gst_audio_encoder_get_perfect_timestamp (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_hard_resync (GstAudioEncoder * enc,
+ gboolean enabled);
+
+gboolean gst_audio_encoder_get_hard_resync (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_tolerance (GstAudioEncoder * enc,
+ gint64 tolerance);
+
+gint64 gst_audio_encoder_get_tolerance (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_hard_min (GstAudioEncoder * enc,
+ gboolean enabled);
+
+gboolean gst_audio_encoder_get_hard_min (GstAudioEncoder * enc);
+
+void gst_audio_encoder_set_drainable (GstAudioEncoder * enc,
+ gboolean enabled);
+
+gboolean gst_audio_encoder_get_drainable (GstAudioEncoder * enc);
+
+void gst_audio_encoder_merge_tags (GstAudioEncoder * enc,
+ const GstTagList * tags, GstTagMergeMode mode);
+
+G_END_DECLS
+
+#endif /* __GST_AUDIO_ENCODER_H__ */
* SECTION:gstaudiofilter
* @short_description: Base class for simple audio filters
*
- * #GstAudioFilter is a #GstBaseTransform-derived base class for simple audio
+ * #GstAudioFilter is a #GstBaseTransform<!-- -->-derived base class for simple audio
* filters, ie. those that output the same format that they get as input.
*
* #GstAudioFilter will parse the input format for you (with error checking)
/**
* GstAudioFilter:
- * @basetransform: Element parent class
*
* Base class for audio filters with the same format for input and output.
*
--- /dev/null
+/* GStreamer audio helper functions for IEC 61937 payloading
+ * (c) 2011 Intel Corporation
+ * 2011 Collabora Multimedia
+ * 2011 Arun Raghavan <arun.raghavan@collabora.co.uk>
+ *
+ * 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:gstaudioiec61937
+ * @short_description: Utility functions for IEC 61937 payloading
+ * @since: 0.10.36
+ *
+ * This module contains some helper functions for encapsulating various
+ * audio formats in IEC 61937 headers and padding.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include "gstaudioiec61937.h"
+
+#define IEC61937_HEADER_SIZE 8
+#define IEC61937_PAYLOAD_SIZE_AC3 (1536 * 4)
+#define IEC61937_PAYLOAD_SIZE_EAC3 (6144 * 4)
+
+static gint
+caps_get_int_field (const GstCaps * caps, const gchar * field)
+{
+ const GstStructure *st;
+ gint ret = 0;
+
+ st = gst_caps_get_structure (caps, 0);
+ gst_structure_get_int (st, field, &ret);
+
+ return ret;
+}
+
+static const gchar *
+caps_get_string_field (const GstCaps * caps, const gchar * field)
+{
+ const GstStructure *st = gst_caps_get_structure (caps, 0);
+ return gst_structure_get_string (st, field);
+}
+
+/**
+ * gst_audio_iec61937_frame_size:
+ * @spec: the ringbufer spec
+ *
+ * Calculated the size of the buffer expected by gst_audio_iec61937_payload() for
+ * payloading type from @spec.
+ *
+ * Returns: the size or 0 if the given @type is not supported or cannot be
+ * payloaded.
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_audio_iec61937_frame_size (const GstRingBufferSpec * spec)
+{
+ switch (spec->type) {
+ case GST_BUFTYPE_AC3:
+ return IEC61937_PAYLOAD_SIZE_AC3;
+
+ case GST_BUFTYPE_EAC3:
+ /* Check that the parser supports /some/ alignment. Need to be less
+ * strict about this at checking time since the alignment is dynamically
+ * set at the moment. */
+ if (caps_get_string_field (spec->caps, "alignment"))
+ return IEC61937_PAYLOAD_SIZE_EAC3;
+ else
+ return 0;
+
+ case GST_BUFTYPE_DTS:
+ {
+ gint dts_frame_size = caps_get_int_field (spec->caps, "frame-size");
+ gint iec_frame_size = caps_get_int_field (spec->caps, "block-size") * 4;
+
+ /* Note: this will also (correctly) fail if either field is missing */
+ if (iec_frame_size >= (dts_frame_size + IEC61937_HEADER_SIZE))
+ return iec_frame_size;
+ else
+ return 0;
+ }
+
+ case GST_BUFTYPE_MPEG:
+ {
+ int version, layer, channels, frames;
+
+ version = caps_get_int_field (spec->caps, "mpegaudioversion");
+ layer = caps_get_int_field (spec->caps, "layer");
+ channels = caps_get_int_field (spec->caps, "channels");
+
+ /* Bail out if we can't figure out either, if it's MPEG 2.5, or if it's
+ * MP3 with multichannel audio */
+ if (!version || !layer || version == 3 || channels > 2)
+ return 0;
+
+ if (version == 1 && layer == 1)
+ frames = 384;
+ else if (version == 2 && layer == 1 && spec->rate < 32000)
+ frames = 768;
+ else if (version == 2 && layer == 1 && spec->rate < 32000)
+ frames = 2304;
+ else
+ frames = 1152;
+
+ return frames * 4;
+ }
+
+ default:
+ return 0;
+ }
+}
+
+/**
+ * gst_audio_iec61937_payload:
+ * @src: a buffer containing the data to payload
+ * @src_n: size of @src in bytes
+ * @dst: the destination buffer to store the payloaded contents in. Should not
+ * overlap with @src
+ * @dst_n: size of @dst in bytes
+ * @spec: the ringbufer spec for @src
+ *
+ * Payloads @src in the form specified by IEC 61937 for the type from @spec and
+ * stores the result in @dst. @src must contain exactly one frame of data and
+ * the frame is not checked for errors.
+ *
+ * Returns: transfer-full: %TRUE if the payloading was successful, %FALSE
+ * otherwise.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_audio_iec61937_payload (const guint8 * src, guint src_n, guint8 * dst,
+ guint dst_n, const GstRingBufferSpec * spec)
+{
+ guint i, tmp;
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+ guint8 zero = 0, one = 1, two = 2, three = 3, four = 4, five = 5, six = 6,
+ seven = 7;
+#else
+ /* We need to send the data byte-swapped */
+ guint8 zero = 1, one = 0, two = 3, three = 2, four = 5, five = 4, six = 7,
+ seven = 6;
+#endif
+
+ g_return_val_if_fail (src != NULL, FALSE);
+ g_return_val_if_fail (dst != NULL, FALSE);
+ g_return_val_if_fail (src != dst, FALSE);
+ g_return_val_if_fail (dst_n >= gst_audio_iec61937_frame_size (spec), FALSE);
+
+ if (dst_n < src_n + IEC61937_HEADER_SIZE)
+ return FALSE;
+
+ /* Pa, Pb */
+ dst[zero] = 0xF8;
+ dst[one] = 0x72;
+ dst[two] = 0x4E;
+ dst[three] = 0x1F;
+
+ switch (spec->type) {
+ case GST_BUFTYPE_AC3:
+ {
+ g_return_val_if_fail (src_n >= 6, FALSE);
+
+ /* Pc: bit 13-15 - stream number (0)
+ * bit 11-12 - reserved (0)
+ * bit 8-10 - bsmod from AC3 frame */
+ dst[four] = src[5] & 0x7;
+ /* Pc: bit 7 - error bit (0)
+ * bit 5-6 - subdata type (0)
+ * bit 0-4 - data type (1) */
+ dst[five] = 1;
+ /* Pd: bit 15-0 - frame size in bits */
+ tmp = src_n * 8;
+ dst[six] = (guint8) (tmp >> 8);
+ dst[seven] = (guint8) (tmp & 0xff);
+
+ break;
+ }
+
+ case GST_BUFTYPE_EAC3:
+ {
+ if (g_str_equal (caps_get_string_field (spec->caps, "alignment"),
+ "iec61937"))
+ return FALSE;
+
+ /* Pc: bit 13-15 - stream number (0)
+ * bit 11-12 - reserved (0)
+ * bit 8-10 - bsmod from E-AC3 frame if present */
+ /* FIXME: this works, but nicer if we can put in the actual bsmod */
+ dst[four] = 0;
+ /* Pc: bit 7 - error bit (0)
+ * bit 5-6 - subdata type (0)
+ * bit 0-4 - data type (21) */
+ dst[five] = 21;
+ /* Pd: bit 15-0 - frame size in bytes */
+ dst[six] = ((guint16) src_n) >> 8;
+ dst[seven] = ((guint16) src_n) & 0xff;
+
+ break;
+ }
+
+ case GST_BUFTYPE_DTS:
+ {
+ int blocksize = caps_get_int_field (spec->caps, "block-size");
+
+ g_return_val_if_fail (src_n != 0, FALSE);
+
+ if (blocksize == 0)
+ return FALSE;
+
+ /* Pc: bit 13-15 - stream number (0)
+ * bit 11-12 - reserved (0)
+ * bit 8-10 - for DTS type I-III (0) */
+ dst[four] = 0;
+ /* Pc: bit 7 - error bit (0)
+ * bit 5-6 - reserved (0)
+ * bit 0-4 - data type (11 = type I, 12 = type II,
+ * 13 = type III) */
+ dst[five] = 11 + (blocksize / 1024);
+ /* Pd: bit 15-0 - frame size in bytes */
+ dst[six] = ((guint16) src_n) >> 8;
+ dst[seven] = ((guint16) src_n) & 0xff;
+ break;
+ }
+
+ case GST_BUFTYPE_MPEG:
+ {
+ int version, layer;
+
+ version = caps_get_int_field (spec->caps, "mpegaudioversion");
+ layer = caps_get_int_field (spec->caps, "layer");
+
+ g_return_val_if_fail (version > 0 && layer > 0, FALSE);
+
+ /* NOTE: multichannel audio (MPEG-2) is not supported */
+
+ /* Pc: bit 13-15 - stream number (0)
+ * bit 11-12 - reserved (0)
+ * bit 9-10 - 0 - no dynamic range control
+ * - 2 - dynamic range control exists
+ * - 1,3 - reserved
+ * bit 8 - Normal (0) or Karaoke (1) mode */
+ dst[four] = 0;
+ /* Pc: bit 7 - error bit (0)
+ * bit 5-6 - reserved (0)
+ * bit 0-4 - data type (04 = MPEG 1, Layer 1
+ * 05 = MPEG 1, Layer 2, 3 / MPEG 2, w/o ext.
+ * 06 = MPEG 2, with extension
+ * 08 - MPEG 2 LSF, Layer 1
+ * 09 - MPEG 2 LSF, Layer 2
+ * 10 - MPEG 2 LSF, Layer 3 */
+ if (version == 1 && layer == 1)
+ dst[five] = 0x04;
+ else if ((version == 1 && (layer == 2 || layer == 3)) ||
+ (version == 2 && spec->rate >= 32000))
+ dst[five] = 0x05;
+ else if (version == 2 && layer == 1 && spec->rate < 32000)
+ dst[five] = 0x08;
+ else if (version == 2 && layer == 2 && spec->rate < 32000)
+ dst[five] = 0x09;
+ else if (version == 2 && layer == 3 && spec->rate < 32000)
+ dst[five] = 0x0A;
+ else
+ g_return_val_if_reached (FALSE);
+ /* Pd: bit 15-0 - frame size in bits */
+ dst[six] = ((guint16) src_n * 8) >> 8;
+ dst[seven] = ((guint16) src_n * 8) & 0xff;
+
+ break;
+ }
+
+ default:
+ return FALSE;
+ }
+
+ /* Copy the payload */
+ i = 8;
+
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+ memcpy (dst + i, src, src_n);
+#else
+ /* Byte-swapped again */
+ /* FIXME: orc-ify this */
+ for (tmp = 1; tmp < src_n; tmp += 2) {
+ dst[i + tmp - 1] = src[tmp];
+ dst[i + tmp] = src[tmp - 1];
+ }
+ /* Do we have 1 byte remaining? */
+ if (src_n % 2) {
+ dst[i + src_n - 1] = 0;
+ dst[i + src_n] = src[src_n - 1];
+ i++;
+ }
+#endif
+
+ i += src_n;
+
+ /* Zero the rest */
+ memset (dst + i, 0, dst_n - i);
+
+ return TRUE;
+}
--- /dev/null
+/* GStreamer audio helper functions for IEC 61937 payloading
+ * (c) 2011 Intel Corporation
+ * 2011 Collabora Multimedia
+ * 2011 Arun Raghavan <arun.raghavan@collabora.co.uk>
+ *
+ * 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_AUDIO_IEC61937_H__
+#define __GST_AUDIO_IEC61937_H__
+
+#include <gst/audio/gstringbuffer.h>
+
+guint gst_audio_iec61937_frame_size (const GstRingBufferSpec * spec);
+gboolean gst_audio_iec61937_payload (const guint8 * src, guint src_n,
+ guint8 * dst, guint dst_n, const GstRingBufferSpec * spec);
+
+#endif /* __GST_AUDIO_IEC61937_H__ */
#include "gstaudiosink.h"
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (gst_audio_sink_debug);
#define GST_CAT_DEFAULT gst_audio_sink_debug
GST_OBJECT_LOCK (abuf);
if (!abuf->running)
goto stop_running;
+ if (G_UNLIKELY (g_atomic_int_get (&buf->state) ==
+ GST_RING_BUFFER_STATE_STARTED)) {
+ GST_OBJECT_UNLOCK (abuf);
+ continue;
+ }
GST_DEBUG_OBJECT (sink, "signal wait");
GST_AUDIORING_BUFFER_SIGNAL (buf);
GST_DEBUG_OBJECT (sink, "wait for action");
abuf->running = TRUE;
GST_DEBUG_OBJECT (sink, "starting thread");
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
sink->thread =
g_thread_create ((GThreadFunc) audioringbuffer_thread_func, buf, TRUE,
&error);
+#else
+ sink->thread = g_thread_try_new ("audiosink-ringbuffer",
+ (GThreadFunc) audioringbuffer_thread_func, buf, &error);
+#endif
+
if (!sink->thread || error != NULL)
goto thread_failed;
#include "gstaudiosrc.h"
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (gst_audio_src_debug);
#define GST_CAT_DEFAULT gst_audio_src_debug
abuf = GST_AUDIORING_BUFFER (buf);
abuf->running = TRUE;
+ /* FIXME: handle thread creation failure */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
src->thread =
g_thread_create ((GThreadFunc) audioringbuffer_thread_func, buf, TRUE,
NULL);
+#else
+ src->thread = g_thread_try_new ("audiosrc-ringbuffer",
+ (GThreadFunc) audioringbuffer_thread_func, buf, NULL);
+#endif
+
GST_AUDIORING_BUFFER_WAIT (buf);
return result;
/**
* GstAudioSrc:
- * @element: parent class
*
* Base class for simple audio sources.
*/
#include <string.h>
+/* FIXME 0.11: suppress warnings for deprecated API such as GStaticRecMutex
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
#include "gstbaseaudiosink.h"
GST_DEBUG_CATEGORY_STATIC (gst_base_audio_sink_debug);
GstClockTime eos_time;
gboolean do_time_offset;
- /* number of microseconds we alow timestamps or clock slaving to drift
+ /* number of microseconds we allow clock slaving to drift
* before resyncing */
guint64 drift_tolerance;
+
+ /* number of nanoseconds we allow timestamps to drift
+ * before resyncing */
+ GstClockTime alignment_threshold;
+
+ /* time of the previous detected discont candidate */
+ GstClockTime discont_time;
+
+ /* number of nanoseconds to wait until creating a discontinuity */
+ GstClockTime discont_wait;
};
/* BaseAudioSink signals and args */
/* FIXME, enable pull mode when clock slaving and trick modes are figured out */
#define DEFAULT_CAN_ACTIVATE_PULL FALSE
-/* when timestamps or clock slaving drift for more than 40ms we resync. This is
+/* when timestamps drift for more than 40ms we resync. This should
+ * be anough to compensate for timestamp rounding errors. */
+#define DEFAULT_ALIGNMENT_THRESHOLD (40 * GST_MSECOND)
+
+/* when clock slaving drift for more than 40ms we resync. This is
* a reasonable default */
#define DEFAULT_DRIFT_TOLERANCE ((40 * GST_MSECOND) / GST_USECOND)
+/* allow for one second before resyncing to see if the timestamps drift will
+ * fix itself, or is a permanent offset */
+#define DEFAULT_DISCONT_WAIT (1 * GST_SECOND)
+
enum
{
PROP_0,
PROP_PROVIDE_CLOCK,
PROP_SLAVE_METHOD,
PROP_CAN_ACTIVATE_PULL,
+ PROP_ALIGNMENT_THRESHOLD,
PROP_DRIFT_TOLERANCE,
+ PROP_DISCONT_WAIT,
PROP_LAST
};
/**
* GstBaseAudioSink:drift-tolerance
*
- * Controls the amount of time in milliseconds that timestamps or clocks are allowed
+ * Controls the amount of time in microseconds that clocks are allowed
* to drift before resynchronisation happens.
*
* Since: 0.10.26
*/
g_object_class_install_property (gobject_class, PROP_DRIFT_TOLERANCE,
g_param_spec_int64 ("drift-tolerance", "Drift Tolerance",
- "Tolerance for timestamp and clock drift in microseconds", 1,
+ "Tolerance for clock drift in microseconds", 1,
G_MAXINT64, DEFAULT_DRIFT_TOLERANCE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstBaseAudioSink:alignment_threshold
+ *
+ * Controls the amount of time in nanoseconds that timestamps are allowed
+ * to drift from their ideal time before choosing not to align them.
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (gobject_class, PROP_ALIGNMENT_THRESHOLD,
+ g_param_spec_uint64 ("alignment-threshold", "Alignment Threshold",
+ "Timestamp alignment threshold in nanoseconds", 1,
+ G_MAXUINT64 - 1, DEFAULT_ALIGNMENT_THRESHOLD,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ /**
+ * GstBaseAudioSink:discont-wait
+ *
+ * A window of time in nanoseconds to wait before creating a discontinuity as
+ * a result of breaching the drift-tolerance.
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (gobject_class, PROP_DISCONT_WAIT,
+ g_param_spec_uint64 ("discont-wait", "Discont Wait",
+ "Window of time in nanoseconds to wait before "
+ "creating a discontinuity", 0,
+ G_MAXUINT64 - 1, DEFAULT_DISCONT_WAIT,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gstelement_class->change_state =
GST_DEBUG_FUNCPTR (gst_base_audio_sink_change_state);
baseaudiosink->provide_clock = DEFAULT_PROVIDE_CLOCK;
baseaudiosink->priv->slave_method = DEFAULT_SLAVE_METHOD;
baseaudiosink->priv->drift_tolerance = DEFAULT_DRIFT_TOLERANCE;
+ baseaudiosink->priv->alignment_threshold = DEFAULT_ALIGNMENT_THRESHOLD;
+ baseaudiosink->priv->discont_wait = DEFAULT_DISCONT_WAIT;
baseaudiosink->provided_clock = gst_audio_clock_new ("GstAudioSinkClock",
(GstAudioClockGetTimeFunc) gst_base_audio_sink_get_time, baseaudiosink);
if (feature) {
if (strcmp (gst_plugin_feature_get_name (feature), "pulsesink") == 0) {
if (!gst_plugin_feature_check_version (feature, 0, 10, 17)) {
- /* we're dealing with an old pulsesink, we need to disable time corection */
+ /* we're dealing with an old pulsesink, we need to disable time correction */
GST_DEBUG ("disable time offset");
baseaudiosink->priv->do_time_offset = FALSE;
}
if ((res =
gst_base_sink_query_latency (GST_BASE_SINK_CAST (basesink), &live,
&us_live, &min_l, &max_l))) {
- GstClockTime min_latency, max_latency;
+ GstClockTime base_latency, min_latency, max_latency;
/* we and upstream are both live, adjust the min_latency */
if (live && us_live) {
basesink->priv->us_latency = min_l;
- min_latency =
+ base_latency =
gst_util_uint64_scale_int (spec->seglatency * spec->segsize,
GST_SECOND, spec->rate * spec->bytes_per_sample);
GST_OBJECT_UNLOCK (basesink);
/* we cannot go lower than the buffer size and the min peer latency */
- min_latency = min_latency + min_l;
+ min_latency = base_latency + min_l;
/* the max latency is the max of the peer, we can delay an infinite
* amount of time. */
- max_latency = min_latency + (max_l == -1 ? 0 : max_l);
+ max_latency = (max_l == -1) ? -1 : (base_latency + max_l);
GST_DEBUG_OBJECT (basesink,
"peer min %" GST_TIME_FORMAT ", our min latency: %"
GST_TIME_FORMAT, GST_TIME_ARGS (min_l),
GST_TIME_ARGS (min_latency));
+ GST_DEBUG_OBJECT (basesink,
+ "peer max %" GST_TIME_FORMAT ", our max latency: %"
+ GST_TIME_FORMAT, GST_TIME_ARGS (max_l),
+ GST_TIME_ARGS (max_latency));
} else {
GST_DEBUG_OBJECT (basesink,
"peer or we are not live, don't care about latency");
return result;
}
+/**
+ * gst_base_audio_sink_set_alignment_threshold:
+ * @sink: a #GstBaseAudioSink
+ * @alignment_threshold: the new alignment threshold in nanoseconds
+ *
+ * Controls the sink's alignment threshold.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_base_audio_sink_set_alignment_threshold (GstBaseAudioSink * sink,
+ GstClockTime alignment_threshold)
+{
+ g_return_if_fail (GST_IS_BASE_AUDIO_SINK (sink));
+
+ GST_OBJECT_LOCK (sink);
+ sink->priv->alignment_threshold = alignment_threshold;
+ GST_OBJECT_UNLOCK (sink);
+}
+
+/**
+ * gst_base_audio_sink_get_alignment_threshold
+ * @sink: a #GstBaseAudioSink
+ *
+ * Get the current alignment threshold, in nanoseconds, used by @sink.
+ *
+ * Returns: The current alignment threshold used by @sink.
+ *
+ * Since: 0.10.36
+ */
+GstClockTime
+gst_base_audio_sink_get_alignment_threshold (GstBaseAudioSink * sink)
+{
+ gint64 result;
+
+ g_return_val_if_fail (GST_IS_BASE_AUDIO_SINK (sink), -1);
+
+ GST_OBJECT_LOCK (sink);
+ result = sink->priv->alignment_threshold;
+ GST_OBJECT_UNLOCK (sink);
+
+ return result;
+}
+
+/**
+ * gst_base_audio_sink_set_discont_wait:
+ * @sink: a #GstBaseAudioSink
+ * @discont_wait: the new discont wait in nanoseconds
+ *
+ * Controls how long the sink will wait before creating a discontinuity.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_base_audio_sink_set_discont_wait (GstBaseAudioSink * sink,
+ GstClockTime discont_wait)
+{
+ g_return_if_fail (GST_IS_BASE_AUDIO_SINK (sink));
+
+ GST_OBJECT_LOCK (sink);
+ sink->priv->discont_wait = discont_wait;
+ GST_OBJECT_UNLOCK (sink);
+}
+
+/**
+ * gst_base_audio_sink_get_discont_wait
+ * @sink: a #GstBaseAudioSink
+ *
+ * Get the current discont wait, in nanoseconds, used by @sink.
+ *
+ * Returns: The current discont wait used by @sink.
+ *
+ * Since: 0.10.36
+ */
+GstClockTime
+gst_base_audio_sink_get_discont_wait (GstBaseAudioSink * sink)
+{
+ GstClockTime result;
+
+ g_return_val_if_fail (GST_IS_BASE_AUDIO_SINK (sink), -1);
+
+ GST_OBJECT_LOCK (sink);
+ result = sink->priv->discont_wait;
+ GST_OBJECT_UNLOCK (sink);
+
+ return result;
+}
+
static void
gst_base_audio_sink_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec)
case PROP_DRIFT_TOLERANCE:
gst_base_audio_sink_set_drift_tolerance (sink, g_value_get_int64 (value));
break;
+ case PROP_ALIGNMENT_THRESHOLD:
+ gst_base_audio_sink_set_alignment_threshold (sink,
+ g_value_get_uint64 (value));
+ break;
+ case PROP_DISCONT_WAIT:
+ gst_base_audio_sink_set_discont_wait (sink, g_value_get_uint64 (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_DRIFT_TOLERANCE:
g_value_set_int64 (value, gst_base_audio_sink_get_drift_tolerance (sink));
break;
+ case PROP_ALIGNMENT_THRESHOLD:
+ g_value_set_uint64 (value,
+ gst_base_audio_sink_get_alignment_threshold (sink));
+ break;
+ case PROP_DISCONT_WAIT:
+ g_value_set_uint64 (value, gst_base_audio_sink_get_discont_wait (sink));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
GstBaseAudioSink *sink = GST_BASE_AUDIO_SINK (bsink);
GstRingBufferSpec *spec;
GstClockTime now;
+ GstClockTime crate_num, crate_denom;
if (!sink->ringbuffer)
return FALSE;
gst_ring_buffer_activate (sink->ringbuffer, TRUE);
}
+ /* due to possible changes in the spec file we should recalibrate the clock */
+ gst_clock_get_calibration (sink->provided_clock, NULL, NULL,
+ &crate_num, &crate_denom);
+ gst_clock_set_calibration (sink->provided_clock,
+ gst_clock_get_internal_time (sink->provided_clock), now, crate_num,
+ crate_denom);
+
/* calculate actual latency and buffer times.
* FIXME: In 0.11, store the latency_time internally in ns */
spec->latency_time = gst_util_uint64_scale (spec->segsize,
sink->priv->avg_skew = -1;
sink->next_sample = -1;
sink->priv->eos_time = -1;
+ sink->priv->discont_time = -1;
if (sink->ringbuffer)
gst_ring_buffer_set_flushing (sink->ringbuffer, FALSE);
break;
sink->priv->avg_skew = -1;
sink->next_sample = -1;
sink->priv->eos_time = -1;
+ sink->priv->discont_time = -1;
return GST_FLOW_OK;
}
static gint64
-gst_base_audio_sink_get_alignment (GstBaseAudioSink * sink, GstClockTime sample_offset)
+gst_base_audio_sink_get_alignment (GstBaseAudioSink * sink,
+ GstClockTime sample_offset)
{
GstRingBuffer *ringbuf = sink->ringbuffer;
gint64 align;
- gint64 diff;
- gint64 maxdrift;
+ gint64 sample_diff;
+ gint64 max_sample_diff;
gint segdone = g_atomic_int_get (&ringbuf->segdone) - ringbuf->segbase;
gint64 samples_done = segdone * ringbuf->samples_per_seg;
gint64 headroom = sample_offset - samples_done;
gboolean allow_align = TRUE;
+ gboolean discont = FALSE;
/* now try to align the sample to the previous one, first see how big the
* difference is. */
if (sample_offset >= sink->next_sample)
- diff = sample_offset - sink->next_sample;
+ sample_diff = sample_offset - sink->next_sample;
else
- diff = sink->next_sample - sample_offset;
+ sample_diff = sink->next_sample - sample_offset;
- /* calculate the max allowed drift in units of samples. By default this is
- * 20ms and should be anough to compensate for timestamp rounding errors. */
- maxdrift = (ringbuf->spec.rate * sink->priv->drift_tolerance) / GST_MSECOND;
+ /* calculate the max allowed drift in units of samples. */
+ max_sample_diff = gst_util_uint64_scale_int (sink->priv->alignment_threshold,
+ ringbuf->spec.rate, GST_SECOND);
/* calc align with previous sample */
align = sink->next_sample - sample_offset;
/* don't align if it means writing behind the read-segment */
- if (diff > headroom && align < 0)
+ if (sample_diff > headroom && align < 0)
allow_align = FALSE;
- if (G_LIKELY (diff < maxdrift && allow_align)) {
+ if (G_UNLIKELY (sample_diff >= max_sample_diff)) {
+ /* wait before deciding to make a discontinuity */
+ if (sink->priv->discont_wait > 0) {
+ GstClockTime time = gst_util_uint64_scale_int (sample_offset,
+ GST_SECOND, ringbuf->spec.rate);
+ if (sink->priv->discont_time == -1) {
+ /* discont candidate */
+ sink->priv->discont_time = time;
+ } else if (time - sink->priv->discont_time >= sink->priv->discont_wait) {
+ /* discont_wait expired, discontinuity detected */
+ discont = TRUE;
+ sink->priv->discont_time = -1;
+ }
+ } else {
+ discont = TRUE;
+ }
+ } else if (G_UNLIKELY (sink->priv->discont_time != -1)) {
+ /* we have had a discont, but are now back on track! */
+ sink->priv->discont_time = -1;
+ }
+
+ if (G_LIKELY (!discont && allow_align)) {
GST_DEBUG_OBJECT (sink,
"align with prev sample, ABS (%" G_GINT64_FORMAT ") < %"
- G_GINT64_FORMAT, align, maxdrift);
+ G_GINT64_FORMAT, align, max_sample_diff);
} else {
+ gint64 diff_s G_GNUC_UNUSED;
+
/* calculate sample diff in seconds for error message */
- gint64 diff_s = gst_util_uint64_scale_int (diff, GST_SECOND, ringbuf->spec.rate);
+ diff_s =
+ gst_util_uint64_scale_int (sample_diff, GST_SECOND, ringbuf->spec.rate);
+
/* timestamps drifted apart from previous samples too much, we need to
* resync. We log this as an element warning. */
GST_WARNING_OBJECT (sink,
"Unexpected discontinuity in audio timestamps of "
"%s%" GST_TIME_FORMAT ", resyncing",
- sample_offset > sink->next_sample ? "+" : "-",
- GST_TIME_ARGS (diff_s));
+ sample_offset > sink->next_sample ? "+" : "-", GST_TIME_ARGS (diff_s));
align = 0;
}
guint64 in_offset;
GstClockTime time, stop, render_start, render_stop, sample_offset;
GstClockTimeDiff sync_offset, ts_offset;
+ GstBaseAudioSinkClass *bclass;
GstBaseAudioSink *sink;
GstRingBuffer *ringbuf;
gint64 diff, align, ctime, cstop;
GstFlowReturn ret;
GstSegment clip_seg;
gint64 time_offset;
+ GstBuffer *out = NULL;
sink = GST_BASE_AUDIO_SINK (bsink);
+ bclass = GST_BASE_AUDIO_SINK_GET_CLASS (sink);
ringbuf = sink->ringbuffer;
GST_OBJECT_UNLOCK (sink);
}
+ /* Before we go on, let's see if we need to payload the data. If yes, we also
+ * need to unref the output buffer before leaving. */
+ if (bclass->payload) {
+ out = bclass->payload (sink, buf);
+
+ if (!out)
+ goto payload_failed;
+
+ buf = out;
+ }
+
bps = ringbuf->spec.bytes_per_sample;
size = GST_BUFFER_SIZE (buf);
render_stop = 0;
}
+ /* in some clock slaving cases, all late samples end up at 0 first,
+ * and subsequent ones align with that until threshold exceeded,
+ * and then sync back to 0 and so on, so avoid that altogether */
+ if (G_UNLIKELY (render_start == 0 && render_stop == 0))
+ goto too_late;
+
/* and bring the time to the rate corrected offset in the buffer */
render_start = gst_util_uint64_scale_int (render_start,
ringbuf->spec.rate, GST_SECOND);
gst_ring_buffer_start (ringbuf);
}
- return GST_FLOW_OK;
+ ret = GST_FLOW_OK;
+
+done:
+ if (out)
+ gst_buffer_unref (out);
+
+ return ret;
/* SPECIAL cases */
out_of_segment:
"dropping sample out of segment time %" GST_TIME_FORMAT ", start %"
GST_TIME_FORMAT, GST_TIME_ARGS (time),
GST_TIME_ARGS (bsink->segment.start));
- return GST_FLOW_OK;
+ ret = GST_FLOW_OK;
+ goto done;
+ }
+too_late:
+ {
+ GST_DEBUG_OBJECT (sink, "dropping late sample");
+ ret = GST_FLOW_OK;
+ goto done;
}
/* ERRORS */
+payload_failed:
+ {
+ GST_ELEMENT_ERROR (sink, STREAM, FORMAT, (NULL), ("failed to payload."));
+ ret = GST_FLOW_ERROR;
+ goto done;
+ }
wrong_state:
{
GST_DEBUG_OBJECT (sink, "ringbuffer not negotiated");
GST_ELEMENT_ERROR (sink, STREAM, FORMAT, (NULL), ("sink not negotiated."));
- return GST_FLOW_NOT_NEGOTIATED;
+ ret = GST_FLOW_NOT_NEGOTIATED;
+ goto done;
}
wrong_size:
{
GST_DEBUG_OBJECT (sink, "wrong size");
GST_ELEMENT_ERROR (sink, STREAM, WRONG_TYPE,
(NULL), ("sink received buffer of wrong size."));
- return GST_FLOW_ERROR;
+ ret = GST_FLOW_ERROR;
+ goto done;
}
stopping:
{
GST_DEBUG_OBJECT (sink, "preroll got interrupted: %d (%s)", ret,
gst_flow_get_name (ret));
- return ret;
+ goto done;
}
sync_latency_failed:
{
GST_DEBUG_OBJECT (sink, "failed waiting for latency");
- return ret;
+ goto done;
}
}
sink->priv->sync_latency = TRUE;
gst_ring_buffer_may_start (sink->ringbuffer, TRUE);
if (basesink->pad_mode == GST_ACTIVATE_PULL) {
- /* we always start the ringbuffer in pull mode immediatly */
+ /* we always start the ringbuffer in pull mode immediately */
gst_ring_buffer_start (sink->ringbuffer);
}
sink->next_sample = -1;
sink->priv->last_align = -1;
sink->priv->eos_time = -1;
+ sink->priv->discont_time = -1;
gst_ring_buffer_set_flushing (sink->ringbuffer, FALSE);
gst_ring_buffer_may_start (sink->ringbuffer, FALSE);
gst_ring_buffer_may_start (sink->ringbuffer, TRUE);
if (GST_BASE_SINK_CAST (sink)->pad_mode == GST_ACTIVATE_PULL ||
g_atomic_int_get (&sink->abidata.ABI.eos_rendering) || eos) {
- /* we always start the ringbuffer in pull mode immediatly */
+ /* we always start the ringbuffer in pull mode immediately */
/* sync rendering on eos needs running clock,
* and others need running clock when finished rendering eos */
gst_ring_buffer_start (sink->ringbuffer);
/* ERRORS */
open_failed:
{
- /* subclass must post a meaningfull error message */
+ /* subclass must post a meaningful error message */
GST_DEBUG_OBJECT (sink, "open failed");
return GST_STATE_CHANGE_FAILURE;
}
* GstBaseAudioSinkClass:
* @parent_class: the parent class.
* @create_ringbuffer: create and return a #GstRingBuffer to write to.
+ * @payload: payload data in a format suitable to write to the sink. If no
+ * payloading is required, returns a reffed copy of the original
+ * buffer, else returns the payloaded buffer with all other metadata
+ * copied. (Since: 0.10.36)
*
* #GstBaseAudioSink class. Override the vmethod to implement
* functionality.
/* subclass ringbuffer allocation */
GstRingBuffer* (*create_ringbuffer) (GstBaseAudioSink *sink);
+ /* subclass payloader */
+ GstBuffer* (*payload) (GstBaseAudioSink *sink,
+ GstBuffer *buffer);
+
/*< private >*/
- gpointer _gst_reserved[GST_PADDING];
+ gpointer _gst_reserved[GST_PADDING - 1];
};
GType gst_base_audio_sink_get_type(void);
gint64 drift_tolerance);
gint64 gst_base_audio_sink_get_drift_tolerance (GstBaseAudioSink *sink);
+void gst_base_audio_sink_set_alignment_threshold (GstBaseAudioSink * sink,
+ GstClockTime alignment_threshold);
+GstClockTime
+ gst_base_audio_sink_get_alignment_threshold (GstBaseAudioSink * sink);
+
+void gst_base_audio_sink_set_discont_wait (GstBaseAudioSink * sink,
+ GstClockTime discont_wait);
+GstClockTime
+ gst_base_audio_sink_get_discont_wait (GstBaseAudioSink * sink);
+
G_END_DECLS
#endif /* __GST_BASE_AUDIO_SINK_H__ */
/* fields for all formats */
gst_structure_fixate_field_nearest_int (s, "rate", 44100);
gst_structure_fixate_field_nearest_int (s, "channels", 2);
- gst_structure_fixate_field_nearest_int (s, "width", 16);
-
- /* fields for int */
- if (gst_structure_has_field (s, "depth")) {
- gst_structure_get_int (s, "width", &width);
- /* round width to nearest multiple of 8 for the depth */
- depth = GST_ROUND_UP_8 (width);
- gst_structure_fixate_field_nearest_int (s, "depth", depth);
+
+ /* fields for int and/or float, but maybe not others like alaw/mulaw */
+ if (gst_structure_has_field (s, "width")) {
+ gst_structure_fixate_field_nearest_int (s, "width", 16);
+
+ if (gst_structure_has_field (s, "depth")) {
+ gst_structure_get_int (s, "width", &width);
+ /* round width to nearest multiple of 8 for the depth */
+ depth = GST_ROUND_UP_8 (width);
+ gst_structure_fixate_field_nearest_int (s, "depth", depth);
+ }
}
if (gst_structure_has_field (s, "signed"))
gst_structure_fixate_field_boolean (s, "signed", TRUE);
spec->latency_time = src->latency_time;
GST_OBJECT_LOCK (src);
- if (!gst_ring_buffer_parse_caps (spec, caps))
- {
+ if (!gst_ring_buffer_parse_caps (spec, caps)) {
GST_OBJECT_UNLOCK (src);
goto parse_error;
}
running_time_sample =
gst_util_uint64_scale_int (running_time, spec->rate, GST_SECOND);
- /* the segmentnr corrensponding to running_time, round down */
+ /* the segmentnr corresponding to running_time, round down */
running_time_segment = running_time_sample / sps;
/* the segment currently read from the ringbuffer */
*
* 1. We are more than the length of the ringbuffer behind.
* The length of the ringbuffer then gets to dictate
- * the threshold for what is concidered "too late"
+ * the threshold for what is considered "too late"
*
* 2. If this is our first buffer.
* We know that we should catch up to running_time
/* ERRORS */
open_failed:
{
- /* subclass must post a meaningfull error message */
+ /* subclass must post a meaningful error message */
GST_DEBUG_OBJECT (src, "open failed");
return GST_STATE_CHANGE_FAILURE;
}
#include "gstringbuffer.h"
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (gst_ring_buffer_debug);
#define GST_CAT_DEFAULT gst_ring_buffer_debug
/* we have to differentiate between int and float formats */
mimetype = gst_structure_get_name (structure);
- if (!strncmp (mimetype, "audio/x-raw-int", 15)) {
+ if (g_str_equal (mimetype, "audio/x-raw-int")) {
gint endianness;
const FormatDef *def;
gint j, bytes;
spec->silence_sample[i * bytes + j] = def->silence[j];
}
}
- } else if (!strncmp (mimetype, "audio/x-raw-float", 17)) {
+ } else if (g_str_equal (mimetype, "audio/x-raw-float")) {
spec->type = GST_BUFTYPE_FLOAT;
}
/* float silence is all zeros.. */
memset (spec->silence_sample, 0, 32);
- } else if (!strncmp (mimetype, "audio/x-alaw", 12)) {
+ } else if (g_str_equal (mimetype, "audio/x-alaw")) {
/* extract the needed information from the cap */
if (!(gst_structure_get_int (structure, "rate", &spec->rate) &&
gst_structure_get_int (structure, "channels", &spec->channels)))
spec->depth = 8;
for (i = 0; i < spec->channels; i++)
spec->silence_sample[i] = 0xd5;
- } else if (!strncmp (mimetype, "audio/x-mulaw", 13)) {
+ } else if (g_str_equal (mimetype, "audio/x-mulaw")) {
/* extract the needed information from the cap */
if (!(gst_structure_get_int (structure, "rate", &spec->rate) &&
gst_structure_get_int (structure, "channels", &spec->channels)))
spec->depth = 8;
for (i = 0; i < spec->channels; i++)
spec->silence_sample[i] = 0xff;
- } else if (!strncmp (mimetype, "audio/x-iec958", 14)) {
+ } else if (g_str_equal (mimetype, "audio/x-iec958")) {
/* extract the needed information from the cap */
if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
goto parse_error;
spec->width = 16;
spec->depth = 16;
spec->channels = 2;
- } else if (!strncmp (mimetype, "audio/x-ac3", 11)) {
+ } else if (g_str_equal (mimetype, "audio/x-ac3")) {
/* extract the needed information from the cap */
if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
goto parse_error;
spec->width = 16;
spec->depth = 16;
spec->channels = 2;
+ } else if (g_str_equal (mimetype, "audio/x-eac3")) {
+ /* extract the needed information from the cap */
+ if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
+ goto parse_error;
+
+ spec->type = GST_BUFTYPE_EAC3;
+ spec->format = GST_EAC3;
+ spec->width = 64;
+ spec->depth = 64;
+ spec->channels = 2;
+ } else if (g_str_equal (mimetype, "audio/x-dts")) {
+ /* extract the needed information from the cap */
+ if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
+ goto parse_error;
+
+ spec->type = GST_BUFTYPE_DTS;
+ spec->format = GST_DTS;
+ spec->width = 16;
+ spec->depth = 16;
+ spec->channels = 2;
+ } else if (g_str_equal (mimetype, "audio/mpeg") &&
+ gst_structure_get_int (structure, "mpegaudioversion", &i) &&
+ (i == 1 || i == 2)) {
+ /* Now we know this is MPEG-1 or MPEG-2 (non AAC) */
+ /* extract the needed information from the cap */
+ if (!(gst_structure_get_int (structure, "rate", &spec->rate)))
+ goto parse_error;
+
+ spec->type = GST_BUFTYPE_MPEG;
+ spec->format = GST_MPEG;
+ spec->width = 16;
+ spec->depth = 16;
+ spec->channels = 2;
} else {
goto parse_error;
}
*
* Commit @in_samples samples pointed to by @data to the ringbuffer @buf.
*
- * @in_samples and @out_samples define the rate conversion to perform on the the
+ * @in_samples and @out_samples define the rate conversion to perform on the
* samples in @data. For negative rates, @out_samples must be negative and
* @in_samples positive.
*
* @GST_BUFTYPE_MU_LAW: samples in mulaw
* @GST_BUFTYPE_A_LAW: samples in alaw
* @GST_BUFTYPE_IMA_ADPCM: samples in ima adpcm
- * @GST_BUFTYPE_MPEG: samples in mpeg audio format
+ * @GST_BUFTYPE_MPEG: samples in mpeg audio (but not AAC) format
* @GST_BUFTYPE_GSM: samples in gsm format
* @GST_BUFTYPE_IEC958: samples in IEC958 frames (e.g. AC3)
* @GST_BUFTYPE_AC3: samples in AC3 format
* @GST_BUFTYPE_EAC3: samples in EAC3 format
* @GST_BUFTYPE_DTS: samples in DTS format
+ * @GST_BUFTYPE_MPEG2_AAC: samples in MPEG-2 AAC format
+ * @GST_BUFTYPE_MPEG4_AAC: samples in MPEG-4 AAC format
*
* The format of the samples in the ringbuffer.
*/
GST_BUFTYPE_IEC958,
GST_BUFTYPE_AC3,
GST_BUFTYPE_EAC3,
- GST_BUFTYPE_DTS
+ GST_BUFTYPE_DTS,
+ GST_BUFTYPE_MPEG2_AAC,
+ GST_BUFTYPE_MPEG4_AAC,
} GstBufferFormatType;
+/**
+ * GstBufferFormat:
+ * @GST_UNKNOWN: unspecified
+ * @GST_S8: integer signed 8 bit
+ * @GST_U8: integer unsigned 8 bit
+ * @GST_S16_LE: integer signed 16 bit little endian
+ * @GST_S16_BE: integer signed 16 bit big endian
+ * @GST_U16_LE: integer unsigned 16 bit little endian
+ * @GST_U16_BE: integer unsigned 16 bit big endian
+ * @GST_S24_LE: integer signed 24 bit little endian
+ * @GST_S24_BE: integer signed 24 bit big endian
+ * @GST_U24_LE: integer unsigned 24 bit little endian
+ * @GST_U24_BE: integer unsigned 24 bit big endian
+ * @GST_S32_LE: integer signed 32 bit little endian
+ * @GST_S32_BE: integer signed 32 bit big endian
+ * @GST_U32_LE: integer unsigned 32 bit little endian
+ * @GST_U32_BE: integer unsigned 32 bit big endian
+ * @GST_S24_3LE: integer signed 24 bit little endian packed in 3 bytes
+ * @GST_S24_3BE: integer signed 24 bit big endian packed in 3 bytes
+ * @GST_U24_3LE: integer unsigned 24 bit little endian packed in 3 bytes
+ * @GST_U24_3BE: integer unsigned 24 bit big endian packed in 3 bytes
+ * @GST_S20_3LE: integer signed 20 bit little endian packed in 3 bytes
+ * @GST_S20_3BE: integer signed 20 bit big endian packed in 3 bytes
+ * @GST_U20_3LE: integer unsigned 20 bit little endian packed in 3 bytes
+ * @GST_U20_3BE: integer unsigned 20 bit big endian packed in 3 bytes
+ * @GST_S18_3LE: integer signed 18 bit little endian packed in 3 bytes
+ * @GST_S18_3BE: integer signed 18 bit big endian packed in 3 bytes
+ * @GST_U18_3LE: integer unsigned 18 bit little endian packed in 3 bytes
+ * @GST_U18_3BE: integer unsigned 18 bit big endian packed in 3 bytes
+ * @GST_FLOAT32_LE: floating 32 bit little endian
+ * @GST_FLOAT32_BE: floating 32 bit big endian
+ * @GST_FLOAT64_LE: floating 64 bit little endian
+ * @GST_FLOAT64_BE: floating 64 bit big endian
+ * @GST_MU_LAW: mu-law
+ * @GST_A_LAW: a-law
+ * @GST_IMA_ADPCM: ima adpcm
+ * @GST_MPEG: mpeg audio (but not aac)
+ * @GST_GSM: gsm
+ * @GST_IEC958: IEC958 frames
+ * @GST_AC3: ac3
+ * @GST_EAC3: eac3
+ * @GST_DTS: dts
+ * @GST_MPEG2_AAC: mpeg-2 aac
+ * @GST_MPEG4_AAC: mpeg-4 aac
+ *
+ * The detailed format of the samples in the ringbuffer.
+ */
typedef enum
{
GST_UNKNOWN,
GST_IEC958,
GST_AC3,
GST_EAC3,
- GST_DTS
+ GST_DTS,
+ GST_MPEG2_AAC,
+ GST_MPEG4_AAC,
} GstBufferFormat;
/**
return pos;
}
+void priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info);
+
+void
+priv_gst_audio_info_fill_default_channel_positions (GstAudioInfo * info)
+{
+ guint channels, i;
+
+ g_assert (info != NULL);
+
+ channels = GST_AUDIO_INFO_CHANNELS (info);
+
+ g_assert (channels > 0);
+
+ if (channels <= NUM_DEF_CHANS) {
+ /* just return some default channel layout if we have one */
+ for (i = 0; i < channels; ++i)
+ info->position[i] = default_positions[channels - 1][i];
+ } else {
+ /* for many many channels, the positions are always NONE */
+ for (i = 0; i < G_N_ELEMENTS (info->position); i++)
+ info->position[i] = GST_AUDIO_CHANNEL_POSITION_NONE;
+ }
+
+ info->flags |= GST_AUDIO_FLAG_DEFAULT_POSITIONS;
+}
+
/**
* gst_audio_set_channel_positions:
* @str: A #GstStructure to set channel positions on.
* Boston, MA 02111-1307, USA.
*/
-#ifndef __GST_AUDIO_MULTICHANNEL_H__
-#define __GST_AUDIO_MULTICHANNEL_H__
-
#include <gst/audio/audio.h>
#include <gst/audio/audio-enumtypes.h>
+#ifndef __GST_AUDIO_MULTICHANNEL_H__
+#define __GST_AUDIO_MULTICHANNEL_H__
+
G_BEGIN_DECLS
/**
* @GST_AUDIO_CHANNEL_POSITION_NONE: used for position-less channels, e.g.
* from a sound card that records 1024 channels; mutually exclusive with
* any other channel position
+ * @GST_AUDIO_CHANNEL_POSITION_INVALID: invalid position
+ *
+ * Audio channel positions.
*/
typedef enum {
GST_AUDIO_CHANNEL_POSITION_INVALID = -1,
* are defined or all positions are undefined, but can't mix'n'match */
GST_AUDIO_CHANNEL_POSITION_NONE,
+ /*< private >*/
/* don't use - counter */
GST_AUDIO_CHANNEL_POSITION_NUM
} GstAudioChannelPosition;
gint num_positions);
/* Custom fixate function. Elements that implement some sort of
- * channel conversion algorhithm should use this function for
+ * channel conversion algorithm should use this function for
* fixating on GstAudioChannelPosition properties. It will take
* care of equal channel positioning (left/right). Caller g_free()s
* the return value. The input properties may be (and are supposed
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" \
"$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo
libgstcdda_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstcdda_@GST_MAJORMINOR@_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
libgstcdda_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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 = $(libgstcdda_@GST_MAJORMINOR@_la_SOURCES)
DIST_SOURCES = $(libgstcdda_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstcdda-@GST_MAJORMINOR@.la: $(libgstcdda_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcdda_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstcdda-@GST_MAJORMINOR@.la: $(libgstcdda_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcdda_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstcdda_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstcdda_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstcdda_@GST_MAJORMINOR@_la_OBJECTS) $(libgstcdda_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo: gstcddabasesrc.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) $(libgstcdda_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo -MD -MP -MF $(DEPDIR)/libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.Tpo -c -o libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo `test -f 'gstcddabasesrc.c' || echo '$(srcdir)/'`gstcddabasesrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.Tpo $(DEPDIR)/libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcddabasesrc.c' object='libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstcddabasesrc.c' object='libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.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) $(libgstcdda_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo `test -f 'gstcddabasesrc.c' || echo '$(srcdir)/'`gstcddabasesrc.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) $(libgstcdda_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstcdda_@GST_MAJORMINOR@_la-gstcddabasesrc.lo `test -f 'gstcddabasesrc.c' || echo '$(srcdir)/'`gstcddabasesrc.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(libgstcdda_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstcdda_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstcdda_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_cdda_base_src_src_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_cdda_base_src_src_template);
/* our very own formats */
track_format = gst_format_register ("track", "CD track");
gpointer _gst_reserved2[GST_PADDING/2];
};
+/**
+ * GstCddaBaseSrcClass:
+ * @pushsrc_class: the parent class
+ * @open: opening the device
+ * @close: closing the device
+ * @read_sector: reading a sector
+ * @get_default_device: getting the default device
+ * @probe_devices: probing possible devices
+ *
+ * Cdda source base class.
+ */
struct _GstCddaBaseSrcClass {
GstPushSrcClass pushsrc_class;
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)"
libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo
libgstfft_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstfft_@GST_MAJORMINOR@_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
libgstfft_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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 = $(libgstfft_@GST_MAJORMINOR@_la_SOURCES)
DIST_SOURCES = $(libgstfft_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstfft-@GST_MAJORMINOR@.la: $(libgstfft_@GST_MAJORMINOR@_la_OBJECTS) $(libgstfft_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstfft-@GST_MAJORMINOR@.la: $(libgstfft_@GST_MAJORMINOR@_la_OBJECTS) $(libgstfft_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstfft_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstfft_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstfft_@GST_MAJORMINOR@_la_OBJECTS) $(libgstfft_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstfft_@GST_MAJORMINOR@_la-gstfft.lo: gstfft.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstfft.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfft.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstfft.lo `test -f 'gstfft.c' || echo '$(srcdir)/'`gstfft.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfft.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfft.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfft.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfft.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfft.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfft.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfft.lo `test -f 'gstfft.c' || echo '$(srcdir)/'`gstfft.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfft.lo `test -f 'gstfft.c' || echo '$(srcdir)/'`gstfft.c
libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo: gstffts16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts16.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo `test -f 'gstffts16.c' || echo '$(srcdir)/'`gstffts16.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts16.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts16.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstffts16.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstffts16.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo `test -f 'gstffts16.c' || echo '$(srcdir)/'`gstffts16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts16.lo `test -f 'gstffts16.c' || echo '$(srcdir)/'`gstffts16.c
libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo: gstffts32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo `test -f 'gstffts32.c' || echo '$(srcdir)/'`gstffts32.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstffts32.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstffts32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstffts32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstffts32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo `test -f 'gstffts32.c' || echo '$(srcdir)/'`gstffts32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstffts32.lo `test -f 'gstffts32.c' || echo '$(srcdir)/'`gstffts32.c
libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo: gstfftf32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo `test -f 'gstfftf32.c' || echo '$(srcdir)/'`gstfftf32.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf32.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfftf32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfftf32.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo `test -f 'gstfftf32.c' || echo '$(srcdir)/'`gstfftf32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf32.lo `test -f 'gstfftf32.c' || echo '$(srcdir)/'`gstfftf32.c
libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo: gstfftf64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf64.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo `test -f 'gstfftf64.c' || echo '$(srcdir)/'`gstfftf64.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf64.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-gstfftf64.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfftf64.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstfftf64.c' object='libgstfft_@GST_MAJORMINOR@_la-gstfftf64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo `test -f 'gstfftf64.c' || echo '$(srcdir)/'`gstfftf64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-gstfftf64.lo `test -f 'gstfftf64.c' || echo '$(srcdir)/'`gstfftf64.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo: kiss_fft_s16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo `test -f 'kiss_fft_s16.c' || echo '$(srcdir)/'`kiss_fft_s16.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fft_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fft_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo `test -f 'kiss_fft_s16.c' || echo '$(srcdir)/'`kiss_fft_s16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s16.lo `test -f 'kiss_fft_s16.c' || echo '$(srcdir)/'`kiss_fft_s16.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo: kiss_fft_s32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo `test -f 'kiss_fft_s32.c' || echo '$(srcdir)/'`kiss_fft_s32.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fft_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fft_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo `test -f 'kiss_fft_s32.c' || echo '$(srcdir)/'`kiss_fft_s32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_s32.lo `test -f 'kiss_fft_s32.c' || echo '$(srcdir)/'`kiss_fft_s32.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo: kiss_fft_f32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo `test -f 'kiss_fft_f32.c' || echo '$(srcdir)/'`kiss_fft_f32.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fft_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fft_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo `test -f 'kiss_fft_f32.c' || echo '$(srcdir)/'`kiss_fft_f32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f32.lo `test -f 'kiss_fft_f32.c' || echo '$(srcdir)/'`kiss_fft_f32.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo: kiss_fft_f64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo `test -f 'kiss_fft_f64.c' || echo '$(srcdir)/'`kiss_fft_f64.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fft_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fft_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo `test -f 'kiss_fft_f64.c' || echo '$(srcdir)/'`kiss_fft_f64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fft_f64.lo `test -f 'kiss_fft_f64.c' || echo '$(srcdir)/'`kiss_fft_f64.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo: kiss_fftr_s16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo `test -f 'kiss_fftr_s16.c' || echo '$(srcdir)/'`kiss_fftr_s16.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fftr_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fftr_s16.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo `test -f 'kiss_fftr_s16.c' || echo '$(srcdir)/'`kiss_fftr_s16.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s16.lo `test -f 'kiss_fftr_s16.c' || echo '$(srcdir)/'`kiss_fftr_s16.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo: kiss_fftr_s32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo `test -f 'kiss_fftr_s32.c' || echo '$(srcdir)/'`kiss_fftr_s32.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fftr_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fftr_s32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo `test -f 'kiss_fftr_s32.c' || echo '$(srcdir)/'`kiss_fftr_s32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_s32.lo `test -f 'kiss_fftr_s32.c' || echo '$(srcdir)/'`kiss_fftr_s32.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo: kiss_fftr_f32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo `test -f 'kiss_fftr_f32.c' || echo '$(srcdir)/'`kiss_fftr_f32.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fftr_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fftr_f32.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo `test -f 'kiss_fftr_f32.c' || echo '$(srcdir)/'`kiss_fftr_f32.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f32.lo `test -f 'kiss_fftr_f32.c' || echo '$(srcdir)/'`kiss_fftr_f32.c
libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo: kiss_fftr_f64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo -MD -MP -MF $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.Tpo -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo `test -f 'kiss_fftr_f64.c' || echo '$(srcdir)/'`kiss_fftr_f64.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.Tpo $(DEPDIR)/libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='kiss_fftr_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='kiss_fftr_f64.c' object='libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo `test -f 'kiss_fftr_f64.c' || echo '$(srcdir)/'`kiss_fftr_f64.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) $(libgstfft_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstfft_@GST_MAJORMINOR@_la-kiss_fftr_f64.lo `test -f 'kiss_fftr_f64.c' || echo '$(srcdir)/'`kiss_fftr_f64.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstfft_@GST_MAJORMINOR@_includeHEADERS: $(libgstfft_@GST_MAJORMINOR@_include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstfft_@GST_MAJORMINOR@_includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstfft_@GST_MAJORMINOR@_include_HEADERS)'; test -n "$(libgstfft_@GST_MAJORMINOR@_includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstfft_@GST_MAJORMINOR@_includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
#ifndef __GST_FFT_H__
#define __GST_FFT_H__
+G_BEGIN_DECLS
+
/**
* GstFFTWindow:
* @GST_FFT_WINDOW_RECTANGULAR: Rectangular window
gint gst_fft_next_fast_length (gint n) G_GNUC_CONST;
+G_END_DECLS
+
#endif /* __GST_FFT_H__ */
*
* #GstFFTF32 provides a FFT implementation and related functions for
* 32 bit float samples. To use this call gst_fft_f32_new() for
- * allocating a #GstFFTF32 instance with the appropiate parameters and
+ * allocating a #GstFFTF32 instance with the appropriate parameters and
* then call gst_fft_f32_fft() or gst_fft_f32_inverse_fft() to perform the
* FFT or inverse FFT on a buffer of samples.
*
break;
case GST_FFT_WINDOW_HAMMING:
for (i = 0; i < len; i++)
- timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_HANN:
for (i = 0; i < len; i++)
- timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_BARTLETT:
for (i = 0; i < len; i++)
#include "gstfft.h"
+G_BEGIN_DECLS
+
typedef struct _GstFFTF32 GstFFTF32;
typedef struct _GstFFTF32Complex GstFFTF32Complex;
void gst_fft_f32_window (GstFFTF32 *self, gfloat *timedata, GstFFTWindow window);
+G_END_DECLS
+
#endif /* __GST_FFT_F32_H__ */
*
* #GstFFTF64 provides a FFT implementation and related functions for
* 64 bit float samples. To use this call gst_fft_f64_new() for
- * allocating a #GstFFTF64 instance with the appropiate parameters and
+ * allocating a #GstFFTF64 instance with the appropriate parameters and
* then call gst_fft_f64_fft() or gst_fft_f64_inverse_fft() to perform the
* FFT or inverse FFT on a buffer of samples.
*
break;
case GST_FFT_WINDOW_HAMMING:
for (i = 0; i < len; i++)
- timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_HANN:
for (i = 0; i < len; i++)
- timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_BARTLETT:
for (i = 0; i < len; i++)
#include "gstfft.h"
+G_BEGIN_DECLS
+
typedef struct _GstFFTF64 GstFFTF64;
typedef struct _GstFFTF64Complex GstFFTF64Complex;
void gst_fft_f64_window (GstFFTF64 *self, gdouble *timedata, GstFFTWindow window);
+G_END_DECLS
+
#endif /* __GST_FFT_F64_H__ */
*
* #GstFFTS16 provides a FFT implementation and related functions for
* signed 16 bit integer samples. To use this call gst_fft_s16_new() for
- * allocating a #GstFFTS16 instance with the appropiate parameters and
+ * allocating a #GstFFTS16 instance with the appropriate parameters and
* then call gst_fft_s16_fft() or gst_fft_s16_inverse_fft() to perform the
* FFT or inverse FFT on a buffer of samples.
*
break;
case GST_FFT_WINDOW_HAMMING:
for (i = 0; i < len; i++)
- timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_HANN:
for (i = 0; i < len; i++)
- timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_BARTLETT:
for (i = 0; i < len; i++)
#include "gstfft.h"
+G_BEGIN_DECLS
+
typedef struct _GstFFTS16 GstFFTS16;
typedef struct _GstFFTS16Complex GstFFTS16Complex;
void gst_fft_s16_free (GstFFTS16 *self);
void gst_fft_s16_window (GstFFTS16 *self, gint16 *timedata, GstFFTWindow window);
+
+G_END_DECLS
+
#endif /* __GST_FFT_S16_H__ */
*
* #GstFFTS32 provides a FFT implementation and related functions for
* signed 32 bit integer samples. To use this call gst_fft_s32_new() for
- * allocating a #GstFFTS32 instance with the appropiate parameters and
+ * allocating a #GstFFTS32 instance with the appropriate parameters and
* then call gst_fft_s32_fft() or gst_fft_s32_inverse_fft() to perform the
* FFT or inverse FFT on a buffer of samples.
*
break;
case GST_FFT_WINDOW_HAMMING:
for (i = 0; i < len; i++)
- timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.53836 - 0.46164 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_HANN:
for (i = 0; i < len; i++)
- timedata[i] *= (0.5 - 0.5 * cos (2.0 * M_PI * i / len));
+ timedata[i] *= (0.5 - 0.5 * cos (2.0 * G_PI * i / len));
break;
case GST_FFT_WINDOW_BARTLETT:
for (i = 0; i < len; i++)
#include "gstfft.h"
+G_BEGIN_DECLS
+
typedef struct _GstFFTS32 GstFFTS32;
typedef struct _GstFFTS32Complex GstFFTS32Complex;
void gst_fft_s32_window (GstFFTS32 *self, gint32 *timedata, GstFFTWindow window);
+G_END_DECLS
+
#endif /* __GST_FFT_S32_H__ */
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
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)$(floatcastincludedir)"
HEADERS = $(floatcastinclude_HEADERS)
ETAGS = etags
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@$(NORMAL_UNINSTALL)
@list='$(floatcastinclude_HEADERS)'; test -n "$(floatcastincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(floatcastincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(floatcastincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(floatcastincludedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
--- /dev/null
+/*
+ * glib-compat.c
+ * Functions copied from glib 2.10
+ *
+ * Copyright 2005 David Schleef <ds@schleef.org>
+ *
+ * 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 <glib.h>
+
+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
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstinterfacesincludedir)" \
am_libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS = \
libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo \
libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo \
- libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo \
- libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo \
libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo \
libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo \
libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo \
libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) \
$(nodist_libgstinterfaces_@GST_MAJORMINOR@_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
libgstinterfaces_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES) \
$(nodist_libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
headers_interfaces = \
colorbalance.h \
colorbalancechannel.h \
- cameracontrol.h \
- cameracontrolchannel.h \
mixer.h \
mixeroptions.h \
mixertrack.h \
libgstinterfaces_@GST_MAJORMINOR@_la_SOURCES = \
colorbalance.c \
colorbalancechannel.c \
- cameracontrol.c \
- cameracontrolchannel.c \
mixer.c \
mixeroptions.c \
mixertrack.c \
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstinterfaces-@GST_MAJORMINOR@.la: $(libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) $(libgstinterfaces_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstinterfaces-@GST_MAJORMINOR@.la: $(libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) $(libgstinterfaces_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstinterfaces_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstinterfaces_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstinterfaces_@GST_MAJORMINOR@_la_OBJECTS) $(libgstinterfaces_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.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 $@ $<
libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo: colorbalance.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo `test -f 'colorbalance.c' || echo '$(srcdir)/'`colorbalance.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='colorbalance.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='colorbalance.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo `test -f 'colorbalance.c' || echo '$(srcdir)/'`colorbalance.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalance.lo `test -f 'colorbalance.c' || echo '$(srcdir)/'`colorbalance.c
libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo: colorbalancechannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo `test -f 'colorbalancechannel.c' || echo '$(srcdir)/'`colorbalancechannel.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='colorbalancechannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='colorbalancechannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo `test -f 'colorbalancechannel.c' || echo '$(srcdir)/'`colorbalancechannel.c
-
-libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo: cameracontrol.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo `test -f 'cameracontrol.c' || echo '$(srcdir)/'`cameracontrol.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cameracontrol.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrol.lo `test -f 'cameracontrol.c' || echo '$(srcdir)/'`cameracontrol.c
-
-libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo: cameracontrolchannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo `test -f 'cameracontrolchannel.c' || echo '$(srcdir)/'`cameracontrolchannel.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cameracontrolchannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-cameracontrolchannel.lo `test -f 'cameracontrolchannel.c' || echo '$(srcdir)/'`cameracontrolchannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-colorbalancechannel.lo `test -f 'colorbalancechannel.c' || echo '$(srcdir)/'`colorbalancechannel.c
libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo: mixer.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixer.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixer.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mixer.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixer.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixer.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixer.lo `test -f 'mixer.c' || echo '$(srcdir)/'`mixer.c
libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo: mixeroptions.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mixeroptions.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixeroptions.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixeroptions.lo `test -f 'mixeroptions.c' || echo '$(srcdir)/'`mixeroptions.c
libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo: mixertrack.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mixertrack.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mixertrack.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-mixertrack.lo `test -f 'mixertrack.c' || echo '$(srcdir)/'`mixertrack.c
libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo: navigation.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-navigation.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-navigation.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-navigation.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='navigation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='navigation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-navigation.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-navigation.lo `test -f 'navigation.c' || echo '$(srcdir)/'`navigation.c
libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo: propertyprobe.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo `test -f 'propertyprobe.c' || echo '$(srcdir)/'`propertyprobe.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='propertyprobe.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='propertyprobe.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo `test -f 'propertyprobe.c' || echo '$(srcdir)/'`propertyprobe.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-propertyprobe.lo `test -f 'propertyprobe.c' || echo '$(srcdir)/'`propertyprobe.c
libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo: streamvolume.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo `test -f 'streamvolume.c' || echo '$(srcdir)/'`streamvolume.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='streamvolume.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='streamvolume.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo `test -f 'streamvolume.c' || echo '$(srcdir)/'`streamvolume.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-streamvolume.lo `test -f 'streamvolume.c' || echo '$(srcdir)/'`streamvolume.c
libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo: tuner.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tuner.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tuner.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tuner.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tuner.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tuner.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tuner.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tuner.lo `test -f 'tuner.c' || echo '$(srcdir)/'`tuner.c
libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo: tunernorm.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tunernorm.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tunernorm.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunernorm.lo `test -f 'tunernorm.c' || echo '$(srcdir)/'`tunernorm.c
libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo: tunerchannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tunerchannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tunerchannel.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-tunerchannel.lo `test -f 'tunerchannel.c' || echo '$(srcdir)/'`tunerchannel.c
libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo: videoorientation.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo `test -f 'videoorientation.c' || echo '$(srcdir)/'`videoorientation.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videoorientation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videoorientation.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo `test -f 'videoorientation.c' || echo '$(srcdir)/'`videoorientation.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-videoorientation.lo `test -f 'videoorientation.c' || echo '$(srcdir)/'`videoorientation.c
libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo: xoverlay.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo `test -f 'xoverlay.c' || echo '$(srcdir)/'`xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xoverlay.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xoverlay.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo `test -f 'xoverlay.c' || echo '$(srcdir)/'`xoverlay.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-xoverlay.lo `test -f 'xoverlay.c' || echo '$(srcdir)/'`xoverlay.c
libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo: interfaces-marshal.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='interfaces-marshal.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interfaces-marshal.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-marshal.lo `test -f 'interfaces-marshal.c' || echo '$(srcdir)/'`interfaces-marshal.c
libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo: interfaces-enumtypes.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.Tpo -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.Tpo $(DEPDIR)/libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='interfaces-enumtypes.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='interfaces-enumtypes.c' object='libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.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) $(libgstinterfaces_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstinterfaces_@GST_MAJORMINOR@_la-interfaces-enumtypes.lo `test -f 'interfaces-enumtypes.c' || echo '$(srcdir)/'`interfaces-enumtypes.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstinterfacesincludeHEADERS: $(libgstinterfacesinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstinterfacesincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstinterfacesincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstinterfacesincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstinterfacesincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstinterfacesincludedir)'; $(am__uninstall_files_from_dir)
install-nodist_libgstinterfacesincludeHEADERS: $(nodist_libgstinterfacesinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstinterfacesincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstinterfacesincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(nodist_libgstinterfacesinclude_HEADERS)'; test -n "$(libgstinterfacesincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstinterfacesincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstinterfacesincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstinterfacesincludedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
/*
- * GStreamer Camera Control
+ * GStreamer Camera Control Interface
*
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
+ * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
*
* Contact: Jeongmo Yang <jm80.yang@samsung.com>
*
*
*/
-/* ===========================================================================================
+/*============================================================================================
EDIT HISTORY FOR MODULE
- This section contains comments describing changes made to the module.
- Notice that changes are listed in reverse chronological order.
+This section contains comments describing changes made to the module.
+Notice that changes are listed in reverse chronological order.
-when who what, where, why
---------- ------------------------ ------------------------------------------------------
-12/09/08 jm80.yang@samsung.com Created
+when who what, where, why
+--------- ------------------------ ----------------------------------------------
+12/09/08 jm80.yang@samsung.com Created
-=========================================================================================== */
+============================================================================================*/
#ifdef HAVE_CONFIG_H
* @short_description: Interface for camera control
*/
-enum
-{
+enum {
CONTROL_VALUE_CHANGED,
CONTROL_LAST_SIGNAL
};
-static void gst_camera_control_class_init( GstCameraControlClass *klass );
+static void gst_camera_control_class_init(GstCameraControlClass *klass);
static guint gst_camera_control_signals[CONTROL_LAST_SIGNAL] = { 0 };
-GType
-gst_camera_control_get_type( void )
+GType gst_camera_control_get_type(void)
{
static GType gst_camera_control_type = 0;
- if( !gst_camera_control_type )
- {
+ if (!gst_camera_control_type) {
static const GTypeInfo gst_camera_control_info =
{
- sizeof( GstCameraControlClass ),
- (GBaseInitFunc) gst_camera_control_class_init,
+ sizeof(GstCameraControlClass),
+ (GBaseInitFunc)gst_camera_control_class_init,
NULL,
NULL,
NULL,
NULL,
};
- gst_camera_control_type = g_type_register_static( G_TYPE_INTERFACE, "GstCameraControl", &gst_camera_control_info, 0 );
- g_type_interface_add_prerequisite( gst_camera_control_type, GST_TYPE_IMPLEMENTS_INTERFACE );
+ gst_camera_control_type = g_type_register_static(G_TYPE_INTERFACE,
+ "GstCameraControl",
+ &gst_camera_control_info,
+ 0);
+ g_type_interface_add_prerequisite(gst_camera_control_type, GST_TYPE_IMPLEMENTS_INTERFACE);
}
return gst_camera_control_type;
}
-static void
-gst_camera_control_class_init( GstCameraControlClass *klass )
+static void gst_camera_control_class_init(GstCameraControlClass *klass)
{
static gboolean initialized = FALSE;
- if( !initialized )
- {
+ if (!initialized) {
gst_camera_control_signals[CONTROL_VALUE_CHANGED] =
- g_signal_new ( "control-value-changed",
- GST_TYPE_CAMERA_CONTROL, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET( GstCameraControlClass, value_changed ),
- NULL, NULL,
- gst_interfaces_marshal_VOID__OBJECT_INT,
- G_TYPE_NONE, 2, GST_TYPE_CAMERA_CONTROL_CHANNEL, G_TYPE_INT);
+ g_signal_new("control-value-changed",
+ GST_TYPE_CAMERA_CONTROL, G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(GstCameraControlClass, value_changed),
+ NULL, NULL,
+ gst_interfaces_marshal_VOID__OBJECT_INT,
+ G_TYPE_NONE, 2, GST_TYPE_CAMERA_CONTROL_CHANNEL, G_TYPE_INT);
initialized = TRUE;
}
- // TODO :
- klass->camera_control_type = 0;
+ // TODO :
+ klass->camera_control_type = 0;
/* defauld virtual functions */
- klass->list_channels = NULL;
- klass->set_exposure = NULL;
- klass->get_exposure = NULL;
- klass->set_capture_mode = NULL;
- klass->get_capture_mode = NULL;
- klass->set_strobe = NULL;
- klass->get_strobe = NULL;
- klass->set_detect = NULL;
- klass->get_detect = NULL;
- klass->set_value = NULL;
- klass->get_value = NULL;
- klass->set_zoom = NULL;
- klass->get_zoom = NULL;
- klass->set_focus = NULL;
- klass->get_focus = NULL;
- klass->start_auto_focus = NULL;
- klass->stop_auto_focus = NULL;
- klass->set_focus_level = NULL;
- klass->get_focus_level = NULL;
- klass->set_auto_focus_area = NULL;
- klass->get_auto_focus_area = NULL;
- klass->set_wdr = NULL;
- klass->get_wdr = NULL;
- klass->set_ahs = NULL;
- klass->get_ahs = NULL;
- klass->set_part_color = NULL;
- klass->get_part_color = NULL;
- klass->get_exif_info = NULL;
- klass->set_capture_command = NULL;
-}
-
-const GList*
-gst_camera_control_list_channels( GstCameraControl *control )
-{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
-
- if( klass->list_channels )
- {
- return klass->list_channels( control );
+ klass->list_channels = NULL;
+ klass->set_exposure = NULL;
+ klass->get_exposure = NULL;
+ klass->set_capture_mode = NULL;
+ klass->get_capture_mode = NULL;
+ klass->set_strobe = NULL;
+ klass->get_strobe = NULL;
+ klass->set_detect = NULL;
+ klass->get_detect = NULL;
+ klass->set_value = NULL;
+ klass->get_value = NULL;
+ klass->set_zoom = NULL;
+ klass->get_zoom = NULL;
+ klass->set_focus = NULL;
+ klass->get_focus = NULL;
+ klass->start_auto_focus = NULL;
+ klass->stop_auto_focus = NULL;
+ klass->set_focus_level = NULL;
+ klass->get_focus_level = NULL;
+ klass->set_auto_focus_area = NULL;
+ klass->get_auto_focus_area = NULL;
+ klass->set_wdr = NULL;
+ klass->get_wdr = NULL;
+ klass->set_ahs = NULL;
+ klass->get_ahs = NULL;
+ klass->set_part_color = NULL;
+ klass->get_part_color = NULL;
+ klass->get_exif_info = NULL;
+ klass->set_capture_command = NULL;
+ klass->start_face_zoom = NULL;
+ klass->stop_face_zoom = NULL;
+}
+
+const GList* gst_camera_control_list_channels(GstCameraControl *control)
+{
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+
+ if (klass->list_channels) {
+ return klass->list_channels(control);
}
return NULL;
}
-gboolean
-gst_camera_control_set_value( GstCameraControl *control, GstCameraControlChannel *control_channel )
+gboolean gst_camera_control_set_value(GstCameraControl *control, GstCameraControlChannel *control_channel)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_value )
- {
- return klass->set_value( control, control_channel );
+ if (klass->set_value) {
+ return klass->set_value(control, control_channel);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_value( GstCameraControl *control, GstCameraControlChannel *control_channel )
+gboolean gst_camera_control_get_value(GstCameraControl *control, GstCameraControlChannel *control_channel)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_value )
- {
- return klass->get_value( control, control_channel );
+ if (klass->get_value) {
+ return klass->get_value(control, control_channel);
}
return FALSE;
-gboolean
-gst_camera_control_set_exposure( GstCameraControl *control, gint type, gint value1, gint value2 )
+gboolean gst_camera_control_set_exposure(GstCameraControl *control, gint type, gint value1, gint value2)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_exposure )
- {
- return klass->set_exposure( control, type, value1, value2 );
+ if (klass->set_exposure) {
+ return klass->set_exposure(control, type, value1, value2);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_exposure( GstCameraControl *control, gint type, gint* value1, gint* value2 )
+gboolean gst_camera_control_get_exposure(GstCameraControl *control, gint type, gint *value1, gint *value2)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_exposure )
- {
- return klass->get_exposure( control, type, value1, value2 );
+ if (klass->get_exposure) {
+ return klass->get_exposure(control, type, value1, value2);
}
return FALSE;
}
-gboolean
-gst_camera_control_set_capture_mode( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_capture_mode(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_capture_mode )
- {
- return klass->set_capture_mode( control, type, value );
+ if (klass->set_capture_mode) {
+ return klass->set_capture_mode(control, type, value);
}
- return FALSE;
+ return FALSE;
}
-gboolean
-gst_camera_control_get_capture_mode( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_capture_mode(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_capture_mode )
- {
- return klass->get_capture_mode( control, type, value );
+ if (klass->get_capture_mode) {
+ return klass->get_capture_mode(control, type, value);
}
- return FALSE;
+ return FALSE;
}
-gboolean
-gst_camera_control_set_strobe( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_strobe(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_strobe )
- {
- return klass->set_strobe( control, type, value );
+ if (klass->set_strobe) {
+ return klass->set_strobe(control, type, value);
}
- return FALSE;
+ return FALSE;
}
-gboolean
-gst_camera_control_get_strobe( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_strobe(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_strobe )
- {
- return klass->get_strobe( control, type, value );
+ if (klass->get_strobe) {
+ return klass->get_strobe(control, type, value);
}
- return FALSE;
+ return FALSE;
}
-gboolean
-gst_camera_control_set_detect( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_detect(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_detect )
- {
- return klass->set_detect( control, type, value );
+ if (klass->set_detect) {
+ return klass->set_detect(control, type, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_detect( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_detect(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_detect )
- {
- return klass->get_detect( control, type, value );
+ if (klass->get_detect) {
+ return klass->get_detect(control, type, value);
}
- //for prevent MISSING_RETURN :+: yoserb.yi 2009-06-25
-
return FALSE;
}
-gboolean
-gst_camera_control_set_zoom( GstCameraControl *control, gint type, gint value )
+gboolean gst_camera_control_set_zoom(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_zoom )
- {
- return klass->set_zoom( control, type, value );
+ if (klass->set_zoom) {
+ return klass->set_zoom(control, type, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_zoom( GstCameraControl *control, gint type, gint *value )
+gboolean gst_camera_control_get_zoom(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_zoom )
- {
- return klass->get_zoom( control, type, value );
+ if (klass->get_zoom) {
+ return klass->get_zoom(control, type, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_set_focus( GstCameraControl *control, gint mode, gint range )
+gboolean gst_camera_control_set_focus(GstCameraControl *control, gint mode, gint range)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_focus )
- {
- return klass->set_focus( control, mode, range );
+ if (klass->set_focus) {
+ return klass->set_focus(control, mode, range);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_focus( GstCameraControl *control, gint *mode, gint *range )
+gboolean gst_camera_control_get_focus(GstCameraControl *control, gint *mode, gint *range)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_focus )
- {
- return klass->get_focus( control, mode, range );
+ if (klass->get_focus) {
+ return klass->get_focus(control, mode, range);
}
return FALSE;
}
-gboolean
-gst_camera_control_start_auto_focus( GstCameraControl *control )
+gboolean gst_camera_control_start_auto_focus(GstCameraControl *control)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->start_auto_focus )
- {
- return klass->start_auto_focus( control );
+ if (klass->start_auto_focus) {
+ return klass->start_auto_focus(control);
}
return FALSE;
}
-gboolean
-gst_camera_control_stop_auto_focus( GstCameraControl *control )
+gboolean gst_camera_control_stop_auto_focus(GstCameraControl *control)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->stop_auto_focus )
- {
- return klass->stop_auto_focus( control );
+ if (klass->stop_auto_focus) {
+ return klass->stop_auto_focus(control);
}
return FALSE;
}
-gboolean
-gst_camera_control_set_focus_level( GstCameraControl *control, gint manual_level)
+gboolean gst_camera_control_set_focus_level(GstCameraControl *control, gint manual_level)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_focus_level )
- {
- return klass->set_focus_level( control, manual_level );
+ if (klass->set_focus_level) {
+ return klass->set_focus_level(control, manual_level);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_focus_level( GstCameraControl *control, gint *manual_level)
+gboolean gst_camera_control_get_focus_level(GstCameraControl *control, gint *manual_level)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_focus_level )
- {
- return klass->get_focus_level( control, manual_level );
+ if (klass->get_focus_level) {
+ return klass->get_focus_level(control, manual_level);
}
return FALSE;
}
-gboolean
-gst_camera_control_set_auto_focus_area( GstCameraControl *control, GstCameraControlRectType rect )
+gboolean gst_camera_control_set_auto_focus_area(GstCameraControl *control, GstCameraControlRectType rect)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_auto_focus_area )
- {
- return klass->set_auto_focus_area( control, rect );
+ if (klass->set_auto_focus_area) {
+ return klass->set_auto_focus_area(control, rect);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_auto_focus_area( GstCameraControl *control, GstCameraControlRectType* rect )
+gboolean gst_camera_control_get_auto_focus_area(GstCameraControl *control, GstCameraControlRectType *rect)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_auto_focus_area )
- {
- return klass->get_auto_focus_area( control, rect );
+ if (klass->get_auto_focus_area) {
+ return klass->get_auto_focus_area(control, rect);
}
return FALSE;
}
-gboolean
-gst_camera_control_set_wdr( GstCameraControl *control, gint value)
+gboolean gst_camera_control_set_wdr(GstCameraControl *control, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_wdr )
- {
- return klass->set_wdr( control, value );
+ if (klass->set_wdr) {
+ return klass->set_wdr(control, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_wdr( GstCameraControl *control, gint *value)
+gboolean gst_camera_control_get_wdr(GstCameraControl *control, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_wdr )
- {
- return klass->get_wdr( control, value );
+ if (klass->get_wdr) {
+ return klass->get_wdr(control, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_set_ahs( GstCameraControl *control, gint value)
+gboolean gst_camera_control_set_ahs(GstCameraControl *control, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_ahs )
- {
- return klass->set_ahs( control, value );
+ if (klass->set_ahs) {
+ return klass->set_ahs(control, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_ahs( GstCameraControl *control, gint *value)
+gboolean gst_camera_control_get_ahs(GstCameraControl *control, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_ahs )
- {
- return klass->get_ahs( control, value );
+ if (klass->get_ahs) {
+ return klass->get_ahs(control, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_set_part_color( GstCameraControl *control, gint type, gint value)
+gboolean gst_camera_control_set_part_color(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_part_color )
- {
- return klass->set_part_color( control, type, value );
+ if (klass->set_part_color) {
+ return klass->set_part_color(control, type, value);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_part_color( GstCameraControl *control, gint type, gint *value)
+gboolean gst_camera_control_get_part_color(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_part_color )
- {
- return klass->get_part_color( control, type, value );
+ if (klass->get_part_color) {
+ return klass->get_part_color(control, type, value);
}
return FALSE;
}
gboolean
-gst_camera_control_get_exif_info ( GstCameraControl* control, GstCameraControlExifInfo* info)
+gst_camera_control_get_exif_info(GstCameraControl *control, GstCameraControlExifInfo *info)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_exif_info )
- {
- return klass->get_exif_info( control, info );
+ if (klass->get_exif_info) {
+ return klass->get_exif_info(control, info);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_basic_dev_info ( GstCameraControl* control, gint dev_id, GstCameraControlCapsInfoType* info)
+gboolean gst_camera_control_get_basic_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlCapsInfoType *info)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_basic_dev_info )
- {
- return klass->get_basic_dev_info( control, dev_id, info );
+ if (klass->get_basic_dev_info) {
+ return klass->get_basic_dev_info(control, dev_id, info);
}
return FALSE;
}
-gboolean
-gst_camera_control_get_misc_dev_info ( GstCameraControl* control, gint dev_id, GstCameraControlCtrlListInfoType* info)
+gboolean gst_camera_control_get_misc_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info)
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
return FALSE;
}
-gboolean
-gst_camera_control_get_extra_dev_info ( GstCameraControl* control, gint dev_id, GstCameraControlExtraInfoType* info)
+gboolean gst_camera_control_get_extra_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->get_extra_dev_info )
- {
- return klass->get_extra_dev_info( control, dev_id, info );
+ if (klass->get_extra_dev_info) {
+ return klass->get_extra_dev_info(control, dev_id, info);
}
return FALSE;
}
-void
-gst_camera_control_set_capture_command( GstCameraControl* control, GstCameraControlCaptureCommand cmd )
+void gst_camera_control_set_capture_command(GstCameraControl *control, GstCameraControlCaptureCommand cmd)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if( klass->set_capture_command )
- {
- klass->set_capture_command( control, cmd );
+ if (klass->set_capture_command) {
+ klass->set_capture_command(control, cmd);
}
return;
}
-void
-gst_camera_control_value_changed( GstCameraControl *control, GstCameraControlChannel *control_channel, gint value )
+gboolean gst_camera_control_start_face_zoom(GstCameraControl *control, gint x, gint y, gint zoom_level)
{
- g_signal_emit( G_OBJECT( control ), gst_camera_control_signals[CONTROL_VALUE_CHANGED], 0, control_channel, value );
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+
+ if (klass->start_face_zoom) {
+ return klass->start_face_zoom(control, x, y, zoom_level);
+ }
- g_signal_emit_by_name( G_OBJECT( control_channel ), "control-value-changed", value );
+ return FALSE;
}
+gboolean gst_camera_control_stop_face_zoom(GstCameraControl *control)
+{
+ GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+
+ if (klass->stop_face_zoom) {
+ return klass->stop_face_zoom(control);
+ }
+
+ return FALSE;
+}
+
+void gst_camera_control_value_changed(GstCameraControl *control, GstCameraControlChannel *control_channel, gint value)
+{
+ g_signal_emit(G_OBJECT(control), gst_camera_control_signals[CONTROL_VALUE_CHANGED], 0, control_channel, value);
+ g_signal_emit_by_name(G_OBJECT(control_channel), "control-value-changed", value);
+}
/*
- * GStreamer Camera Control
+ * GStreamer Camera Control Interface
*
* Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
*
#define MAX_NUM_AVAILABLE_FPS 16
#define MAX_NUM_CTRL_LIST_INFO 64
#define MAX_NUM_CTRL_MENU 64
+#define MAX_NUM_DETECTED_FACES 16
#define MAX_SZ_CTRL_NAME_STRING 32
#define MAX_SZ_DEV_NAME_STRING 32
* @brief For timeperframe as fraction type
* Elapse time consumed by one frame, reverse of FPS
*/
-typedef struct {
- gint num;
- gint den;
-}GstCameraControlFracType;
+typedef struct _GstCameraControlFracType {
+ gint num;
+ gint den;
+} GstCameraControlFracType;
/*! @struct GstCameraControlRectType
- * @brief For touch auto focusing area
+ * @brief For touch auto focusing area and face detection area
*/
-typedef struct {
+typedef struct _GstCameraControlRectType {
gint x;
gint y;
gint width;
gint height;
-}GstCameraControlRectType;
+} GstCameraControlRectType;
/*! @struct GstCameraControlResolutionType
* @brief For querying supported resolutions
*/
-typedef struct {
+typedef struct _GstCameraControlResolutionType {
gint w;
gint h;
* @brief Time per frame or frame per second will be expressed by this structure
* Time per frame or frame per second will be expressed by this structure
*/
-typedef struct {
+typedef struct _GstCameraControlFraction {
int numerator; /**< Upper number of fraction*/
int denominator; /**< Lower number of fraction*/
} GstCameraControlFraction;
/*! @struct GstCameraControlFmtDescType
* @brief For querying supported format type
*/
-typedef struct {
+typedef struct _GstCameraControlFmtDescType {
/* fourcc name of each pixelformat */
guint fcc;
gint fcc_use;
/*! @struct GstCameraControlCapsInfoType
* @brief For querying image input capabilities
*/
-typedef struct {
+typedef struct _GstCameraControlCapsInfoType {
char dev_name[MAX_SZ_DEV_NAME_STRING];
int input_idx;
gint num_fmt_desc;
GstCameraControlFraction fps[MAX_NUM_AVAILABLE_FPS];
} GstCameraControlCapsInfoType;
+/*! @struct GstCameraControlFaceInfo
+ * @brief For face information
+ */
+typedef struct _GstCameraControlFaceInfo {
+ int id;
+ int score;
+ GstCameraControlRectType rect;
+} GstCameraControlFaceInfo;
+
+/*! @struct GstCameraControlFaceDetectInfo
+ * @brief For face detect information
+ */
+typedef struct _GstCameraControlFaceDetectInfo {
+ int num_of_faces;
+ GstCameraControlFaceInfo face_info[MAX_NUM_DETECTED_FACES];
+} GstCameraControlFaceDetectInfo;
+
/////////////////////////////
// For Querying controls //
/////////////////////////////
/*! @struct GstCameraControlCtrlMenuType
* @brief For querying menu of specified controls
*/
-typedef struct {
+typedef struct _GstCameraControlCtrlMenuType {
gint menu_index;
gchar menu_name[MAX_SZ_CTRL_NAME_STRING];
-}GstCameraControlCtrlMenuType;
+} GstCameraControlCtrlMenuType;
/*! @struct GstCameraControlCtrlInfoType
* @brief For querying controls detail
*/
-typedef struct {
+typedef struct _GstCameraControlCtrlInfoType {
gint avsys_ctrl_id;
gint v4l2_ctrl_id;
gint ctrl_type;
/*! @struct GstCameraControlCtrlListInfoType
* @brief For querying controls
*/
-typedef struct {
+typedef struct _GstCameraControlCtrlListInfoType {
gint num_ctrl_list_info;
GstCameraControlCtrlInfoType ctrl_info[MAX_NUM_CTRL_LIST_INFO];
} GstCameraControlCtrlListInfoType;
#define GST_CAMERA_STROBE_CAP_PERMANENT 0x0080 /* keep turned on until turning off */
#define GST_CAMERA_STROBE_CAP_EXTERNAL 0x0100 /* use external strobe */
-typedef struct {
+typedef struct _GstCameraControlExtraInfoType {
guint strobe_caps; /**< Use above caps field */
guint detection_caps; /**< Just boolean */
guint reserved[4];
/**
* Enumerations for Camera control Part color.
*/
-typedef struct _GstCameraControlExifInfo
-{
- /* Dynamic value */
- guint32 exposure_time_numerator; //Exposure time, given in seconds
- guint32 exposure_time_denominator;
- gint shutter_speed_numerator; //Shutter speed, given in APEX(Additive System Photographic Exposure)
- gint shutter_speed_denominator;
- gint brigtness_numerator; //Value of brightness, before firing flash, given in APEX value
- gint brightness_denominator;
- guint16 iso; //Sensitivity value of sensor
- guint16 flash; //Whether flash is fired(1) or not(0)
- gint metering_mode; //metering mode in EXIF 2.2
- gint exif_image_width; //Size of image
- gint exif_image_height; //
- gint exposure_bias_in_APEX; //Exposure bias in APEX standard
- gint software_used; //Firmware S/W version
-
-
- /* Fixed value */
- gint component_configuration; //color components arrangement (YCbCr = 1230)
- gint colorspace; //colorspace information (sRGB=1)
- gint focal_len_numerator; //Lens focal length (f = 4.5mm)
- gint focal_len_denominator;
- gint aperture_f_num_numerator; //Aperture value (f_num = 2.8)
- gint aperture_f_num_denominator;
- gint aperture_in_APEX; //Aperture value in APEX standard
- gint max_lens_aperture_in_APEX; //Max aperture value in APEX standard
+typedef struct _GstCameraControlExifInfo {
+ /* Dynamic value */
+ guint32 exposure_time_numerator; /* Exposure time, given in seconds */
+ guint32 exposure_time_denominator;
+ gint shutter_speed_numerator; /* Shutter speed, given in APEX(Additive System Photographic Exposure) */
+ gint shutter_speed_denominator;
+ gint brigtness_numerator; /* Value of brightness, before firing flash, given in APEX value */
+ gint brightness_denominator;
+ guint16 iso; /* Sensitivity value of sensor */
+ guint16 flash; /* Whether flash is fired(1) or not(0) */
+ gint metering_mode; /* metering mode in EXIF 2.2 */
+ gint exif_image_width; /* Size of image */
+ gint exif_image_height;
+ gint exposure_bias_in_APEX; /* Exposure bias in APEX standard */
+ gint software_used; /* Firmware S/W version */
+
+ /* Fixed value */
+ gint component_configuration; /* color components arrangement */
+ gint colorspace; /* colorspace information */
+ gint focal_len_numerator; /* Lens focal length */
+ gint focal_len_denominator;
+ gint aperture_f_num_numerator; /* Aperture value */
+ gint aperture_f_num_denominator;
+ gint aperture_in_APEX; /* Aperture value in APEX standard */
+ gint max_lens_aperture_in_APEX; /* Max aperture value in APEX standard */
} GstCameraControlExifInfo;
GstCameraControlType camera_control_type;
/* virtual functions */
- const GList*(* list_channels) ( GstCameraControl* control );
-
- gboolean (* set_value) ( GstCameraControl* control, GstCameraControlChannel* control_channel );
- gboolean (* get_value) ( GstCameraControl* control, GstCameraControlChannel* control_channel );
- gboolean (* set_exposure) ( GstCameraControl* control, gint type, gint value1, gint value2 );
- gboolean (* get_exposure) ( GstCameraControl* control, gint type, gint* value1, gint* value2 );
- gboolean (* set_capture_mode) ( GstCameraControl* control, gint type, gint value );
- gboolean (* get_capture_mode) ( GstCameraControl* control, gint type, gint* value );
- gboolean (* set_strobe) ( GstCameraControl* control, gint type, gint value );
- gboolean (* get_strobe) ( GstCameraControl* control, gint type, gint *value );
- gboolean (* set_detect) ( GstCameraControl* control, gint type, gint value );
- gboolean (* get_detect) ( GstCameraControl* control, gint type, gint* value );
- gboolean (* set_zoom) ( GstCameraControl* control, gint type, gint value );
- gboolean (* get_zoom) ( GstCameraControl* control, gint type, gint* value );
- gboolean (* set_focus) ( GstCameraControl* control, gint mode, gint range );
- gboolean (* get_focus) ( GstCameraControl* control, gint* mode, gint* range );
- gboolean (* start_auto_focus) ( GstCameraControl* control);
- gboolean (* stop_auto_focus) ( GstCameraControl* control);
- gboolean (* set_focus_level) ( GstCameraControl* control, gint manual_level);
- gboolean (* get_focus_level) ( GstCameraControl* control, gint* manual_level);
- gboolean (* set_auto_focus_area) ( GstCameraControl* control, GstCameraControlRectType rect );
- gboolean (* get_auto_focus_area) ( GstCameraControl* control, GstCameraControlRectType* rect );
- gboolean (* set_wdr) ( GstCameraControl* control, gint value);
- gboolean (* get_wdr) ( GstCameraControl* control, gint *value);
- gboolean (* set_ahs) ( GstCameraControl* control, gint value);
- gboolean (* get_ahs) ( GstCameraControl* control, gint *value);
- gboolean (* set_part_color) ( GstCameraControl* control, gint type, gint value);
- gboolean (* get_part_color) ( GstCameraControl* control, gint type, gint* value);
- gboolean (* get_exif_info) ( GstCameraControl* control, GstCameraControlExifInfo* info);
- gboolean (* get_basic_dev_info) ( GstCameraControl* control, gint dev_id, GstCameraControlCapsInfoType* info);
- gboolean (* get_misc_dev_info) ( GstCameraControl* control, gint dev_id, GstCameraControlCtrlListInfoType* info);
- gboolean (* get_extra_dev_info) ( GstCameraControl* control, gint dev_id, GstCameraControlExtraInfoType* info);
- void (* set_capture_command) ( GstCameraControl* control, GstCameraControlCaptureCommand cmd );
+ const GList*(*list_channels) (GstCameraControl *control);
+
+ gboolean (*set_value) (GstCameraControl *control, GstCameraControlChannel *control_channel);
+ gboolean (*get_value) (GstCameraControl *control, GstCameraControlChannel *control_channel);
+ gboolean (*set_exposure) (GstCameraControl *control, gint type, gint value1, gint value2);
+ gboolean (*get_exposure) (GstCameraControl *control, gint type, gint *value1, gint *value2);
+ gboolean (*set_capture_mode) (GstCameraControl *control, gint type, gint value);
+ gboolean (*get_capture_mode) (GstCameraControl *control, gint type, gint *value);
+ gboolean (*set_strobe) (GstCameraControl *control, gint type, gint value);
+ gboolean (*get_strobe) (GstCameraControl *control, gint type, gint *value);
+ gboolean (*set_detect) (GstCameraControl *control, gint type, gint value);
+ gboolean (*get_detect) (GstCameraControl *control, gint type, gint *value);
+ gboolean (*set_zoom) (GstCameraControl *control, gint type, gint value);
+ gboolean (*get_zoom) (GstCameraControl *control, gint type, gint *value);
+ gboolean (*set_focus) (GstCameraControl *control, gint mode, gint range);
+ gboolean (*get_focus) (GstCameraControl *control, gint *mode, gint *range);
+ gboolean (*start_auto_focus) (GstCameraControl *control);
+ gboolean (*stop_auto_focus) (GstCameraControl *control);
+ gboolean (*set_focus_level) (GstCameraControl *control, gint manual_level);
+ gboolean (*get_focus_level) (GstCameraControl *control, gint *manual_level);
+ gboolean (*set_auto_focus_area) (GstCameraControl *control, GstCameraControlRectType rect);
+ gboolean (*get_auto_focus_area) (GstCameraControl *control, GstCameraControlRectType *rect);
+ gboolean (*set_wdr) (GstCameraControl *control, gint value);
+ gboolean (*get_wdr) (GstCameraControl *control, gint *value);
+ gboolean (*set_ahs) (GstCameraControl *control, gint value);
+ gboolean (*get_ahs) (GstCameraControl *control, gint *value);
+ gboolean (*set_part_color) (GstCameraControl *control, gint type, gint value);
+ gboolean (*get_part_color) (GstCameraControl *control, gint type, gint *value);
+ gboolean (*get_exif_info) (GstCameraControl *control, GstCameraControlExifInfo *info);
+ gboolean (*get_basic_dev_info) (GstCameraControl *control, gint dev_id, GstCameraControlCapsInfoType *info);
+ gboolean (*get_misc_dev_info) (GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info);
+ gboolean (*get_extra_dev_info) (GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info);
+ void (*set_capture_command) (GstCameraControl *control, GstCameraControlCaptureCommand cmd);
+ gboolean (*start_face_zoom) (GstCameraControl *control, gint x, gint y, gint zoom_level);
+ gboolean (*stop_face_zoom) (GstCameraControl *control);
/* signals */
- void (* value_changed) ( GstCameraControl* control, GstCameraControlChannel* channel, gint value );
+ void (* value_changed) (GstCameraControl *control, GstCameraControlChannel *channel, gint value);
} GstCameraControlClass;
-GType gst_camera_control_get_type (void);
+GType gst_camera_control_get_type(void);
/* virtual class function wrappers */
-const GList* gst_camera_control_list_channels ( GstCameraControl* control );
-
-gboolean gst_camera_control_set_value ( GstCameraControl* control, GstCameraControlChannel* control_channel );
-gboolean gst_camera_control_get_value ( GstCameraControl* control, GstCameraControlChannel* control_channel );
-gboolean gst_camera_control_set_exposure ( GstCameraControl* control, gint type, gint value1, gint value2 );
-gboolean gst_camera_control_get_exposure ( GstCameraControl* control, gint type, gint* value1, gint* value2 );
-gboolean gst_camera_control_set_capture_mode ( GstCameraControl* control, gint type, gint value );
-gboolean gst_camera_control_get_capture_mode ( GstCameraControl* control, gint type, gint* value );
-gboolean gst_camera_control_set_strobe ( GstCameraControl* control, gint type, gint value );
-gboolean gst_camera_control_get_strobe ( GstCameraControl* control, gint type, gint *value );
-gboolean gst_camera_control_set_detect ( GstCameraControl* control, gint type, gint value );
-gboolean gst_camera_control_get_detect ( GstCameraControl* control, gint type, gint* value );
-gboolean gst_camera_control_set_zoom ( GstCameraControl* control, gint type, gint value );
-gboolean gst_camera_control_get_zoom ( GstCameraControl* control, gint type, gint* value );
-gboolean gst_camera_control_set_focus ( GstCameraControl* control, gint mode, gint range );
-gboolean gst_camera_control_get_focus ( GstCameraControl* control, gint* mode, gint* range );
-gboolean gst_camera_control_start_auto_focus ( GstCameraControl* control);
-gboolean gst_camera_control_stop_auto_focus ( GstCameraControl* control);
-gboolean gst_camera_control_set_focus_level ( GstCameraControl* control, gint manual_level );
-gboolean gst_camera_control_get_focus_level ( GstCameraControl* control, gint* manual_level );
-gboolean gst_camera_control_set_auto_focus_area ( GstCameraControl* control, GstCameraControlRectType rect );
-gboolean gst_camera_control_get_auto_focus_area ( GstCameraControl* control, GstCameraControlRectType* rect );
-gboolean gst_camera_control_set_wdr ( GstCameraControl* control, gint value);
-gboolean gst_camera_control_get_wdr ( GstCameraControl* control, gint* value);
-gboolean gst_camera_control_set_ahs ( GstCameraControl* control, gint value);
-gboolean gst_camera_control_get_ahs ( GstCameraControl* control, gint* value);
-gboolean gst_camera_control_set_part_color ( GstCameraControl* control, gint type, gint value);
-gboolean gst_camera_control_get_part_color ( GstCameraControl* control, gint type, gint* value);
-gboolean gst_camera_control_get_exif_info ( GstCameraControl* control, GstCameraControlExifInfo* info);
-gboolean gst_camera_control_get_basic_dev_info ( GstCameraControl* control, gint dev_id, GstCameraControlCapsInfoType* info);
-gboolean gst_camera_control_get_misc_dev_info ( GstCameraControl* control, gint dev_id, GstCameraControlCtrlListInfoType* info);
-gboolean gst_camera_control_get_extra_dev_info ( GstCameraControl* control, gint dev_id, GstCameraControlExtraInfoType* info);
-void gst_camera_control_set_capture_command ( GstCameraControl* control, GstCameraControlCaptureCommand cmd );
+const GList* gst_camera_control_list_channels (GstCameraControl *control);
+
+gboolean gst_camera_control_set_value (GstCameraControl *control, GstCameraControlChannel *control_channel);
+gboolean gst_camera_control_get_value (GstCameraControl *control, GstCameraControlChannel *control_channel);
+gboolean gst_camera_control_set_exposure (GstCameraControl *control, gint type, gint value1, gint value2);
+gboolean gst_camera_control_get_exposure (GstCameraControl *control, gint type, gint *value1, gint *value2);
+gboolean gst_camera_control_set_capture_mode (GstCameraControl *control, gint type, gint value);
+gboolean gst_camera_control_get_capture_mode (GstCameraControl *control, gint type, gint *value);
+gboolean gst_camera_control_set_strobe (GstCameraControl *control, gint type, gint value);
+gboolean gst_camera_control_get_strobe (GstCameraControl *control, gint type, gint *value);
+gboolean gst_camera_control_set_detect (GstCameraControl *control, gint type, gint value);
+gboolean gst_camera_control_get_detect (GstCameraControl *control, gint type, gint *value);
+gboolean gst_camera_control_set_zoom (GstCameraControl *control, gint type, gint value);
+gboolean gst_camera_control_get_zoom (GstCameraControl *control, gint type, gint *value);
+gboolean gst_camera_control_set_focus (GstCameraControl *control, gint mode, gint range);
+gboolean gst_camera_control_get_focus (GstCameraControl *control, gint *mode, gint *range);
+gboolean gst_camera_control_start_auto_focus (GstCameraControl *control);
+gboolean gst_camera_control_stop_auto_focus (GstCameraControl *control);
+gboolean gst_camera_control_set_focus_level (GstCameraControl *control, gint manual_level);
+gboolean gst_camera_control_get_focus_level (GstCameraControl *control, gint *manual_level);
+gboolean gst_camera_control_set_auto_focus_area (GstCameraControl *control, GstCameraControlRectType rect);
+gboolean gst_camera_control_get_auto_focus_area (GstCameraControl *control, GstCameraControlRectType *rect);
+gboolean gst_camera_control_set_wdr (GstCameraControl *control, gint value);
+gboolean gst_camera_control_get_wdr (GstCameraControl *control, gint *value);
+gboolean gst_camera_control_set_ahs (GstCameraControl *control, gint value);
+gboolean gst_camera_control_get_ahs (GstCameraControl *control, gint *value);
+gboolean gst_camera_control_set_part_color (GstCameraControl *control, gint type, gint value);
+gboolean gst_camera_control_get_part_color (GstCameraControl *control, gint type, gint *value);
+gboolean gst_camera_control_get_exif_info (GstCameraControl *control, GstCameraControlExifInfo *info);
+gboolean gst_camera_control_get_basic_dev_info (GstCameraControl *control, gint dev_id, GstCameraControlCapsInfoType *info);
+gboolean gst_camera_control_get_misc_dev_info (GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info);
+gboolean gst_camera_control_get_extra_dev_info (GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info);
+void gst_camera_control_set_capture_command (GstCameraControl *control, GstCameraControlCaptureCommand cmd);
+gboolean gst_camera_control_start_face_zoom (GstCameraControl *control, gint x, gint y, gint zoom_level);
+gboolean gst_camera_control_stop_face_zoom (GstCameraControl *control);
/* trigger signal */
-void gst_camera_control_value_changed ( GstCameraControl* control, GstCameraControlChannel* control_channel, gint value );
+void gst_camera_control_value_changed (GstCameraControl *control, GstCameraControlChannel *control_channel, gint value);
G_END_DECLS
-/* GStreamer Camera Control
+/* GStreamer Camera Control Channel Interface
* Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
*
* cameracontrolchannel.c: cameracontrol channel object design
#include "cameracontrolchannel.h"
-enum
-{
- /* FILL ME */
- SIGNAL_VALUE_CHANGED,
- LAST_SIGNAL
+enum {
+ /* FILL ME */
+ SIGNAL_VALUE_CHANGED,
+ LAST_SIGNAL
};
-static void gst_camera_control_channel_class_init( GstCameraControlChannelClass* klass );
-static void gst_camera_control_channel_init( GstCameraControlChannel* control_channel );
-static void gst_camera_control_channel_dispose( GObject* object );
+static void gst_camera_control_channel_class_init(GstCameraControlChannelClass* klass);
+static void gst_camera_control_channel_init(GstCameraControlChannel* control_channel);
+static void gst_camera_control_channel_dispose(GObject* object);
-static GObjectClass* parent_class = NULL;
+static GObjectClass *parent_class = NULL;
static guint signals[LAST_SIGNAL] = { 0 };
-GType
-gst_camera_control_channel_get_type (void)
+GType gst_camera_control_channel_get_type(void)
{
- static GType gst_camera_control_channel_type = 0;
-
- if (!gst_camera_control_channel_type) {
- static const GTypeInfo camera_control_channel_info = {
- sizeof (GstCameraControlChannelClass),
- NULL,
- NULL,
- (GClassInitFunc) gst_camera_control_channel_class_init,
- NULL,
- NULL,
- sizeof (GstCameraControlChannel),
- 0,
- (GInstanceInitFunc) gst_camera_control_channel_init,
- NULL
- };
-
- gst_camera_control_channel_type =
- g_type_register_static (G_TYPE_OBJECT,
- "GstCameraControlChannel", &camera_control_channel_info, 0);
- }
-
- return gst_camera_control_channel_type;
+ static GType gst_camera_control_channel_type = 0;
+
+ if (!gst_camera_control_channel_type) {
+ static const GTypeInfo camera_control_channel_info = {
+ sizeof (GstCameraControlChannelClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) gst_camera_control_channel_class_init,
+ NULL,
+ NULL,
+ sizeof (GstCameraControlChannel),
+ 0,
+ (GInstanceInitFunc) gst_camera_control_channel_init,
+ NULL
+ };
+
+ gst_camera_control_channel_type = \
+ g_type_register_static(G_TYPE_OBJECT,
+ "GstCameraControlChannel",
+ &camera_control_channel_info,
+ 0);
+ }
+
+ return gst_camera_control_channel_type;
}
-static void
-gst_camera_control_channel_class_init( GstCameraControlChannelClass* klass )
+static void gst_camera_control_channel_class_init(GstCameraControlChannelClass* klass)
{
- GObjectClass *object_klass = (GObjectClass*) klass;
-
- parent_class = g_type_class_peek_parent (klass);
-
- signals[SIGNAL_VALUE_CHANGED] =
- g_signal_new ("control-value-changed", G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GstCameraControlChannelClass,
- value_changed),
- NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT);
-
- object_klass->dispose = gst_camera_control_channel_dispose;
+ GObjectClass *object_klass = (GObjectClass*) klass;
+
+ parent_class = g_type_class_peek_parent (klass);
+
+ signals[SIGNAL_VALUE_CHANGED] = \
+ g_signal_new("control-value-changed",
+ G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GstCameraControlChannelClass, value_changed),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__INT,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_INT);
+
+ object_klass->dispose = gst_camera_control_channel_dispose;
}
-static void
-gst_camera_control_channel_init( GstCameraControlChannel* control_channel )
+static void gst_camera_control_channel_init(GstCameraControlChannel* control_channel)
{
- control_channel->label = NULL;
- control_channel->min_value = control_channel->max_value = 0;
+ control_channel->label = NULL;
+ control_channel->min_value = control_channel->max_value = 0;
}
-static void
-gst_camera_control_channel_dispose( GObject* object )
+static void gst_camera_control_channel_dispose(GObject* object)
{
- GstCameraControlChannel *control_channel = GST_CAMERA_CONTROL_CHANNEL (object);
+ GstCameraControlChannel *control_channel = GST_CAMERA_CONTROL_CHANNEL(object);
- if (control_channel->label)
- g_free (control_channel->label);
+ if (control_channel->label) {
+ g_free (control_channel->label);
+ }
- control_channel->label = NULL;
+ control_channel->label = NULL;
- if (parent_class->dispose)
- parent_class->dispose (object);
+ if (parent_class->dispose) {
+ parent_class->dispose (object);
+ }
}
-/* GStreamer Camera Control
+/* GStreamer Camera Control Channel Interface
* Copyright (C) 2003 Ronald Bultje <rbultje@ronald.bitfreak.net>
*
* cameracontrolchannel.h: individual channel object
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_CAMERA_CONTROL_CHANNEL))
typedef struct _GstCameraControlChannel {
- GObject parent;
-
- gchar *label;
- gint min_value,
- max_value;
+ GObject parent;
+ gchar *label;
+ gint min_value;
+ gint max_value;
} GstCameraControlChannel;
typedef struct _GstCameraControlChannelClass {
- GObjectClass parent;
+ GObjectClass parent;
- /* signals */
- void (* value_changed) (GstCameraControlChannel *control_channel,
- gint value);
+ /* signals */
+ void (*value_changed)(GstCameraControlChannel *control_channel, gint value);
- gpointer _gst_reserved[GST_PADDING];
+ gpointer _gst_reserved[GST_PADDING];
} GstCameraControlChannelClass;
-GType gst_camera_control_channel_get_type (void);
+GType gst_camera_control_channel_get_type(void);
G_END_DECLS
const GList *
gst_color_balance_list_channels (GstColorBalance * balance)
{
- GstColorBalanceClass *klass = GST_COLOR_BALANCE_GET_CLASS (balance);
+ GstColorBalanceClass *klass;
+
+ g_return_val_if_fail (GST_IS_COLOR_BALANCE (balance), NULL);
+
+ klass = GST_COLOR_BALANCE_GET_CLASS (balance);
if (klass->list_channels) {
return klass->list_channels (balance);
* Sets the current value of the channel to the passed value, which must
* be between min_value and max_value.
*
- * See Also: The #GstColorBalanceChannel::min_value and
- * #GstColorBalanceChannel::max_value members of the
+ * See Also: The #GstColorBalanceChannel.min_value and
+ * #GstColorBalanceChannel.max_value members of the
* #GstColorBalanceChannel object.
*/
void
* Retrieve the current value of the indicated channel, between min_value
* and max_value.
*
- * See Also: The #GstColorBalanceChannel::min_value and
- * #GstColorBalanceChannel::max_value members of the
+ * See Also: The #GstColorBalanceChannel.min_value and
+ * #GstColorBalanceChannel.max_value members of the
* #GstColorBalanceChannel object.
*
* Returns: The current value of the channel.
gst_color_balance_get_value (GstColorBalance * balance,
GstColorBalanceChannel * channel)
{
- GstColorBalanceClass *klass = GST_COLOR_BALANCE_GET_CLASS (balance);
+ GstColorBalanceClass *klass;
+
+ g_return_val_if_fail (GST_IS_COLOR_BALANCE (balance), 0);
+
+ klass = GST_COLOR_BALANCE_GET_CLASS (balance);
if (klass->get_value) {
return klass->get_value (balance, channel);
GstColorBalanceType
gst_color_balance_get_balance_type (GstColorBalance * balance)
{
- GstColorBalanceClass *klass = GST_COLOR_BALANCE_GET_CLASS (balance);
+ GstColorBalanceClass *klass;
+
+ g_return_val_if_fail (GST_IS_COLOR_BALANCE (balance),
+ GST_COLOR_BALANCE_SOFTWARE);
+
+ klass = GST_COLOR_BALANCE_GET_CLASS (balance);
return klass->balance_type;
}
gst_color_balance_value_changed (GstColorBalance * balance,
GstColorBalanceChannel * channel, gint value)
{
+
+ g_return_if_fail (GST_IS_COLOR_BALANCE (balance));
+
g_signal_emit (G_OBJECT (balance),
gst_color_balance_signals[VALUE_CHANGED], 0, channel, value);
GST_COLOR_BALANCE_SOFTWARE
} GstColorBalanceType;
+/**
+ * GstColorBalanceClass:
+ * @klass: the parent interface
+ * @balance_type: implementation type
+ * @list_channels: list handled channels
+ * @set_value: set a channel value
+ * @get_value: get a channel value
+ * @value_changed: default handler for value changed notification
+ *
+ * Color-balance interface.
+ */
struct _GstColorBalanceClass {
GTypeInterface klass;
GstColorBalanceChannel *channel,
gint value);
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
gint max_value;
};
-
+/**
+ * GstColorBalanceChannelClass:
+ * @parent: the parent interface
+ * @value_changed: default handler for value changed notification
+ *
+ * Color-balance channel class.
+ */
struct _GstColorBalanceChannelClass {
GObjectClass parent;
void (* value_changed) (GstColorBalanceChannel *channel,
gint value);
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
* options of a given options object has changed.
*
* The new options are not contained in the message on purpose. Applications
- * should call gst_mixer_option_get_values() on @opts to make @opts update
+ * should call gst_mixer_options_get_values() on @opts to make @opts update
* its internal state and obtain the new list of values.
*
* This function only works for GstElements that are implementing the
typedef struct _GstMixer GstMixer;
typedef struct _GstMixerClass GstMixerClass;
+/**
+ * GstMixerType:
+ * @GST_MIXER_HARDWARE: mixing is implemented with dedicated hardware.
+ * @GST_MIXER_SOFTWARE: mixing is implemented via software processing.
+ *
+ * Mixer classification.
+ */
typedef enum
{
GST_MIXER_HARDWARE,
/**
* GstMixerOptions:
- * @parent: Parent object
* @values: List of option strings. Do not access this member directly,
* always use gst_mixer_options_get_values() instead.
+ *
+ * Mixer control object.
*/
struct _GstMixerOptions {
GstMixerTrack parent;
+ /*< public >*/
/* list of strings (do not access directly) (FIXME 0.11: make private) */
GList *values;
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
/**
* GstMixerOptionsClass:
- * @parent: Parent class
+ * @parent: the parent interface
* @get_values: Optional implementation of gst_mixer_options_get_values().
* (Since: 0.10.18)
*/
* mouse moving over a clickable region, or the set of available angles changing.
* </para><para>
* The GstNavigation message functions provide functions for creating and parsing
- * custom bus messages for signalling GstNavigation changes.
+ * custom bus messages for signaling GstNavigation changes.
* </para>
* </listitem>
* </itemizedlist>
* Check a bus message to see if it is a #GstNavigation event, and return
* the #GstNavigationMessageType identifying the type of the message if so.
*
- * Returns: The type of the #GstNavigationMessage, or
+ * Returns: The type of the #GstMessage, or
* #GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
* notification.
*
typedef struct _GstNavigation GstNavigation;
typedef struct _GstNavigationInterface GstNavigationInterface;
+/**
+ * GstNavigationInterface:
+ * @g_iface: the parent interface
+ * @send_event: sending a navigation event
+ *
+ * Color-balance interface.
+ */
struct _GstNavigationInterface {
GTypeInterface g_iface;
/* virtual functions */
void (*send_event) (GstNavigation *navigation, GstStructure *structure);
-
+
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
GST_NAVIGATION_COMMAND_MENU5 = 5,
GST_NAVIGATION_COMMAND_MENU6 = 6,
GST_NAVIGATION_COMMAND_MENU7 = 7,
-
+
GST_NAVIGATION_COMMAND_LEFT = 20,
GST_NAVIGATION_COMMAND_RIGHT = 21,
GST_NAVIGATION_COMMAND_UP = 22,
#define GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU GST_NAVIGATION_COMMAND_MENU7
/* Queries */
+/**
+ * GstNavigationQueryType:
+ * @GST_NAVIGATION_QUERY_INVALID: invalid query
+ * @GST_NAVIGATION_QUERY_COMMANDS: command query
+ * @GST_NAVIGATION_QUERY_ANGLES: viewing angle query
+ *
+ * Tyoes of navigation interface queries.
+ */
typedef enum
{
GST_NAVIGATION_QUERY_INVALID = 0,
/* interface virtual function wrappers */
void gst_navigation_send_event (GstNavigation *navigation,
GstStructure *structure);
-void gst_navigation_send_key_event (GstNavigation *navigation,
+void gst_navigation_send_key_event (GstNavigation *navigation,
const char *event, const char *key);
-void gst_navigation_send_mouse_event (GstNavigation *navigation,
+void gst_navigation_send_mouse_event (GstNavigation *navigation,
const char *event, int button, double x, double y);
void gst_navigation_send_command (GstNavigation *navigation,
GstNavigationCommand command);
*
* Get a list of properties for which probing is supported.
*
- * Returns: the list of properties for which probing is supported
- * by this element.
+ * Returns: the list of #GParamSpec * pointers representing
+ * properties for which probing is supported by this element.
*/
const GList *
gst_property_probe_get_properties (GstPropertyProbe * probe)
#define GST_TYPE_STREAM_VOLUME \
(gst_stream_volume_get_type ())
#define GST_STREAM_VOLUME(obj) \
- (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_VOLUME, GstStreamVolume))
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_STREAM_VOLUME, GstStreamVolume))
#define GST_STREAM_VOLUME_INTERFACE(iface) \
(G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_STREAM_VOLUME, GstStreamVolumeInterface))
#define GST_IS_STREAM_VOLUME(obj) \
- (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_VOLUME))
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_STREAM_VOLUME))
#define GST_IS_STREAM_VOLUME_INTERFACE(iface) \
(G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_STREAM_VOLUME))
#define GST_STREAM_VOLUME_GET_INTERFACE(inst) \
* @GST_STREAM_VOLUME_FORMAT_CUBIC: Cubic volume scale
* @GST_STREAM_VOLUME_FORMAT_DB: Logarithmic volume scale (dB, amplitude not power)
*
- * Different representations of a stream volume. gst_stream_volume_convert()
+ * Different representations of a stream volume. gst_stream_volume_convert_volume()
* allows to convert between the different representations.
*
* Formulas to convert from a linear to a cubic or dB volume are
typedef struct _GstTuner GstTuner;
typedef struct _GstTunerClass GstTunerClass;
+/**
+ * GstTunerClass:
+ * @klass: the parent interface
+ * @list_channels: list available channels
+ * @set_channel: set to a channel
+ * @get_channel: return the current channel
+ * @list_norms: list available norms
+ * @set_norm: set a norm
+ * @get_norm: return the current norm
+ * @set_frequency: set the frequency
+ * @get_frequency: return the current frequency
+ * @signal_strength: get the signal strength
+ * @channel_changed: default handler for channel changed notification
+ * @norm_changed: default handler for norm changed notification
+ * @frequency_changed: default handler for frequency changed notification
+ * @signal_changed: default handler for signal-strength changed notification
+ *
+ * Tuner interface.
+ */
struct _GstTunerClass {
GTypeInterface klass;
GstTunerChannel *channel,
gint signal);
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
* // ignore anything but 'prepare-xwindow-id' element messages
* if (GST_MESSAGE_TYPE (message) != GST_MESSAGE_ELEMENT)
* return GST_BUS_PASS;
- *
+ *
* if (!gst_structure_has_name (message->structure, "prepare-xwindow-id"))
* return GST_BUS_PASS;
- *
+ *
* win = XCreateSimpleWindow (disp, root, 0, 0, 320, 240, 0, 0, 0);
- *
+ *
* XSetWindowBackgroundPixmap (disp, win, None);
- *
+ *
* XMapRaised (disp, win);
- *
+ *
* XSync (disp, FALSE);
- *
+ *
* gst_x_overlay_set_window_handle (GST_X_OVERLAY (GST_MESSAGE_SRC (message)),
* win);
- *
+ *
* gst_message_unref (message);
- *
+ *
* return GST_BUS_DROP;
* }
* ...
* <title>GstXOverlay and Gtk+</title>
* <para>
* |[
+ * #include <gst/interfaces/xoverlay.h>
* #include <gtk/gtk.h>
* #ifdef GDK_WINDOWING_X11
* #include <gdk/gdkx.h> // for GDK_WINDOW_XID
* return GST_BUS_PASS;
* if (!gst_structure_has_name (message->structure, "prepare-xwindow-id"))
* return GST_BUS_PASS;
- *
+ *
* if (video_window_xid != 0) {
* GstXOverlay *xoverlay;
- *
+ *
* // GST_MESSAGE_SRC (message) will be the video sink element
* xoverlay = GST_X_OVERLAY (GST_MESSAGE_SRC (message));
* gst_x_overlay_set_window_handle (xoverlay, video_window_xid);
* } else {
* g_warning ("Should have obtained video_window_xid by now!");
* }
- *
+ *
* gst_message_unref (message);
* return GST_BUS_DROP;
* }
* if (!gdk_window_ensure_native (widget->window))
* g_error ("Couldn't create native window needed for GstXOverlay!");
* #endif
- *
+ *
* #ifdef GDK_WINDOWING_X11
- * video_window_xid = GDK_WINDOW_XID (video_window->window);
+ * video_window_xid = GDK_WINDOW_XID (gtk_widget_get_window (video_window));
* #endif
* }
* ...
* ...
* // show the GUI
* gtk_widget_show_all (app_window);
- *
+ *
* // realize window now so that the video window gets created and we can
* // obtain its XID before the pipeline is started up and the videosink
* // asks for the XID of the window to render onto
- * gtk_widget_realize (window);
- *
+ * gtk_widget_realize (video_window);
+ *
* // we should have the XID now
* g_assert (video_window_xid != 0);
* ...
* #include <glib.h>
* #include <gst/gst.h>
* #include <gst/interfaces/xoverlay.h>
- *
+ *
* #include <QApplication>
* #include <QTimer>
* #include <QWidget>
- *
+ *
* int main(int argc, char *argv[])
* {
* if (!g_thread_supported ())
* g_thread_init (NULL);
- *
+ *
* gst_init (&argc, &argv);
* QApplication app(argc, argv);
* app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit ()));
- *
+ *
* // prepare the pipeline
- *
+ *
* GstElement *pipeline = gst_pipeline_new ("xvoverlay");
* GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
* GstElement *sink = gst_element_factory_make ("xvimagesink", NULL);
* gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL);
* gst_element_link (src, sink);
- *
+ *
* // prepare the ui
- *
+ *
* QWidget window;
* window.resize(320, 240);
* window.show();
- *
+ *
* WId xwinid = window.winId();
* gst_x_overlay_set_window_handle (GST_X_OVERLAY (sink), xwinid);
- *
+ *
* // run the pipeline
- *
+ *
* GstStateChangeReturn sret = gst_element_set_state (pipeline,
* GST_STATE_PLAYING);
* if (sret == GST_STATE_CHANGE_FAILURE) {
* // Exit application
* QTimer::singleShot(0, QApplication::activeWindow(), SLOT(quit()));
* }
- *
+ *
* int ret = app.exec();
- *
+ *
* window.hide();
* gst_element_set_state (pipeline, GST_STATE_NULL);
* gst_object_unref (pipeline);
- *
+ *
* return ret;
* }
* ]|
/**
* gst_x_overlay_set_xwindow_id:
- * @overlay: a #GstXOverlay to set the XWindow on.
- * @xwindow_id: a #XID referencing the XWindow.
+ * @overlay: a #GstXOverlay to set the window on.
+ * @xwindow_id: a XID referencing the XWindow.
*
* This will call the video overlay's set_xwindow_id method. You should
* use this method to tell to a XOverlay to display video output to a
- * specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
+ * specific XWindow. Passing 0 as the @xwindow_id will tell the overlay to
* stop using that window and create an internal one.
*
* Deprecated: Use gst_x_overlay_set_window_handle() instead.
/**
* gst_x_overlay_set_window_handle:
- * @overlay: a #GstXOverlay to set the XWindow on.
- * @xwindow_id: a #XID referencing the XWindow.
+ * @overlay: a #GstXOverlay to set the window on.
+ * @handle: a handle referencing the window.
*
* This will call the video overlay's set_window_handle method. You
* should use this method to tell to a XOverlay to display video output to a
- * specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
- * stop using that window and create an internal one.
+ * specific window (e.g. an XWindow on X11). Passing 0 as the @handle will
+ * tell the overlay to stop using that window and create an internal one.
*
* Since: 0.10.31
*/
/**
* gst_x_overlay_got_xwindow_id:
* @overlay: a #GstXOverlay which got a XWindow.
- * @xwindow_id: a #XID referencing the XWindow.
+ * @xwindow_id: a XID referencing the XWindow.
*
* This will post a "have-xwindow-id" element message on the bus.
*
* @overlay: a #GstXOverlay which does not yet have an XWindow.
*
* This will post a "prepare-xwindow-id" element message on the bus
- * to give applications an opportunity to call
+ * to give applications an opportunity to call
* gst_x_overlay_set_xwindow_id() before a plugin creates its own
* window.
*
* @handle_events: a #gboolean indicating if events should be handled or not.
*
* Tell an overlay that it should handle events from the window system. These
- * events are forwared upstream as navigation events. In some window system,
+ * events are forwarded upstream as navigation events. In some window system,
* events are not propagated in the window hierarchy if a client is listening
* for them. This method allows you to disable events handling completely
* from the XOverlay.
/**
* GstXOverlayClass:
* @klass: parent interface type.
- * @set_xwindow_id: virtual method to configure the XWindow id
+ * @set_xwindow_id: (deprecated) virtual method to configure the XWindow handle
* @expose: virtual method to handle expose events
* @handle_events: virtual method to handle events
* @set_render_rectangle: virtual method to set the render rectangle (since 0.10.29)
+ * @set_window_handle: virtual method to configure the window handle
*
* #GstXOverlay interface
*/
void (* set_xwindow_id) (GstXOverlay *overlay,
gulong xwindow_id);
#else
+#ifndef __GTK_DOC_IGNORE__
void (* set_xwindow_id_disabled) (GstXOverlay *overlay,
gulong xwindow_id);
+#endif
#endif /* not GST_DISABLE_DEPRECATED */
void (* expose) (GstXOverlay *overlay);
-
+
void (* handle_events) (GstXOverlay *overlay,
- gboolean handle_events);
+ gboolean handle_events);
void (* set_render_rectangle) (GstXOverlay *overlay,
gint x, gint y,
/* virtual class function wrappers */
#ifndef GST_DISABLE_DEPRECATED
-void gst_x_overlay_set_xwindow_id (GstXOverlay *overlay,
+void gst_x_overlay_set_xwindow_id (GstXOverlay *overlay,
gulong xwindow_id);
#endif
void gst_x_overlay_handle_events (GstXOverlay *overlay,
gboolean handle_events);
-void gst_x_overlay_set_window_handle (GstXOverlay *overlay,
+void gst_x_overlay_set_window_handle (GstXOverlay *overlay,
guintptr handle);
/* public methods to dispatch bus messages */
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstnetbufferincludedir)"
libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo
libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstnetbuffer_@GST_MAJORMINOR@_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
libgstnetbuffer_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstnetbuffer_@GST_MAJORMINOR@_la_SOURCES)
DIST_SOURCES = $(libgstnetbuffer_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstnetbuffer-@GST_MAJORMINOR@.la: $(libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstnetbuffer-@GST_MAJORMINOR@.la: $(libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstnetbuffer_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstnetbuffer_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstnetbuffer_@GST_MAJORMINOR@_la_OBJECTS) $(libgstnetbuffer_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo: gstnetbuffer.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) $(libgstnetbuffer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo -MD -MP -MF $(DEPDIR)/libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.Tpo -c -o libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo `test -f 'gstnetbuffer.c' || echo '$(srcdir)/'`gstnetbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.Tpo $(DEPDIR)/libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstnetbuffer.c' object='libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstnetbuffer.c' object='libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.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) $(libgstnetbuffer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo `test -f 'gstnetbuffer.c' || echo '$(srcdir)/'`gstnetbuffer.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) $(libgstnetbuffer_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstnetbuffer_@GST_MAJORMINOR@_la-gstnetbuffer.lo `test -f 'gstnetbuffer.c' || echo '$(srcdir)/'`gstnetbuffer.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstnetbufferincludeHEADERS: $(libgstnetbufferinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstnetbufferincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstnetbufferincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstnetbufferinclude_HEADERS)'; test -n "$(libgstnetbufferincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstnetbufferincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstnetbufferincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstnetbufferincludedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
* Set just the address bytes stored in @naddr into @address.
*
* Note that @port must be expressed in network byte order, use g_htons() to
- * convert it to network byte order order. IP4 address bytes must also be
+ * convert it to network byte order. IP4 address bytes must also be
* stored in network byte order.
*
* Returns: number of bytes actually copied
pbutils-private.h
EXTRA_DIST = pbutils-marshal.list
-libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
- $(GST_LIBS)
+libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS)
libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
libgstpbutils_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
$(gir_cincludes) \
-I$(top_srcdir)/gst-libs \
-I$(top_builddir)/gst-libs \
- --add-include-path=$(srcdir)/../video \
--add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
--library=libgstpbutils-@GST_MAJORMINOR@.la \
--library-path=`$(PKG_CONFIG) --variable=libdir gstreamer-@GST_MAJORMINOR@` \
--include=Gst-@GST_MAJORMINOR@ \
--libtool="$(top_builddir)/libtool" \
--pkg gstreamer-@GST_MAJORMINOR@ \
- --pkg gstreamer-video-@GST_MAJORMINOR@ \
--pkg-export gstreamer-pbutils-@GST_MAJORMINOR@ \
--add-init-section="gst_init(NULL,NULL);" \
--output $@ \
$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
$(INTROSPECTION_COMPILER) \
--includedir=$(srcdir) \
- --includedir=$(srcdir)/../video \
--includedir=$(builddir) \
--includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)" \
"$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
-libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
+libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES = \
$(am__DEPENDENCIES_1)
am_libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS = \
libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo \
libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) \
$(nodist_libgstpbutils_@GST_MAJORMINOR@_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
libgstpbutils_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) \
--tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstpbutils_@GST_MAJORMINOR@_la_SOURCES) \
$(nodist_libgstpbutils_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pbutils-private.h
EXTRA_DIST = pbutils-marshal.list
-libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
- $(GST_LIBS)
-
+libgstpbutils_@GST_MAJORMINOR@_la_LIBADD = $(GST_LIBS)
libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
libgstpbutils_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
BUILT_SOURCES = \
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstpbutils-@GST_MAJORMINOR@.la: $(libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) $(libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstpbutils-@GST_MAJORMINOR@.la: $(libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) $(libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstpbutils_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstpbutils_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstpbutils_@GST_MAJORMINOR@_la_OBJECTS) $(libgstpbutils_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo: gstpluginsbaseversion.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo `test -f 'gstpluginsbaseversion.c' || echo '$(srcdir)/'`gstpluginsbaseversion.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstpluginsbaseversion.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstpluginsbaseversion.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo `test -f 'gstpluginsbaseversion.c' || echo '$(srcdir)/'`gstpluginsbaseversion.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstpluginsbaseversion.lo `test -f 'gstpluginsbaseversion.c' || echo '$(srcdir)/'`gstpluginsbaseversion.c
libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo: pbutils.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo `test -f 'pbutils.c' || echo '$(srcdir)/'`pbutils.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pbutils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pbutils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo `test -f 'pbutils.c' || echo '$(srcdir)/'`pbutils.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils.lo `test -f 'pbutils.c' || echo '$(srcdir)/'`pbutils.c
libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo: codec-utils.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo `test -f 'codec-utils.c' || echo '$(srcdir)/'`codec-utils.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='codec-utils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='codec-utils.c' object='libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo `test -f 'codec-utils.c' || echo '$(srcdir)/'`codec-utils.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-codec-utils.lo `test -f 'codec-utils.c' || echo '$(srcdir)/'`codec-utils.c
libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo: descriptions.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-descriptions.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo `test -f 'descriptions.c' || echo '$(srcdir)/'`descriptions.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-descriptions.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-descriptions.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='descriptions.c' object='libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='descriptions.c' object='libgstpbutils_@GST_MAJORMINOR@_la-descriptions.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo `test -f 'descriptions.c' || echo '$(srcdir)/'`descriptions.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-descriptions.lo `test -f 'descriptions.c' || echo '$(srcdir)/'`descriptions.c
libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo: encoding-profile.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo `test -f 'encoding-profile.c' || echo '$(srcdir)/'`encoding-profile.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='encoding-profile.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='encoding-profile.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo `test -f 'encoding-profile.c' || echo '$(srcdir)/'`encoding-profile.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-profile.lo `test -f 'encoding-profile.c' || echo '$(srcdir)/'`encoding-profile.c
libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo: encoding-target.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo `test -f 'encoding-target.c' || echo '$(srcdir)/'`encoding-target.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='encoding-target.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='encoding-target.c' object='libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo `test -f 'encoding-target.c' || echo '$(srcdir)/'`encoding-target.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-encoding-target.lo `test -f 'encoding-target.c' || echo '$(srcdir)/'`encoding-target.c
libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo: install-plugins.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo `test -f 'install-plugins.c' || echo '$(srcdir)/'`install-plugins.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='install-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='install-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo `test -f 'install-plugins.c' || echo '$(srcdir)/'`install-plugins.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-install-plugins.lo `test -f 'install-plugins.c' || echo '$(srcdir)/'`install-plugins.c
libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo: missing-plugins.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo `test -f 'missing-plugins.c' || echo '$(srcdir)/'`missing-plugins.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='missing-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='missing-plugins.c' object='libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo `test -f 'missing-plugins.c' || echo '$(srcdir)/'`missing-plugins.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-missing-plugins.lo `test -f 'missing-plugins.c' || echo '$(srcdir)/'`missing-plugins.c
libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo: gstdiscoverer.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiscoverer.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdiscoverer.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer.lo `test -f 'gstdiscoverer.c' || echo '$(srcdir)/'`gstdiscoverer.c
libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo: gstdiscoverer-types.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdiscoverer-types.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdiscoverer-types.c' object='libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-gstdiscoverer-types.lo `test -f 'gstdiscoverer-types.c' || echo '$(srcdir)/'`gstdiscoverer-types.c
libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo: pbutils-enumtypes.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo `test -f 'pbutils-enumtypes.c' || echo '$(srcdir)/'`pbutils-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pbutils-enumtypes.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pbutils-enumtypes.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo `test -f 'pbutils-enumtypes.c' || echo '$(srcdir)/'`pbutils-enumtypes.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-enumtypes.lo `test -f 'pbutils-enumtypes.c' || echo '$(srcdir)/'`pbutils-enumtypes.c
libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo: pbutils-marshal.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo -MD -MP -MF $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.Tpo -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo `test -f 'pbutils-marshal.c' || echo '$(srcdir)/'`pbutils-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.Tpo $(DEPDIR)/libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pbutils-marshal.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pbutils-marshal.c' object='libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo `test -f 'pbutils-marshal.c' || echo '$(srcdir)/'`pbutils-marshal.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) $(libgstpbutils_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstpbutils_@GST_MAJORMINOR@_la-pbutils-marshal.lo `test -f 'pbutils-marshal.c' || echo '$(srcdir)/'`pbutils-marshal.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstpbutils_@GST_MAJORMINOR@includeHEADERS: $(libgstpbutils_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstpbutils_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
install-nodist_libgstpbutils_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstpbutils_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(nodist_libgstpbutils_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstpbutils_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstpbutils_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
@HAVE_INTROSPECTION_TRUE@ $(gir_cincludes) \
@HAVE_INTROSPECTION_TRUE@ -I$(top_srcdir)/gst-libs \
@HAVE_INTROSPECTION_TRUE@ -I$(top_builddir)/gst-libs \
-@HAVE_INTROSPECTION_TRUE@ --add-include-path=$(srcdir)/../video \
@HAVE_INTROSPECTION_TRUE@ --add-include-path=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
@HAVE_INTROSPECTION_TRUE@ --library=libgstpbutils-@GST_MAJORMINOR@.la \
@HAVE_INTROSPECTION_TRUE@ --library-path=`$(PKG_CONFIG) --variable=libdir gstreamer-@GST_MAJORMINOR@` \
@HAVE_INTROSPECTION_TRUE@ --include=Gst-@GST_MAJORMINOR@ \
@HAVE_INTROSPECTION_TRUE@ --libtool="$(top_builddir)/libtool" \
@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-@GST_MAJORMINOR@ \
-@HAVE_INTROSPECTION_TRUE@ --pkg gstreamer-video-@GST_MAJORMINOR@ \
@HAVE_INTROSPECTION_TRUE@ --pkg-export gstreamer-pbutils-@GST_MAJORMINOR@ \
@HAVE_INTROSPECTION_TRUE@ --add-init-section="gst_init(NULL,NULL);" \
@HAVE_INTROSPECTION_TRUE@ --output $@ \
@HAVE_INTROSPECTION_TRUE@ $(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER) \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir) \
-@HAVE_INTROSPECTION_TRUE@ --includedir=$(srcdir)/../video \
@HAVE_INTROSPECTION_TRUE@ --includedir=$(builddir) \
@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-@GST_MAJORMINOR@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
#include "pbutils.h"
+#include <string.h>
+
#define GST_SIMPLE_CAPS_HAS_NAME(caps,name) \
gst_structure_has_name(gst_caps_get_structure((caps),0),(name))
gst_codec_utils_aac_get_sample_rate_from_index (guint sr_idx)
{
static const guint aac_sample_rates[] = { 96000, 88200, 64000, 48000, 44100,
- 32000, 24000, 22050, 16000, 12000, 11025, 8000
+ 32000, 24000, 22050, 16000, 12000, 11025, 8000, 7350
};
if (G_LIKELY (sr_idx < G_N_ELEMENTS (aac_sample_rates)))
}
/**
+ * gst_codec_utils_h264_get_level_idc:
+ * @level: A level string from caps
+ *
+ * Transform a level string from the caps into the level_idc
+ *
+ * Returns: the level_idc or 0 if the level is unknown
+ *
+ * Since: 0.10.36
+ */
+guint8
+gst_codec_utils_h264_get_level_idc (const gchar * level)
+{
+ g_return_val_if_fail (level != NULL, 0);
+
+ if (!strcmp (level, "1"))
+ return 10;
+ else if (!strcmp (level, "1b"))
+ return 9;
+ else if (!strcmp (level, "1.1"))
+ return 11;
+ else if (!strcmp (level, "1.2"))
+ return 12;
+ else if (!strcmp (level, "1.3"))
+ return 13;
+ else if (!strcmp (level, "2"))
+ return 20;
+ else if (!strcmp (level, "2.1"))
+ return 21;
+ else if (!strcmp (level, "2.2"))
+ return 22;
+ else if (!strcmp (level, "3"))
+ return 30;
+ else if (!strcmp (level, "3.1"))
+ return 31;
+ else if (!strcmp (level, "3.2"))
+ return 32;
+ else if (!strcmp (level, "4"))
+ return 40;
+ else if (!strcmp (level, "4.1"))
+ return 41;
+ else if (!strcmp (level, "4.2"))
+ return 42;
+ else if (!strcmp (level, "5"))
+ return 50;
+ else if (!strcmp (level, "5.1"))
+ return 51;
+
+ GST_WARNING ("Invalid level %s", level);
+ return 0;
+}
+
+/**
* gst_codec_utils_h264_caps_set_level_and_profile:
* @caps: the #GstCaps to which the level and profile are to be added
* @sps: Pointer to the sequence parameter set for the stream.
const gchar *
gst_codec_utils_mpeg4video_get_level (const guint8 * vis_obj_seq, guint len)
{
- /* The profile/level codes are from 14496-2, table G-1, and the Wireshark
- * sources: epan/dissectors/packet-mp4ves.c
+ /* The profile/level codes are from 14496-2, table G-1, the Wireshark
+ * sources: epan/dissectors/packet-mp4ves.c and the Xvid Sources:
+ * src/xvid.h.
+ * Levels 4a and 5 for SP were added in Amendment 2, level 6 in Amendment 4
+ * (see Xvid sources vfw/config.c)
*
* Each profile has a different maximum level it defines. Some of them still
* need special case handling, because not all levels start from 1, and the
* Simple profile defines an intermediate level as well. */
- static const int level_max[] = { 3, 2, 2, 4, 2, 1, 2, 2, 2, 4, 3, 4, 2, 3, 4,
+ static const int level_max[] = { 6, 2, 2, 4, 2, 1, 2, 2, 2, 4, 3, 4, 2, 3, 4,
5
};
int profile_id, level_id;
break;
case 0xf:
- if (level_id == 7 && level_id > 0xd)
+ if (level_id == 6 || level_id == 7 || level_id > 0xd)
return NULL;
break;
}
else if (profile_id == 0 && level_id == 9)
/* Simple Profile / Level 0b */
return "0b";
+ else if (profile_id == 0 && level_id == 4)
+ /* Simple Profile / Level 4a */
+ return "4a";
+ else if (profile_id == 0xf && level_id > 7)
+ /* Fine Granularity Scalable Profile */
+ return digit_to_string (level_id - 8);
else if (level_id <= level_max[profile_id])
/* Levels for all other cases */
return digit_to_string (level_id);
const gchar * gst_codec_utils_h264_get_level (const guint8 * sps, guint len);
+guint8 gst_codec_utils_h264_get_level_idc (const gchar * level);
+
gboolean gst_codec_utils_h264_caps_set_level_and_profile (GstCaps * caps,
const guint8 * sps,
guint len);
{"video/sp5x", "Sunplus JPEG 5.x", 0},
{"video/vivo", "Vivo", 0},
{"video/x-3ivx", "3ivx", 0},
- {"video/x-4xm", "4X Techologies Video", 0},
+ {"video/x-4xm", "4X Technologies Video", 0},
{"video/x-apple-video", "Apple video", 0},
{"video/x-aasc", "Autodesk Animator", 0},
{"video/x-camtasia", "TechSmith Camtasia", 0},
{"image/x-quicktime", "QuickTime Image Format (QTIF)", 0},
{"image/x-sun-raster", "Sun Raster Format (RAS)", 0},
{"image/x-tga", "TGA", 0},
+ {"image/vnd.wap.wbmp", "Wireless Bitmap", 0},
/* subtitle formats with static descriptions */
{"application/x-ass", "ASS", 0},
* @prof: a #GstEncodingVideoProfile
* @variableframerate: a boolean
*
- * If set to %TRUE, then the incoming streamm will be allowed to have non-constant
+ * If set to %TRUE, then the incoming stream will be allowed to have non-constant
* framerate. If set to %FALSE (default value), then the incoming stream will
* be normalized by dropping/duplicating frames in order to produce a
* constance framerate.
return FALSE;
}
+
+/**
+ * gst_encoding_profile_from_discoverer:
+ * @info: (transfer none): The #GstDiscovererInfo to read from
+ *
+ * Creates a #GstEncodingProfile matching the formats from the given
+ * #GstEncodingProfile. Streams other than audio or video (eg,
+ * subtitles), are currently ignored.
+ *
+ * Returns: (transfer full): The new #GstEncodingProfile or %NULL.
+ *
+ * Since: 0.10.36
+ */
+GstEncodingProfile *
+gst_encoding_profile_from_discoverer (GstDiscovererInfo * info)
+{
+ GstEncodingContainerProfile *profile;
+ GstDiscovererStreamInfo *sinfo;
+ GList *streams, *stream;
+ GstCaps *caps = NULL;
+
+ if (!info || gst_discoverer_info_get_result (info) != GST_DISCOVERER_OK)
+ return NULL;
+
+ sinfo = gst_discoverer_info_get_stream_info (info);
+ if (!sinfo)
+ return NULL;
+
+ caps = gst_discoverer_stream_info_get_caps (sinfo);
+ GST_LOG ("Container: %" GST_PTR_FORMAT "\n", caps);
+ profile =
+ gst_encoding_container_profile_new ("auto-generated",
+ "Automatically generated from GstDiscovererInfo", caps, NULL);
+ gst_caps_unref (caps);
+ if (!profile) {
+ GST_ERROR ("Failed to create container profile from caps %" GST_PTR_FORMAT,
+ caps);
+ return NULL;
+ }
+
+ streams =
+ gst_discoverer_container_info_get_streams (GST_DISCOVERER_CONTAINER_INFO
+ (sinfo));
+ for (stream = streams; stream; stream = stream->next) {
+ GstEncodingProfile *sprofile = NULL;
+ sinfo = (GstDiscovererStreamInfo *) stream->data;
+ caps = gst_discoverer_stream_info_get_caps (sinfo);
+ GST_LOG ("Stream: %" GST_PTR_FORMAT "\n", caps);
+ if (GST_IS_DISCOVERER_AUDIO_INFO (sinfo)) {
+ sprofile =
+ (GstEncodingProfile *) gst_encoding_audio_profile_new (caps, NULL,
+ NULL, 0);
+ } else if (GST_IS_DISCOVERER_VIDEO_INFO (sinfo)) {
+ sprofile =
+ (GstEncodingProfile *) gst_encoding_video_profile_new (caps, NULL,
+ NULL, 0);
+ } else {
+ /* subtitles or other ? ignore for now */
+ }
+ if (sprofile)
+ gst_encoding_container_profile_add_profile (profile, sprofile);
+ else
+ GST_ERROR ("Failed to create stream profile from caps %" GST_PTR_FORMAT,
+ caps);
+ gst_caps_unref (caps);
+ }
+ gst_discoverer_stream_info_list_free (streams);
+
+ return (GstEncodingProfile *) profile;
+}
G_BEGIN_DECLS
#include <gst/pbutils/pbutils-enumtypes.h>
+#include <gst/pbutils/gstdiscoverer.h>
/**
* GstEncodingProfile:
guint pass);
void gst_encoding_video_profile_set_variableframerate (GstEncodingVideoProfile *prof,
gboolean variableframerate);
+
+GstEncodingProfile * gst_encoding_profile_from_discoverer (GstDiscovererInfo *info);
+
G_END_DECLS
#endif /* __GST_PROFILE_H__ */
*) sprof, variableframerate);
gst_encoding_video_profile_set_pass ((GstEncodingVideoProfile *) sprof,
pass);
+ gst_encoding_profile_set_name (sprof, pname);
+ gst_encoding_profile_set_description (sprof, description);
} else if (!g_strcmp0 (proftype, "audio")) {
sprof =
(GstEncodingProfile *) gst_encoding_audio_profile_new (formatcaps,
preset, restrictioncaps, presence);
+ gst_encoding_profile_set_name (sprof, pname);
+ gst_encoding_profile_set_description (sprof, description);
} else
GST_ERROR ("Unknown profile format '%s'", proftype);
* GST_ENCODING_CATEGORY_DEVICE:
*
* #GstEncodingTarget category for device-specific targets.
- * The name of the target will usually be the contructor and model of the device,
+ * The name of the target will usually be the constructor and model of the device,
* and that target will contain #GstEncodingProfiles suitable for that device.
*/
#define GST_ENCODING_CATEGORY_DEVICE "device"
static GstDiscovererVideoInfo
* gst_discoverer_video_info_copy_int (GstDiscovererVideoInfo * ptr);
+static GstDiscovererSubtitleInfo
+ * gst_discoverer_subtitle_info_copy_int (GstDiscovererSubtitleInfo * ptr);
+
/* Per-stream information */
G_DEFINE_TYPE (GstDiscovererStreamInfo, gst_discoverer_stream_info,
ret = (GstDiscovererStreamInfo *)
gst_discoverer_video_info_copy_int ((GstDiscovererVideoInfo *) info);
+ } else if (ltyp == GST_TYPE_DISCOVERER_SUBTITLE_INFO) {
+ ret = (GstDiscovererStreamInfo *)
+ gst_discoverer_subtitle_info_copy_int ((GstDiscovererSubtitleInfo *)
+ info);
+
} else
ret = gst_discoverer_stream_info_new ();
GST_TYPE_DISCOVERER_STREAM_INFO);
static void
+gst_discoverer_audio_info_finalize (GstDiscovererAudioInfo * info)
+{
+ g_free (info->language);
+ gst_discoverer_stream_info_finalize ((GstDiscovererStreamInfo *) info);
+}
+
+static void
gst_discoverer_audio_info_class_init (GstDiscovererAudioInfoClass * klass)
{
- /* Nothing to initialize */
+ klass->finalize =
+ (GstMiniObjectFinalizeFunction) gst_discoverer_audio_info_finalize;
}
static void
gst_discoverer_audio_info_init (GstDiscovererAudioInfo * info)
{
- /* Nothing to initialize */
+ info->language = NULL;
}
static GstDiscovererAudioInfo *
ret->depth = ptr->depth;
ret->bitrate = ptr->bitrate;
ret->max_bitrate = ptr->max_bitrate;
+ ret->language = g_strdup (ptr->language);
+
+ return ret;
+}
+
+/* Subtitle information */
+G_DEFINE_TYPE (GstDiscovererSubtitleInfo, gst_discoverer_subtitle_info,
+ GST_TYPE_DISCOVERER_STREAM_INFO);
+
+static void
+gst_discoverer_subtitle_info_init (GstDiscovererSubtitleInfo * info)
+{
+ info->language = NULL;
+}
+
+static void
+gst_discoverer_subtitle_info_finalize (GstDiscovererSubtitleInfo * info)
+{
+ g_free (info->language);
+ gst_discoverer_stream_info_finalize ((GstDiscovererStreamInfo *) info);
+}
+
+static void
+gst_discoverer_subtitle_info_class_init (GstMiniObjectClass * klass)
+{
+ klass->finalize =
+ (GstMiniObjectFinalizeFunction) gst_discoverer_subtitle_info_finalize;
+}
+
+static GstDiscovererSubtitleInfo *
+gst_discoverer_subtitle_info_new (void)
+{
+ return (GstDiscovererSubtitleInfo *)
+ gst_mini_object_new (GST_TYPE_DISCOVERER_SUBTITLE_INFO);
+}
+
+static GstDiscovererSubtitleInfo *
+gst_discoverer_subtitle_info_copy_int (GstDiscovererSubtitleInfo * ptr)
+{
+ GstDiscovererSubtitleInfo *ret;
+
+ ret = gst_discoverer_subtitle_info_new ();
+
+ ret->language = g_strdup (ptr->language);
return ret;
}
gst_discoverer_info_copy (GstDiscovererInfo * ptr)
{
GstDiscovererInfo *ret;
- GHashTable *stream_map = g_hash_table_new (g_direct_hash, NULL);
+ GHashTable *stream_map;
GList *tmp;
g_return_val_if_fail (ptr != NULL, NULL);
+ stream_map = g_hash_table_new (g_direct_hash, NULL);
+
ret = gst_discoverer_info_new ();
ret->uri = g_strdup (ptr->uri);
}
/**
+ * gst_discoverer_info_get_subtitle_streams:
+ * @info: a #GstDiscovererInfo
+ *
+ * Finds all the #GstDiscovererSubtitleInfo contained in @info
+ *
+ * Returns: (transfer full) (element-type Gst.DiscovererStreamInfo): A #GList of
+ * matching #GstDiscovererStreamInfo. The caller should free it with
+ * gst_discoverer_stream_info_list_free().
+ *
+ * Since: 0.10.36
+ */
+GList *
+gst_discoverer_info_get_subtitle_streams (GstDiscovererInfo * info)
+{
+ return gst_discoverer_info_get_streams (info,
+ GST_TYPE_DISCOVERER_SUBTITLE_INFO);
+}
+
+/**
* gst_discoverer_info_get_container_streams:
* @info: a #GstDiscovererInfo
*
else
return "video";
}
+ if (GST_IS_DISCOVERER_SUBTITLE_INFO (info))
+ return "subtitles";
return "unknown";
}
AUDIO_INFO_ACCESSOR_CODE (max_bitrate, guint, 0);
+/**
+ * gst_discoverer_audio_info_get_language:
+ * @info: a #GstDiscovererAudioInfo
+ *
+ * Returns: the language of the stream, or NULL if unknown.
+ *
+ * Since: 0.10.36
+ */
+
+AUDIO_INFO_ACCESSOR_CODE (language, const gchar *, NULL);
+
/* GstDiscovererVideoInfo */
#define VIDEO_INFO_ACCESSOR_CODE(fieldname, type, failval) \
return info->is_image;
}
+/* GstDiscovererSubtitleInfo */
+
+#define SUBTITLE_INFO_ACCESSOR_CODE(fieldname, type, failval) \
+ GENERIC_ACCESSOR_CODE(gst_discoverer_subtitle_info, GstDiscovererSubtitleInfo*, \
+ GST_TYPE_DISCOVERER_SUBTITLE_INFO, \
+ fieldname, type, failval)
+
+/**
+ * gst_discoverer_subtitle_info_get_language:
+ * @info: a #GstDiscovererSubtitleInfo
+ *
+ * Returns: the language of the stream, or NULL if unknown.
+ *
+ * Since: 0.10.36
+ */
+
+SUBTITLE_INFO_ACCESSOR_CODE (language, const gchar *, NULL);
+
/* GstDiscovererInfo */
#define DISCOVERER_INFO_ACCESSOR_CODE(fieldname, type, failval) \
* gst_discoverer_info_get_seekable:
* @info: a #GstDiscovererInfo
*
- * Returns: the wheter the URI is seekable.
+ * Returns: the whether the URI is seekable.
*
* Since: 0.10.32
*/
* gst_discoverer_info_get_tags:
* @info: a #GstDiscovererInfo
*
- * Returns: (transfer none): all tags contained in the %URI. If you wish to use
+ * Returns: (transfer none): all tags contained in the URI. If you wish to use
* the tags after the life-time of @info, you will need to copy them.
*
* Since: 0.10.31
#include "config.h"
#endif
-#include <gst/video/video.h>
#include "pbutils.h"
#include "pbutils-marshal.h"
#include "pbutils-private.h"
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (discoverer_debug);
#define GST_CAT_DEFAULT discoverer_debug
return TRUE;
}
+static GstStaticCaps subtitle_caps = GST_STATIC_CAPS ("text/plain; "
+ "text/x-pango-markup; subpicture/x-pgs; subpicture/x-dvb; "
+ "application/x-subtitle-unknown; application/x-ssa; application/x-ass; "
+ "subtitle/x-kate; application/x-kate; video/x-dvd-subpicture");
+
+static gboolean
+is_subtitle_caps (const GstCaps * caps)
+{
+ GstCaps *subs_caps;
+ gboolean ret;
+
+ subs_caps = gst_static_caps_get (&subtitle_caps);
+ ret = gst_caps_can_intersect (caps, subs_caps);
+ gst_caps_unref (subs_caps);
+
+ return ret;
+}
+
static void
uridecodebin_pad_added_cb (GstElement * uridecodebin, GstPad * pad,
GstDiscoverer * dc)
PrivateStream *ps;
GstPad *sinkpad = NULL;
GstCaps *caps;
- static GstCaps *subs_caps = NULL;
-
- if (!subs_caps) {
- subs_caps = gst_caps_from_string ("text/plain; text/x-pango-markup; "
- "subpicture/x-pgs; subpicture/x-dvb; application/x-subtitle-unknown; "
- "application/x-ssa; application/x-ass; subtitle/x-kate; "
- "video/x-dvd-subpicture; ");
- }
GST_DEBUG_OBJECT (dc, "pad %s:%s", GST_DEBUG_PAD_NAME (pad));
caps = gst_pad_get_caps_reffed (pad);
- if (gst_caps_can_intersect (caps, subs_caps)) {
- /* Subtitle streams are sparse and don't provide any information - don't
+ if (is_subtitle_caps (caps)) {
+ /* Subtitle streams are sparse and may not provide any information - don't
* wait for data to preroll */
g_object_set (ps->sink, "async", FALSE, NULL);
}
gst_caps_unref (caps);
}
if (ps->tags)
- gst_structure_id_set (st, _TAGS_QUARK, GST_TYPE_STRUCTURE, ps->tags, NULL);
+ gst_structure_id_set (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, ps->tags, NULL);
return st;
}
+/* takes ownership of new_tags, may replace *taglist with a new one */
+static void
+gst_discoverer_merge_and_replace_tags (GstTagList ** taglist,
+ GstTagList * new_tags)
+{
+ if (new_tags == NULL)
+ return;
+
+ if (*taglist == NULL) {
+ *taglist = new_tags;
+ return;
+ }
+
+ gst_tag_list_insert (*taglist, new_tags, GST_TAG_MERGE_REPLACE);
+ gst_tag_list_free (new_tags);
+}
+
/* Parses a set of caps and tags in st and populates a GstDiscovererStreamInfo
* structure (parent, if !NULL, otherwise it allocates one)
*/
GstDiscovererStreamInfo * parent)
{
GstCaps *caps;
- GstStructure *caps_st, *tags_st;
+ GstStructure *caps_st;
+ GstTagList *tags_st;
const gchar *name;
int tmp, tmp2;
guint utmp;
- gboolean btmp;
if (!st || !gst_structure_id_has_field (st, _CAPS_QUARK)) {
GST_WARNING ("Couldn't find caps !");
if (parent)
- return parent;
+ return gst_discoverer_stream_info_ref (parent);
else
return (GstDiscovererStreamInfo *)
gst_mini_object_new (GST_TYPE_DISCOVERER_STREAM_INFO);
GstDiscovererAudioInfo *info;
if (parent)
- info = (GstDiscovererAudioInfo *) parent;
+ info = (GstDiscovererAudioInfo *) gst_discoverer_stream_info_ref (parent);
else {
info = (GstDiscovererAudioInfo *)
gst_mini_object_new (GST_TYPE_DISCOVERER_AUDIO_INFO);
- info->parent.caps = caps;
+ info->parent.caps = gst_caps_ref (caps);
}
if (gst_structure_get_int (caps_st, "rate", &tmp))
info->depth = (guint) tmp;
if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
- gst_structure_id_get (st, _TAGS_QUARK,
- GST_TYPE_STRUCTURE, &tags_st, NULL);
+ gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
if (gst_structure_get_uint (tags_st, GST_TAG_BITRATE, &utmp) ||
gst_structure_get_uint (tags_st, GST_TAG_NOMINAL_BITRATE, &utmp))
info->bitrate = utmp;
info->max_bitrate = utmp;
/* FIXME: Is it worth it to remove the tags we've parsed? */
- info->parent.tags = gst_tag_list_merge (info->parent.tags,
- (GstTagList *) tags_st, GST_TAG_MERGE_REPLACE);
+ gst_discoverer_merge_and_replace_tags (&info->parent.tags, tags_st);
+ }
- gst_structure_free (tags_st);
+ if (!info->language && ((GstDiscovererStreamInfo *) info)->tags) {
+ gchar *language;
+ if (gst_tag_list_get_string (((GstDiscovererStreamInfo *) info)->tags,
+ GST_TAG_LANGUAGE_CODE, &language)) {
+ info->language = language;
+ }
}
+ gst_caps_unref (caps);
return (GstDiscovererStreamInfo *) info;
} else if (g_str_has_prefix (name, "video/") ||
g_str_has_prefix (name, "image/")) {
GstDiscovererVideoInfo *info;
- GstVideoFormat format;
if (parent)
- info = (GstDiscovererVideoInfo *) parent;
+ info = (GstDiscovererVideoInfo *) gst_discoverer_stream_info_ref (parent);
else {
info = (GstDiscovererVideoInfo *)
gst_mini_object_new (GST_TYPE_DISCOVERER_VIDEO_INFO);
- info->parent.caps = caps;
+ info->parent.caps = gst_caps_ref (caps);
}
- if (gst_video_format_parse_caps (caps, &format, &tmp, &tmp2)) {
+ if (gst_structure_get_int (caps_st, "width", &tmp) &&
+ gst_structure_get_int (caps_st, "height", &tmp2)) {
info->width = (guint) tmp;
info->height = (guint) tmp2;
}
if (gst_structure_get_int (caps_st, "depth", &tmp))
info->depth = (guint) tmp;
- if (gst_video_parse_caps_pixel_aspect_ratio (caps, &tmp, &tmp2)) {
+ if (gst_structure_get_fraction (caps_st, "pixel-aspect-ratio", &tmp, &tmp2)) {
info->par_num = tmp;
info->par_denom = tmp2;
+ } else {
+ info->par_num = 1;
+ info->par_denom = 1;
}
- if (gst_video_parse_caps_framerate (caps, &tmp, &tmp2)) {
+ if (gst_structure_get_fraction (caps_st, "framerate", &tmp, &tmp2)) {
info->framerate_num = tmp;
info->framerate_denom = tmp2;
}
- if (gst_video_format_parse_caps_interlaced (caps, &btmp))
- info->interlaced = btmp;
+ if (!gst_structure_get_boolean (caps_st, "interlaced", &info->interlaced))
+ info->interlaced = FALSE;
if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
- gst_structure_id_get (st, _TAGS_QUARK,
- GST_TYPE_STRUCTURE, &tags_st, NULL);
+ gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
if (gst_structure_get_uint (tags_st, GST_TAG_BITRATE, &utmp) ||
gst_structure_get_uint (tags_st, GST_TAG_NOMINAL_BITRATE, &utmp))
info->bitrate = utmp;
info->max_bitrate = utmp;
/* FIXME: Is it worth it to remove the tags we've parsed? */
- info->parent.tags = gst_tag_list_merge (info->parent.tags,
- (GstTagList *) tags_st, GST_TAG_MERGE_REPLACE);
- gst_structure_free (tags_st);
+ gst_discoverer_merge_and_replace_tags (&info->parent.tags,
+ (GstTagList *) tags_st);
}
+ gst_caps_unref (caps);
+ return (GstDiscovererStreamInfo *) info;
+
+ } else if (is_subtitle_caps (caps)) {
+ GstDiscovererSubtitleInfo *info;
+
+ if (parent)
+ info =
+ (GstDiscovererSubtitleInfo *) gst_discoverer_stream_info_ref (parent);
+ else {
+ info = (GstDiscovererSubtitleInfo *)
+ gst_mini_object_new (GST_TYPE_DISCOVERER_SUBTITLE_INFO);
+ info->parent.caps = gst_caps_ref (caps);
+ }
+
+ if (gst_structure_id_has_field (st, _TAGS_QUARK)) {
+ const gchar *language;
+
+ gst_structure_id_get (st, _TAGS_QUARK, GST_TYPE_TAG_LIST, &tags_st, NULL);
+
+ language = gst_structure_get_string (caps_st, GST_TAG_LANGUAGE_CODE);
+ if (language)
+ info->language = g_strdup (language);
+
+ /* FIXME: Is it worth it to remove the tags we've parsed? */
+ gst_discoverer_merge_and_replace_tags (&info->parent.tags, tags_st);
+ }
+
+ if (!info->language && ((GstDiscovererStreamInfo *) info)->tags) {
+ gchar *language;
+ if (gst_tag_list_get_string (((GstDiscovererStreamInfo *) info)->tags,
+ GST_TAG_LANGUAGE_CODE, &language)) {
+ info->language = language;
+ }
+ }
+
+ gst_caps_unref (caps);
return (GstDiscovererStreamInfo *) info;
} else {
GstDiscovererStreamInfo *info;
if (parent)
- info = parent;
+ info = gst_discoverer_stream_info_ref (parent);
else {
info = (GstDiscovererStreamInfo *)
gst_mini_object_new (GST_TYPE_DISCOVERER_STREAM_INFO);
- info->caps = caps;
+ info->caps = gst_caps_ref (caps);
}
if (gst_structure_id_get (st, _TAGS_QUARK,
- GST_TYPE_STRUCTURE, &tags_st, NULL)) {
- info->tags = gst_tag_list_merge (info->tags, (GstTagList *) tags_st,
- GST_TAG_MERGE_REPLACE);
- gst_structure_free (tags_st);
+ GST_TYPE_TAG_LIST, &tags_st, NULL)) {
+ gst_discoverer_merge_and_replace_tags (&info->tags, tags_st);
}
+ gst_caps_unref (caps);
return info;
}
gst_structure_id_get (topology, _TOPOLOGY_PAD_QUARK,
GST_TYPE_PAD, &pad, NULL);
- if (!dc->priv->streams)
+ if (!dc->priv->streams) {
+ gst_object_unref (pad);
return NULL;
+ }
for (i = 0, tmp = dc->priv->streams; tmp; tmp = tmp->next, i++) {
ps = (PrivateStream *) tmp->data;
}
static gboolean
-child_is_raw_stream (GstCaps * parent, GstCaps * child)
+child_is_raw_stream (const GstCaps * parent, const GstCaps * child)
{
- GstStructure *st1, *st2;
+ const GstStructure *st1, *st2;
const gchar *name1, *name2;
st1 = gst_caps_get_structure (parent, 0);
return TRUE;
}
+ if (is_subtitle_caps (parent))
+ return TRUE;
+
return FALSE;
}
/* We sometimes get an extra sub-stream from the parser. If this is
* the case, we just replace the parent caps with this stream's caps
* since they might contain more information */
- gst_caps_unref (parent->caps);
- parent->caps = caps;
+ gst_caps_replace (&parent->caps, caps);
parse_stream_topology (dc, st, parent);
add_to_list = FALSE;
-
} else if (child_is_raw_stream (parent->caps, caps)) {
/* This is the "raw" stream corresponding to the parent. This
* contains more information than the parent, tags etc. */
parse_stream_topology (dc, st, parent);
add_to_list = FALSE;
- gst_caps_unref (caps);
-
} else {
GstDiscovererStreamInfo *next = parse_stream_topology (dc, st, NULL);
res->next = next;
next->previous = res;
}
+ gst_caps_unref (caps);
}
}
if (add_to_list) {
dc->priv->current_info->stream_list =
g_list_append (dc->priv->current_info->stream_list, res);
+ } else {
+ gst_discoverer_stream_info_unref (res);
}
} else if (GST_VALUE_HOLDS_LIST (nval)) {
GstTagList *tmp;
gst_structure_id_get (topology, _TAGS_QUARK,
- GST_TYPE_STRUCTURE, &tags, NULL);
+ GST_TYPE_TAG_LIST, &tags, NULL);
GST_DEBUG ("Merge tags %" GST_PTR_FORMAT, tags);
GST_DEBUG ("Got duration %" GST_TIME_FORMAT, GST_TIME_ARGS (dur));
dc->priv->current_info->duration = (guint64) dur;
}
+ } else {
+ GstStateChangeReturn sret;
+
+ /* Some parsers may not even return a rough estimate right away, e.g.
+ * because they've only processed a single frame so far, so if we
+ * didn't get a duration the first time, spin a bit and try again.
+ * Ugly, but still better than making parsers or other elements return
+ * completely bogus values. We need some API extensions to solve this
+ * better. */
+ GST_INFO ("No duration yet, try a bit harder..");
+ sret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
+ if (sret != GST_STATE_CHANGE_FAILURE) {
+ int i;
+
+ for (i = 0; i < 2; ++i) {
+ g_usleep (G_USEC_PER_SEC / 20);
+ if (gst_element_query_duration (pipeline, &format, &dur) &&
+ format == GST_FORMAT_TIME && dur > 0) {
+ GST_DEBUG ("Got duration %" GST_TIME_FORMAT, GST_TIME_ARGS (dur));
+ dc->priv->current_info->duration = (guint64) dur;
+ break;
+ }
+ }
+ gst_element_set_state (pipeline, GST_STATE_PAUSED);
+ }
}
if (dc->priv->seeking_query) {
* caps named image/<foo> (th exception being MJPEG video which is also
* type image/jpeg), and should consist of precisely one stream (actually
* initially there are 2, the image and raw stream, but we squash these
- * while parsing the stream topology). At some ponit, if we find that these
+ * while parsing the stream topology). At some point, if we find that these
* conditions are not sufficient, we can count the number of decoders and
* parsers in the chain, and if there's more than one decoder, or any
* parser at all, we should not mark this as an image.
gst_caps_get_structure (dc->priv->current_info->stream_info->caps, 0);
if (g_str_has_prefix (gst_structure_get_name (st), "image/"))
- ((GstDiscovererVideoInfo *) dc->priv->current_info->
- stream_info)->is_image = TRUE;
+ ((GstDiscovererVideoInfo *) dc->priv->current_info->stream_info)->
+ is_image = TRUE;
}
}
{
GSource *source;
static GSourceCallbackFuncs cb_funcs = {
- .ref = _void_g_object_ref,
- .unref = g_object_unref,
- .get = get_async_cb,
+ _void_g_object_ref,
+ g_object_unref,
+ get_async_cb,
};
/* Attach a timeout to the main context */
GST_DEBUG_OBJECT (GST_MESSAGE_SRC (msg),
"Setting result to MISSING_PLUGINS");
dc->priv->current_info->result = GST_DISCOVERER_MISSING_PLUGINS;
+ if (dc->priv->current_info->misc)
+ gst_structure_free (dc->priv->current_info->misc);
dc->priv->current_info->misc = gst_structure_copy (msg->structure);
} else if (sttype == _STREAM_TOPOLOGY_QUARK) {
+ if (dc->priv->current_topology)
+ gst_structure_free (dc->priv->current_topology);
dc->priv->current_topology = gst_structure_copy (msg->structure);
}
}
done = handle_message (dc, msg);
gst_message_unref (msg);
}
-
} while (!done && (g_timer_elapsed (timer, NULL) < deadline));
/* return result */
* A copy of @uri will be made internally, so the caller can safely g_free()
* afterwards.
*
- * Returns: %TRUE if the @uri was succesfully appended to the list of pending
+ * Returns: %TRUE if the @uri was successfully appended to the list of pending
* uris, else %FALSE
*
* Since: 0.10.31
* gst_discoverer_discover_uri:
* @discoverer: A #GstDiscoverer
* @uri: The URI to run on.
- * @err: If an error occurred, this field will be filled in.
+ * @err: (out) (allow-none): If an error occurred, this field will be filled in.
*
* Synchronously discovers the given @uri.
*
discoverer_collect (discoverer);
/* Get results */
- if (discoverer->priv->current_error)
- *err = g_error_copy (discoverer->priv->current_error);
- else
- *err = NULL;
+ if (err) {
+ if (discoverer->priv->current_error)
+ *err = g_error_copy (discoverer->priv->current_error);
+ else
+ *err = NULL;
+ }
if (res != GST_DISCOVERER_OK) {
GST_DEBUG ("Setting result to %d (was %d)", res,
discoverer->priv->current_info->result);
guint gst_discoverer_audio_info_get_depth(const GstDiscovererAudioInfo* info);
guint gst_discoverer_audio_info_get_bitrate(const GstDiscovererAudioInfo* info);
guint gst_discoverer_audio_info_get_max_bitrate(const GstDiscovererAudioInfo* info);
+const gchar * gst_discoverer_audio_info_get_language(const GstDiscovererAudioInfo* info);
/**
* GstDiscovererVideoInfo:
gboolean gst_discoverer_video_info_is_image(const GstDiscovererVideoInfo* info);
/**
+ * GstDiscovererSubtitleInfo:
+ *
+ * #GstDiscovererStreamInfo specific to subtitle streams (this includes text and
+ * image based ones).
+ *
+ * Since: 0.10.36
+ */
+#define GST_TYPE_DISCOVERER_SUBTITLE_INFO \
+ (gst_discoverer_subtitle_info_get_type ())
+#define GST_DISCOVERER_SUBTITLE_INFO(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DISCOVERER_SUBTITLE_INFO, GstDiscovererSubtitleInfo))
+#define GST_IS_DISCOVERER_SUBTITLE_INFO(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DISCOVERER_SUBTITLE_INFO))
+typedef struct _GstDiscovererSubtitleInfo GstDiscovererSubtitleInfo;
+typedef GstMiniObjectClass GstDiscovererSubtitleInfoClass;
+GType gst_discoverer_subtitle_info_get_type (void);
+
+const gchar * gst_discoverer_subtitle_info_get_language(const GstDiscovererSubtitleInfo* info);
+
+/**
* GstDiscovererResult:
* @GST_DISCOVERER_OK: The discovery was successful
* @GST_DISCOVERER_URI_INVALID: the URI is invalid
GType streamtype);
GList * gst_discoverer_info_get_audio_streams (GstDiscovererInfo *info);
GList * gst_discoverer_info_get_video_streams (GstDiscovererInfo *info);
+GList * gst_discoverer_info_get_subtitle_streams (GstDiscovererInfo *info);
GList * gst_discoverer_info_get_container_streams (GstDiscovererInfo *info);
void gst_discoverer_stream_info_list_free (GList *infos);
struct _GstDiscovererClass {
GObjectClass parentclass;
- /*< signals >*/
+ /* signals */
void (*finished) (GstDiscoverer *discoverer);
void (*starting) (GstDiscoverer *discoverer);
void (*discovered) (GstDiscoverer *discoverer,
* if you need to check at runtime what version of the gst-plugins-base
* libraries are being used / you are currently linked against.
*
- * The version macros get defined by including <gst/pbutils/pbutils.h>.
+ * The version macros get defined by including <gst/pbutils/pbutils.h>.
*/
#include "gstpluginsbaseversion.h"
*
* Result codes returned by gst_install_plugins_async() and
* gst_install_plugins_sync(), and also the result code passed to the
- * #GstInstallPluginsResultFunc specified with gst_install_plugin_async().
+ * #GstInstallPluginsResultFunc specified with gst_install_plugins_async().
*
* These codes indicate success or failure of starting an external installer
* program and to what extent the requested plugins could be installed.
guint bitrate;
guint max_bitrate;
+
+ gchar *language;
};
struct _GstDiscovererVideoInfo {
gboolean is_image;
};
+struct _GstDiscovererSubtitleInfo {
+ GstDiscovererStreamInfo parent;
+
+ gchar *language;
+};
+
struct _GstDiscovererInfo {
GstMiniObject parent;
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)"
libgstriff_@GST_MAJORMINOR@_la-riff-read.lo
libgstriff_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstriff_@GST_MAJORMINOR@_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
libgstriff_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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 = $(libgstriff_@GST_MAJORMINOR@_la_SOURCES)
DIST_SOURCES = $(libgstriff_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstriff-@GST_MAJORMINOR@.la: $(libgstriff_@GST_MAJORMINOR@_la_OBJECTS) $(libgstriff_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstriff-@GST_MAJORMINOR@.la: $(libgstriff_@GST_MAJORMINOR@_la_OBJECTS) $(libgstriff_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstriff_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstriff_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstriff_@GST_MAJORMINOR@_la_OBJECTS) $(libgstriff_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstriff_@GST_MAJORMINOR@_la-riff.lo: riff.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstriff_@GST_MAJORMINOR@_la-riff.lo -MD -MP -MF $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff.Tpo -c -o libgstriff_@GST_MAJORMINOR@_la-riff.lo `test -f 'riff.c' || echo '$(srcdir)/'`riff.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff.Tpo $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='riff.c' object='libgstriff_@GST_MAJORMINOR@_la-riff.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='riff.c' object='libgstriff_@GST_MAJORMINOR@_la-riff.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff.lo `test -f 'riff.c' || echo '$(srcdir)/'`riff.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff.lo `test -f 'riff.c' || echo '$(srcdir)/'`riff.c
libgstriff_@GST_MAJORMINOR@_la-riff-media.lo: riff-media.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstriff_@GST_MAJORMINOR@_la-riff-media.lo -MD -MP -MF $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-media.Tpo -c -o libgstriff_@GST_MAJORMINOR@_la-riff-media.lo `test -f 'riff-media.c' || echo '$(srcdir)/'`riff-media.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-media.Tpo $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-media.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='riff-media.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-media.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='riff-media.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-media.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-media.lo `test -f 'riff-media.c' || echo '$(srcdir)/'`riff-media.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-media.lo `test -f 'riff-media.c' || echo '$(srcdir)/'`riff-media.c
libgstriff_@GST_MAJORMINOR@_la-riff-read.lo: riff-read.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstriff_@GST_MAJORMINOR@_la-riff-read.lo -MD -MP -MF $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-read.Tpo -c -o libgstriff_@GST_MAJORMINOR@_la-riff-read.lo `test -f 'riff-read.c' || echo '$(srcdir)/'`riff-read.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-read.Tpo $(DEPDIR)/libgstriff_@GST_MAJORMINOR@_la-riff-read.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='riff-read.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-read.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='riff-read.c' object='libgstriff_@GST_MAJORMINOR@_la-riff-read.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-read.lo `test -f 'riff-read.c' || echo '$(srcdir)/'`riff-read.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) $(libgstriff_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstriff_@GST_MAJORMINOR@_la-riff-read.lo `test -f 'riff-read.c' || echo '$(srcdir)/'`riff-read.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstriff_@GST_MAJORMINOR@includeHEADERS: $(libgstriff_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstriff_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstriff_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstriff_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstriff_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
#define GST_RIFF_TAG_JUNQ GST_MAKE_FOURCC ('J','U','N','Q')
#define GST_RIFF_TAG_idx1 GST_MAKE_FOURCC ('i','d','x','1')
#define GST_RIFF_TAG_dmlh GST_MAKE_FOURCC ('d','m','l','h')
+#define GST_RIFF_TAG_ID32 GST_MAKE_FOURCC ('I','D','3','2')
+#define GST_RIFF_TAG_IDVX GST_MAKE_FOURCC ('I','D','V','X')
/* WAV stuff */
#define GST_RIFF_TAG_fmt GST_MAKE_FOURCC ('f','m','t',' ')
#define GST_RIFF_TAG_data GST_MAKE_FOURCC ('d','a','t','a')
#define GST_RIFF_WAVE_FORMAT_LH_CODEC (0x1100)
#define GST_RIFF_WAVE_FORMAT_NORRIS (0x1400)
#define GST_RIFF_WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS (0x1500)
+#define GST_RIFF_WAVE_FORMAT_AAC_PR (0x1601) /* Microsoft Playready */
#define GST_RIFF_WAVE_FORMAT_A52 (0x2000)
#define GST_RIFF_WAVE_FORMAT_DTS (0x2001)
#define GST_RIFF_WAVE_FORMAT_SONIC (0x2048)
case GST_RIFF_WAVE_FORMAT_AAC:
case GST_RIFF_WAVE_FORMAT_AAC_AC:
case GST_RIFF_WAVE_FORMAT_AAC_pm:
+ case GST_RIFF_WAVE_FORMAT_AAC_PR:
{
channels_max = 8;
caps = gst_caps_new_simple ("audio/mpeg",
* codec initialization data).
*
* Parses a interleaved (also known as "complex") stream´s strf
- * structure plus optionally some extradata from input data. This
+ * structure plus optionally some extradata from input data. This
* function takes ownership of @buf.
*
* Returns: TRUE if parsing succeeded, otherwise FALSE.
GstTagList *taglist;
g_return_if_fail (_taglist != NULL);
- g_return_if_fail (buf != NULL);
if (!buf) {
*_taglist = NULL;
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstrtpincludedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo
libgstrtp_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstrtp_@GST_MAJORMINOR@_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_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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_@GST_MAJORMINOR@_la_SOURCES)
DIST_SOURCES = $(libgstrtp_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstrtp-@GST_MAJORMINOR@.la: $(libgstrtp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtp_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstrtp-@GST_MAJORMINOR@.la: $(libgstrtp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstrtp_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstrtp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstrtp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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_@GST_MAJORMINOR@_la-gstrtpbuffer.lo: gstrtpbuffer.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo `test -f 'gstrtpbuffer.c' || echo '$(srcdir)/'`gstrtpbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo `test -f 'gstrtpbuffer.c' || echo '$(srcdir)/'`gstrtpbuffer.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtpbuffer.lo `test -f 'gstrtpbuffer.c' || echo '$(srcdir)/'`gstrtpbuffer.c
libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo: gstrtcpbuffer.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo `test -f 'gstrtcpbuffer.c' || echo '$(srcdir)/'`gstrtcpbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtcpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtcpbuffer.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo `test -f 'gstrtcpbuffer.c' || echo '$(srcdir)/'`gstrtcpbuffer.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtcpbuffer.lo `test -f 'gstrtcpbuffer.c' || echo '$(srcdir)/'`gstrtcpbuffer.c
libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo: gstrtppayloads.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo `test -f 'gstrtppayloads.c' || echo '$(srcdir)/'`gstrtppayloads.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtppayloads.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtppayloads.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo `test -f 'gstrtppayloads.c' || echo '$(srcdir)/'`gstrtppayloads.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstrtppayloads.lo `test -f 'gstrtppayloads.c' || echo '$(srcdir)/'`gstrtppayloads.c
libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo: gstbasertpaudiopayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo `test -f 'gstbasertpaudiopayload.c' || echo '$(srcdir)/'`gstbasertpaudiopayload.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasertpaudiopayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasertpaudiopayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo `test -f 'gstbasertpaudiopayload.c' || echo '$(srcdir)/'`gstbasertpaudiopayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpaudiopayload.lo `test -f 'gstbasertpaudiopayload.c' || echo '$(srcdir)/'`gstbasertpaudiopayload.c
libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo: gstbasertppayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo `test -f 'gstbasertppayload.c' || echo '$(srcdir)/'`gstbasertppayload.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasertppayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasertppayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo `test -f 'gstbasertppayload.c' || echo '$(srcdir)/'`gstbasertppayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertppayload.lo `test -f 'gstbasertppayload.c' || echo '$(srcdir)/'`gstbasertppayload.c
libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo: gstbasertpdepayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo -MD -MP -MF $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.Tpo -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo `test -f 'gstbasertpdepayload.c' || echo '$(srcdir)/'`gstbasertpdepayload.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.Tpo $(DEPDIR)/libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbasertpdepayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstbasertpdepayload.c' object='libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo `test -f 'gstbasertpdepayload.c' || echo '$(srcdir)/'`gstbasertpdepayload.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) $(libgstrtp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_@GST_MAJORMINOR@_la-gstbasertpdepayload.lo `test -f 'gstbasertpdepayload.c' || echo '$(srcdir)/'`gstbasertpdepayload.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstrtpincludeHEADERS: $(libgstrtpinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstrtpincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstrtpincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstrtpinclude_HEADERS)'; test -n "$(libgstrtpincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstrtpincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstrtpincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstrtpincludedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
* SECTION:gstbasertpaudiopayload
* @short_description: Base class for audio RTP payloader
*
- * <refsect2>
- * <para>
* Provides a base class for audio RTP payloaders for frame or sample based
* audio codecs (constant bitrate)
- * </para>
- * <para>
+ *
* This class derives from GstBaseRTPPayload. It can be used for payloading
* audio codecs. It will only work with constant bitrate codecs. It supports
* both frame based and sample based codecs. It takes care of packing up the
* equal to min-ptime (if set). If min-ptime is not set, any residual data is
* sent in a last RTP packet. In the case of frame based codecs, the resulting
* RTP packets always contain full frames.
- * </para>
+ *
+ * <refsect2>
* <title>Usage</title>
* <para>
* To use this base class, your child element needs to call either
GstClockTime diff;
guint64 bytes;
/* we're only going to apply a positive gap, otherwise we let the marker
- * bit do its thing. simply convert to bytes and add the the current
+ * bit do its thing. simply convert to bytes and add the current
* offset */
diff = timestamp - priv->last_timestamp;
bytes = priv->time_to_bytes (payload, diff);
gpointer _gst_reserved[GST_PADDING];
};
+/**
+ * GstBaseRTPAudioPayloadClass:
+ * @parent_class: the parent class
+ *
+ * Base class for audio RTP payloader.
+ */
struct _GstBaseRTPAudioPayloadClass
{
GstBaseRTPPayloadClass parent_class;
+ /*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
/* GStreamer
- * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org>
+ * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org>
* Copyright (C) <2005> Nokia Corporation <kai.vehmanen@nokia.com>
*
* This library is free software; you can redistribute it and/or
* SECTION:gstbasertpdepayload
* @short_description: Base class for RTP depayloader
*
- * <refsect2>
- * <para>
* Provides a base class for RTP depayloaders
- * </para>
- * </refsect2>
*/
#include "gstbasertpdepayload.h"
/* GStreamer
- * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org>
+ * Copyright (C) <2005> Philippe Khalaf <burger@speedy.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
gpointer _gst_reserved[GST_PADDING-1];
};
+/**
+ * GstBaseRTPDepayloadClass:
+ * @parent_class: the parent class
+ * @set_caps: configure the depayloader
+ * @add_to_queue: (deprecated)
+ * @process: process incoming rtp packets
+ * @set_gst_timestamp: convert from RTP timestamp to GST timestamp
+ * @packet_lost: signal the depayloader about packet loss
+ * @handle_event: custom event handling
+ *
+ * Base class for audio RTP payloader.
+ */
struct _GstBaseRTPDepayloadClass
{
GstElementClass parent_class;
* SECTION:gstbasertppayload
* @short_description: Base class for RTP payloader
*
- * <refsect2>
- * <para>
* Provides a base class for RTP payloaders
- * </para>
- * </refsect2>
*/
#ifdef HAVE_CONFIG_H
-# include "config.h"
+#include "config.h"
#endif
#include <string.h>
gboolean perfect_rtptime;
gint notified_first_timestamp;
+ guint64 base_offset;
+ gint64 base_rtime;
+
gint64 prop_max_ptime;
gint64 caps_max_ptime;
};
basertppayload->min_ptime = DEFAULT_MIN_PTIME;
basertppayload->priv->perfect_rtptime = DEFAULT_PERFECT_RTPTIME;
basertppayload->abidata.ABI.ptime_multiple = DEFAULT_PTIME_MULTIPLE;
+ basertppayload->priv->base_offset = GST_BUFFER_OFFSET_NONE;
+ basertppayload->priv->base_rtime = GST_BUFFER_OFFSET_NONE;
basertppayload->media = NULL;
basertppayload->encoding_name = NULL;
gst_segment_set_newsegment_full (segment, update, rate, arate, fmt, start,
stop, position);
+ basertppayload->priv->base_offset = GST_BUFFER_OFFSET_NONE;
+
GST_DEBUG_OBJECT (basertppayload,
"configured NEWSEGMENT update %d, rate %lf, applied rate %lf, "
"format %d, "
}
/* convert to RTP time */
- if (priv->perfect_rtptime && data.offset != GST_BUFFER_OFFSET_NONE) {
+ if (priv->perfect_rtptime && data.offset != GST_BUFFER_OFFSET_NONE &&
+ priv->base_offset != GST_BUFFER_OFFSET_NONE) {
/* if we have an offset, use that for making an RTP timestamp */
- data.rtptime = payload->ts_base + data.offset;
+ data.rtptime = payload->ts_base + priv->base_rtime +
+ data.offset - priv->base_offset;
GST_LOG_OBJECT (payload,
"Using offset %" G_GUINT64_FORMAT " for RTP timestamp", data.offset);
} else if (GST_CLOCK_TIME_IS_VALID (data.timestamp)) {
GST_TIME_ARGS (rtime));
rtime =
gst_util_uint64_scale_int (rtime, payload->clock_rate, GST_SECOND);
+ priv->base_offset = data.offset;
+ priv->base_rtime = rtime;
}
/* add running_time in clock-rate units to the base timestamp */
data.rtptime = payload->ts_base + rtime;
basertppayload->ts_base = basertppayload->ts_offset;
basertppayload->timestamp = basertppayload->ts_base;
g_atomic_int_set (&basertppayload->priv->notified_first_timestamp, 1);
+ priv->base_offset = GST_BUFFER_OFFSET_NONE;
break;
default:
break;
} abidata;
};
+/**
+ * GstBaseRTPPayloadClass:
+ * @parent_class: the parent class
+ * @set_caps: configure the payloader
+ * @handle_buffer: process data
+ * @handle_event: custom event handling
+ * @get_caps: get desired caps
+ *
+ * Base class for audio RTP payloader.
+ */
struct _GstBaseRTPPayloadClass
{
GstElementClass parent_class;
gst_rtcp_buffer_validate_data (guint8 * data, guint len)
{
guint16 header_mask;
- guint16 header_len;
+ guint header_len;
guint8 version;
guint data_len;
gboolean padding;
* @ntptime: result NTP time
* @rtptime: result RTP time
* @packet_count: result packet count
- * @octet_count: result octect count
+ * @octet_count: result octet count
*
* Parse the SR sender info and store the values.
*/
* @ntptime: the NTP time
* @rtptime: the RTP time
* @packet_count: the packet count
- * @octet_count: the octect count
+ * @octet_count: the octet count
*
* Set the given values in the SR packet @packet.
*/
*
* When @type refers to a text item, @data will point to a UTF8 string. Note
* that this UTF8 string is NOT null-terminated. Use
- * gst_rtcp_packet_sdes_copy_entry() to get a null-termined copy of the entry.
+ * gst_rtcp_packet_sdes_copy_entry() to get a null-terminated copy of the entry.
*
* Returns: %TRUE if there was valid data.
*/
* GstRTCPFBType:
* @GST_RTCP_FB_TYPE_INVALID: Invalid type
* @GST_RTCP_RTPFB_TYPE_NACK: Generic NACK
+ * @GST_RTCP_RTPFB_TYPE_TMMBR: Temporary Maximum Media Stream Bit Rate Request
+ * @GST_RTCP_RTPFB_TYPE_TMMBN: Temporary Maximum Media Stream Bit Rate
+ * Notification
* @GST_RTCP_PSFB_TYPE_PLI: Picture Loss Indication
* @GST_RTCP_PSFB_TYPE_SLI: Slice Loss Indication
* @GST_RTCP_PSFB_TYPE_RPSI: Reference Picture Selection Indication
* @GST_RTCP_PSFB_TYPE_AFB: Application layer Feedback
+ * @GST_RTCP_PSFB_TYPE_FIR: Full Intra Request Command
+ * @GST_RTCP_PSFB_TYPE_TSTR: Temporal-Spatial Trade-off Request
+ * @GST_RTCP_PSFB_TYPE_TSTN: Temporal-Spatial Trade-off Notification
+ * @GST_RTCP_PSFB_TYPE_VBCN: Video Back Channel Message
*
* Different types of feedback messages.
*
GST_RTCP_FB_TYPE_INVALID = 0,
/* RTPFB types */
GST_RTCP_RTPFB_TYPE_NACK = 1,
+ /* RTPFB types assigned in RFC 5104 */
+ GST_RTCP_RTPFB_TYPE_TMMBR = 3,
+ GST_RTCP_RTPFB_TYPE_TMMBN = 4,
/* PSFB types */
GST_RTCP_PSFB_TYPE_PLI = 1,
GST_RTCP_PSFB_TYPE_SLI = 2,
GST_RTCP_PSFB_TYPE_RPSI = 3,
- GST_RTCP_PSFB_TYPE_AFB = 15
+ GST_RTCP_PSFB_TYPE_AFB = 15,
+ /* PSFB types assigned in RFC 5104 */
+ GST_RTCP_PSFB_TYPE_FIR = 4,
+ GST_RTCP_PSFB_TYPE_TSTR = 5,
+ GST_RTCP_PSFB_TYPE_TSTN = 6,
+ GST_RTCP_PSFB_TYPE_VBCN = 7,
} GstRTCPFBType;
/**
- pad_len;
}
-/**
+/*
* validate_data:
* @data: the data to validate
* @len: the length of @data to validate
guint8 *extpos;
guint16 extlen;
- /* this points to the extenstion bits and header length */
+ /* this points to the extension bits and header length */
extpos = &data[header_len];
/* skip the header and check that we have enough space */
* @buffer: the buffer to validate
*
* Check if the data pointed to by @buffer is a valid RTP packet using
- * validate_data().
+ * gst_rtp_buffer_validate_data().
* Use this function to validate a packet before using the other functions in
* this module.
*
* gst_rtp_buffer_list_validate:
* @list: the buffer list to validate
*
- * Check if all RTP packets in the @list are valid using validate_data().
+ * Check if all RTP packets in the @list are valid using gst_rtp_buffer_validate_data().
* Use this function to validate an list before using the other functions in
* this module.
*
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstrtspincludedir)" \
"$(DESTDIR)$(libgstrtspincludedir)"
libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) \
$(nodist_libgstrtsp_@GST_MAJORMINOR@_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_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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_@GST_MAJORMINOR@_la_SOURCES) \
$(nodist_libgstrtsp_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstrtsp-@GST_MAJORMINOR@.la: $(libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtsp_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstrtsp-@GST_MAJORMINOR@.la: $(libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtsp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstrtsp_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstrtsp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstrtsp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstrtsp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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_@GST_MAJORMINOR@_la-gstrtspbase64.lo: gstrtspbase64.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo `test -f 'gstrtspbase64.c' || echo '$(srcdir)/'`gstrtspbase64.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspbase64.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspbase64.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo `test -f 'gstrtspbase64.c' || echo '$(srcdir)/'`gstrtspbase64.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspbase64.lo `test -f 'gstrtspbase64.c' || echo '$(srcdir)/'`gstrtspbase64.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo: gstrtsptransport.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo `test -f 'gstrtsptransport.c' || echo '$(srcdir)/'`gstrtsptransport.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtsptransport.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtsptransport.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo `test -f 'gstrtsptransport.c' || echo '$(srcdir)/'`gstrtsptransport.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsptransport.lo `test -f 'gstrtsptransport.c' || echo '$(srcdir)/'`gstrtsptransport.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo: gstrtspurl.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo `test -f 'gstrtspurl.c' || echo '$(srcdir)/'`gstrtspurl.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspurl.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspurl.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo `test -f 'gstrtspurl.c' || echo '$(srcdir)/'`gstrtspurl.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspurl.lo `test -f 'gstrtspurl.c' || echo '$(srcdir)/'`gstrtspurl.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo: gstrtspmessage.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo `test -f 'gstrtspmessage.c' || echo '$(srcdir)/'`gstrtspmessage.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspmessage.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspmessage.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo `test -f 'gstrtspmessage.c' || echo '$(srcdir)/'`gstrtspmessage.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspmessage.lo `test -f 'gstrtspmessage.c' || echo '$(srcdir)/'`gstrtspmessage.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo: gstrtspconnection.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo `test -f 'gstrtspconnection.c' || echo '$(srcdir)/'`gstrtspconnection.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspconnection.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspconnection.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo `test -f 'gstrtspconnection.c' || echo '$(srcdir)/'`gstrtspconnection.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspconnection.lo `test -f 'gstrtspconnection.c' || echo '$(srcdir)/'`gstrtspconnection.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo: gstrtspdefs.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo `test -f 'gstrtspdefs.c' || echo '$(srcdir)/'`gstrtspdefs.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspdefs.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspdefs.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo `test -f 'gstrtspdefs.c' || echo '$(srcdir)/'`gstrtspdefs.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspdefs.lo `test -f 'gstrtspdefs.c' || echo '$(srcdir)/'`gstrtspdefs.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo: gstrtspextension.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo `test -f 'gstrtspextension.c' || echo '$(srcdir)/'`gstrtspextension.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtspextension.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtspextension.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo `test -f 'gstrtspextension.c' || echo '$(srcdir)/'`gstrtspextension.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtspextension.lo `test -f 'gstrtspextension.c' || echo '$(srcdir)/'`gstrtspextension.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo: gstrtsprange.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo `test -f 'gstrtsprange.c' || echo '$(srcdir)/'`gstrtsprange.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtsprange.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtsprange.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo `test -f 'gstrtsprange.c' || echo '$(srcdir)/'`gstrtsprange.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsprange.lo `test -f 'gstrtsprange.c' || echo '$(srcdir)/'`gstrtsprange.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo: gstrtsp-marshal.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtsp-marshal.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtsp-marshal.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-marshal.lo `test -f 'gstrtsp-marshal.c' || echo '$(srcdir)/'`gstrtsp-marshal.c
libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo: gstrtsp-enumtypes.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.Tpo -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo `test -f 'gstrtsp-enumtypes.c' || echo '$(srcdir)/'`gstrtsp-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.Tpo $(DEPDIR)/libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstrtsp-enumtypes.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstrtsp-enumtypes.c' object='libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo `test -f 'gstrtsp-enumtypes.c' || echo '$(srcdir)/'`gstrtsp-enumtypes.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) $(libgstrtsp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstrtsp_@GST_MAJORMINOR@_la-gstrtsp-enumtypes.lo `test -f 'gstrtsp-enumtypes.c' || echo '$(srcdir)/'`gstrtsp-enumtypes.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstrtspincludeHEADERS: $(libgstrtspinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstrtspincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstrtspincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstrtspinclude_HEADERS)'; test -n "$(libgstrtspincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstrtspincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstrtspincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstrtspincludedir)'; $(am__uninstall_files_from_dir)
install-nodist_libgstrtspincludeHEADERS: $(nodist_libgstrtspinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstrtspincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstrtspincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(nodist_libgstrtspinclude_HEADERS)'; test -n "$(libgstrtspincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstrtspincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstrtspincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstrtspincludedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
#include "gstrtspconnection.h"
#include "gstrtspbase64.h"
+#include "gst/glib-compat-private.h"
+
union gst_sockaddr
{
struct sockaddr sa;
static gchar *
do_resolve (const gchar * host)
{
- static gchar ip[INET6_ADDRSTRLEN];
+ gchar ip[INET6_ADDRSTRLEN];
struct addrinfo *aires, hints;
struct addrinfo *ai;
gint aierr;
getsockopt (fd, SOL_SOCKET, SO_ERROR, (char *) &errno, &len);
#endif
goto sys_error;
+ } else {
+#ifdef __APPLE__
+ /* osx wakes up select with POLLOUT if the connection is refused... */
+ socklen_t len = sizeof (errno);
+ getsockopt (fd, SOL_SOCKET, SO_ERROR, (char *) &errno, &len);
+ if (errno != 0)
+ goto sys_error;
+#endif
}
gst_poll_fd_ignored (fdset, fdout);
goto done;
/* we have the complete body now, store in the message adjusting the
- * length to include the traling '\0' */
+ * length to include the trailing '\0' */
gst_rtsp_message_take_body (message,
(guint8 *) builder->body_data, builder->body_len + 1);
builder->body_data = NULL;
if (gst_poll_fd_has_error (conn->fdset, conn->writefd))
goto socket_error;
- gst_poll_set_controllable (conn->fdset, FALSE);
+ /* once we start reading the wait cannot be controlled */
+ if (builder.state != STATE_START)
+ gst_poll_set_controllable (conn->fdset, FALSE);
}
/* we have a message here */
g_mutex_lock (watch->mutex);
/* try to send the message synchronously first */
- if (watch->messages->length == 0) {
+ if (watch->messages->length == 0 && watch->write_data == NULL) {
res = write_bytes (watch->writefd.fd, data, &off, size);
if (res != GST_RTSP_EINTR) {
if (id != NULL)
{"X-Server-IP-Address", FALSE},
{"X-Sessioncookie", FALSE},
+ /* Since 0.10.36 */
+ {"RTCP-Interval", FALSE},
+
{NULL, FALSE}
};
* @GST_RTSP_GET: the GET method (HTTP). Since 0.10.25
* @GST_RTSP_POST: the POST method (HTTP). Since 0.10.25
*
- * The different supported RTSP methods.
+ * The different supported RTSP methods.
*/
typedef enum {
GST_RTSP_INVALID = 0,
/**
* GST_RTSP_AUTH_MAX:
*
- * Strongest available authentication method
+ * Strongest available authentication method
*/
#define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST
+/**
+ * GstRTSPHeaderField:
+ *
+ * Enumeration of rtsp header fields.
+ */
typedef enum {
+ /*< protected >*/
GST_RTSP_HDR_INVALID,
/*
GST_RTSP_HDR_X_SERVER_IP_ADDRESS, /* X-Server-IP-Address */
GST_RTSP_HDR_X_SESSIONCOOKIE, /* X-Sessioncookie */
+ /* Since 0.10.36 */
+ GST_RTSP_HDR_RTCP_INTERVAL, /* RTCP-Interval */
+
GST_RTSP_HDR_LAST
} GstRTSPHeaderField;
+/**
+ * GstRTSPStatusCode:
+ *
+ * Enumeration of rtsp status codes.
+ */
typedef enum {
- GST_RTSP_STS_INVALID = 0,
- GST_RTSP_STS_CONTINUE = 100,
- GST_RTSP_STS_OK = 200,
- GST_RTSP_STS_CREATED = 201,
- GST_RTSP_STS_LOW_ON_STORAGE = 250,
- GST_RTSP_STS_MULTIPLE_CHOICES = 300,
- GST_RTSP_STS_MOVED_PERMANENTLY = 301,
- GST_RTSP_STS_MOVE_TEMPORARILY = 302,
- GST_RTSP_STS_SEE_OTHER = 303,
- GST_RTSP_STS_NOT_MODIFIED = 304,
- GST_RTSP_STS_USE_PROXY = 305,
- GST_RTSP_STS_BAD_REQUEST = 400,
- GST_RTSP_STS_UNAUTHORIZED = 401,
- GST_RTSP_STS_PAYMENT_REQUIRED = 402,
- GST_RTSP_STS_FORBIDDEN = 403,
- GST_RTSP_STS_NOT_FOUND = 404,
- GST_RTSP_STS_METHOD_NOT_ALLOWED = 405,
- GST_RTSP_STS_NOT_ACCEPTABLE = 406,
- GST_RTSP_STS_PROXY_AUTH_REQUIRED = 407,
- GST_RTSP_STS_REQUEST_TIMEOUT = 408,
- GST_RTSP_STS_GONE = 410,
- GST_RTSP_STS_LENGTH_REQUIRED = 411,
- GST_RTSP_STS_PRECONDITION_FAILED = 412,
- GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE = 413,
- GST_RTSP_STS_REQUEST_URI_TOO_LARGE = 414,
- GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE = 415,
- GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD = 451,
- GST_RTSP_STS_CONFERENCE_NOT_FOUND = 452,
- GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH = 453,
- GST_RTSP_STS_SESSION_NOT_FOUND = 454,
- GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE = 455,
- GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE = 456,
- GST_RTSP_STS_INVALID_RANGE = 457,
- GST_RTSP_STS_PARAMETER_IS_READONLY = 458,
- GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED = 459,
- GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED = 460,
- GST_RTSP_STS_UNSUPPORTED_TRANSPORT = 461,
- GST_RTSP_STS_DESTINATION_UNREACHABLE = 462,
- GST_RTSP_STS_INTERNAL_SERVER_ERROR = 500,
- GST_RTSP_STS_NOT_IMPLEMENTED = 501,
- GST_RTSP_STS_BAD_GATEWAY = 502,
- GST_RTSP_STS_SERVICE_UNAVAILABLE = 503,
- GST_RTSP_STS_GATEWAY_TIMEOUT = 504,
- GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED = 505,
+ /*< protected >*/
+ GST_RTSP_STS_INVALID = 0,
+ GST_RTSP_STS_CONTINUE = 100,
+ GST_RTSP_STS_OK = 200,
+ GST_RTSP_STS_CREATED = 201,
+ GST_RTSP_STS_LOW_ON_STORAGE = 250,
+ GST_RTSP_STS_MULTIPLE_CHOICES = 300,
+ GST_RTSP_STS_MOVED_PERMANENTLY = 301,
+ GST_RTSP_STS_MOVE_TEMPORARILY = 302,
+ GST_RTSP_STS_SEE_OTHER = 303,
+ GST_RTSP_STS_NOT_MODIFIED = 304,
+ GST_RTSP_STS_USE_PROXY = 305,
+ GST_RTSP_STS_BAD_REQUEST = 400,
+ GST_RTSP_STS_UNAUTHORIZED = 401,
+ GST_RTSP_STS_PAYMENT_REQUIRED = 402,
+ GST_RTSP_STS_FORBIDDEN = 403,
+ GST_RTSP_STS_NOT_FOUND = 404,
+ GST_RTSP_STS_METHOD_NOT_ALLOWED = 405,
+ GST_RTSP_STS_NOT_ACCEPTABLE = 406,
+ GST_RTSP_STS_PROXY_AUTH_REQUIRED = 407,
+ GST_RTSP_STS_REQUEST_TIMEOUT = 408,
+ GST_RTSP_STS_GONE = 410,
+ GST_RTSP_STS_LENGTH_REQUIRED = 411,
+ GST_RTSP_STS_PRECONDITION_FAILED = 412,
+ GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE = 413,
+ GST_RTSP_STS_REQUEST_URI_TOO_LARGE = 414,
+ GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE = 415,
+ GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD = 451,
+ GST_RTSP_STS_CONFERENCE_NOT_FOUND = 452,
+ GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH = 453,
+ GST_RTSP_STS_SESSION_NOT_FOUND = 454,
+ GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE = 455,
+ GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE = 456,
+ GST_RTSP_STS_INVALID_RANGE = 457,
+ GST_RTSP_STS_PARAMETER_IS_READONLY = 458,
+ GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED = 459,
+ GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED = 460,
+ GST_RTSP_STS_UNSUPPORTED_TRANSPORT = 461,
+ GST_RTSP_STS_DESTINATION_UNREACHABLE = 462,
+ GST_RTSP_STS_INTERNAL_SERVER_ERROR = 500,
+ GST_RTSP_STS_NOT_IMPLEMENTED = 501,
+ GST_RTSP_STS_BAD_GATEWAY = 502,
+ GST_RTSP_STS_SERVICE_UNAVAILABLE = 503,
+ GST_RTSP_STS_GATEWAY_TIMEOUT = 504,
+ GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED = 505,
GST_RTSP_STS_OPTION_NOT_SUPPORTED = 551
} GstRTSPStatusCode;
#define GST_TYPE_RTSP_EXTENSION \
(gst_rtsp_extension_get_type ())
#define GST_RTSP_EXTENSION(obj) \
- (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RTSP_EXTENSION, GstRTSPExtension))
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_RTSP_EXTENSION, GstRTSPExtension))
#define GST_IS_RTSP_EXTENSION(obj) \
- (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RTSP_EXTENSION))
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_RTSP_EXTENSION))
#define GST_RTSP_EXTENSION_GET_IFACE(inst) \
(G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_RTSP_EXTENSION, GstRTSPExtensionInterface))
* gst_rtsp_range_free:
* @range: a #GstRTSPTimeRange
*
- * Free the memory alocated by @range.
+ * Free the memory allocated by @range.
*/
void
gst_rtsp_range_free (GstRTSPTimeRange * range)
* @manager: location to hold the result
* @option: option index.
*
- * Get the #GStreamer element that can handle the buffers transported over
- * @trans.
+ * Get the #GstElement that can handle the buffers transported over @trans.
*
* It is possible that there are several managers available, use @option to
* selected one.
* Splits the path of @url on '/' boundaries, decoding the resulting components,
*
* The decoding performed by this routine is "URI decoding", as defined in RFC
- * 3986, commonly known as percent-decoding. For example, a string "foo%2fbar"
- * will decode to "foo/bar" -- the %2f being replaced by the corresponding byte
+ * 3986, commonly known as percent-decoding. For example, a string "foo\%2fbar"
+ * will decode to "foo/bar" -- the \%2f being replaced by the corresponding byte
* with hex value 0x2f. Note that there is no guarantee that the resulting byte
- * sequence is valid in any given encoding. As a special case, %00 is not
+ * sequence is valid in any given encoding. As a special case, \%00 is not
* unescaped to NUL, as that would prematurely terminate the string.
*
* Also note that since paths usually start with a slash, the first component
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstsdpincludedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo
libgstsdp_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstsdp_@GST_MAJORMINOR@_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
libgstsdp_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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 = $(libgstsdp_@GST_MAJORMINOR@_la_SOURCES)
DIST_SOURCES = $(libgstsdp_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstsdp-@GST_MAJORMINOR@.la: $(libgstsdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsdp_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstsdp-@GST_MAJORMINOR@.la: $(libgstsdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsdp_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstsdp_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstsdp_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstsdp_@GST_MAJORMINOR@_la_OBJECTS) $(libgstsdp_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo: gstsdpmessage.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) $(libgstsdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo -MD -MP -MF $(DEPDIR)/libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.Tpo -c -o libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo `test -f 'gstsdpmessage.c' || echo '$(srcdir)/'`gstsdpmessage.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.Tpo $(DEPDIR)/libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsdpmessage.c' object='libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsdpmessage.c' object='libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.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) $(libgstsdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo `test -f 'gstsdpmessage.c' || echo '$(srcdir)/'`gstsdpmessage.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) $(libgstsdp_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstsdp_@GST_MAJORMINOR@_la-gstsdpmessage.lo `test -f 'gstsdpmessage.c' || echo '$(srcdir)/'`gstsdpmessage.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstsdpincludeHEADERS: $(libgstsdpinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstsdpincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstsdpincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstsdpinclude_HEADERS)'; test -n "$(libgstsdpincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstsdpincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstsdpincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstsdpincludedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
*
* Adds @media to the array of medias in @msg. This function takes ownership of
* the contents of @media so that @media will have to be reinitialized with
- * gst_media_init() before it can be used again.
+ * gst_sdp_media_init() before it can be used again.
*
* Returns: a #GstSDPResult.
*/
$(includedir)/gstreamer-@GST_MAJORMINOR@/gst/tag
libgsttaginclude_HEADERS = \
- tag.h gsttagdemux.h xmpwriter.h
+ tag.h gsttagdemux.h gsttagmux.h xmpwriter.h
lib_LTLIBRARIES = libgsttag-@GST_MAJORMINOR@.la
libgsttag_@GST_MAJORMINOR@_la_SOURCES = \
- gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
- lang.c tags.c gsttagdemux.c gsttageditingprivate.c xmpwriter.c
-libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
+ gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
+ lang.c licenses.c tags.c gsttagdemux.c gsttagmux.c \
+ gsttageditingprivate.c id3v2.c id3v2frames.c xmpwriter.c
+
+libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
+ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ZLIB_CFLAGS) \
+ -DLICENSE_TRANSLATIONS_PATH=\"$(pkgdatadir)/license-translations.dict\"
+libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ZLIB_LIBS)
libgsttag_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
# lang-tables.dat contains generated static data and is included by lang.c
-EXTRA_DIST = lang-tables.dat
+# licenses-tables.dat contains generated data and is included by licenses.c
+EXTRA_DIST = lang-tables.dat licenses-tables.dat license-translations.dict
-noinst_HEADERS = gsttageditingprivate.h
+noinst_HEADERS = gsttageditingprivate.h id3v2.h
if HAVE_INTROSPECTION
BUILT_GIRSOURCES = GstTag-@GST_MAJORMINOR@.gir
# little program that reads iso_639.xml and outputs tables for us as fallback
# for when iso-codes are not available (and so we don't have to read the xml
# just to map codes)
-if USE_ISO_CODES
-ISO_CODE_PROGS = mklangtables
mklangtables_SOURCES = mklangtables.c
mklangtables_CFLAGS = $(GST_CFLAGS)
mklangtables_LDADD = $(GST_LIBS)
-else
-ISO_CODE_PROGS =
-endif
-noinst_PROGRAMS = $(ISO_CODE_PROGS)
+mklicensestables_SOURCES = mklicensestables.c
+mklicensestables_CFLAGS = $(GST_CFLAGS)
+mklicensestables_LDADD = $(GST_LIBS)
+
+EXTRA_PROGRAMS = mklangtables mklicensestables
+
+update-isocodes: mklangtables
+ $(builddir)/mklangtables > $(srcdir)/lang-tables.dat && \
+ echo "Updated lang-tables.dat"
+
+update-licenses: mklicensestables
+ $(builddir)/mklicensestables \
+ --translation-dictionary=$(srcdir)/license-translations.dict \
+ > $(srcdir)/licenses-tables.dat && \
+ echo "Updated licenses-tables.dat and license-translations.dict"
+
+#if USE_NLS
+# Yes, this is not great, but it's only an implementation detail. The
+# translations come from an external source here, so we don't want the
+# strings retranslated, but also we don't want to create 30 1kB .mo files,
+# so just do something for now, we can change it later if someone really cares.
+licensetransdir = $(pkgdatadir)
+licensetrans_DATA = $(srcdir)/license-translations.dict
+#endif
Android.mk: Makefile.am
androgenizer -:PROJECT libgsttag -:SHARED libgsttag-@GST_MAJORMINOR@ \
-:TAGS eng debug \
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
- -:CFLAGS $(DEFS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
-:LDFLAGS $(libgsttag_@GST_MAJORMINOR@_la_LDFLAGS) \
$(libgsttag_@GST_MAJORMINOR@_la_LIBADD) \
-ldl \
-# 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.
-
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-noinst_PROGRAMS = $(am__EXEEXT_1)
+EXTRA_PROGRAMS = mklangtables$(EXEEXT) mklicensestables$(EXEEXT)
subdir = gst-libs/gst/tag
DIST_COMMON = $(libgsttaginclude_HEADERS) $(noinst_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
- "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgsttagincludedir)"
+ "$(DESTDIR)$(licensetransdir)" "$(DESTDIR)$(typelibsdir)" \
+ "$(DESTDIR)$(libgsttagincludedir)"
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_libgsttag_@GST_MAJORMINOR@_la_OBJECTS = \
libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo \
libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo \
libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo \
libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo \
libgsttag_@GST_MAJORMINOR@_la-lang.lo \
+ libgsttag_@GST_MAJORMINOR@_la-licenses.lo \
libgsttag_@GST_MAJORMINOR@_la-tags.lo \
libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo \
+ libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo \
libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo \
+ libgsttag_@GST_MAJORMINOR@_la-id3v2.lo \
+ libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo \
libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo
libgsttag_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgsttag_@GST_MAJORMINOR@_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
libgsttag_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) \
$(libgsttag_@GST_MAJORMINOR@_la_LDFLAGS) $(LDFLAGS) -o $@
-@USE_ISO_CODES_TRUE@am__EXEEXT_1 = mklangtables$(EXEEXT)
-PROGRAMS = $(noinst_PROGRAMS)
-am__mklangtables_SOURCES_DIST = mklangtables.c
-@USE_ISO_CODES_TRUE@am_mklangtables_OBJECTS = \
-@USE_ISO_CODES_TRUE@ mklangtables-mklangtables.$(OBJEXT)
+am_mklangtables_OBJECTS = mklangtables-mklangtables.$(OBJEXT)
mklangtables_OBJECTS = $(am_mklangtables_OBJECTS)
-@USE_ISO_CODES_TRUE@mklangtables_DEPENDENCIES = $(am__DEPENDENCIES_1)
+mklangtables_DEPENDENCIES = $(am__DEPENDENCIES_1)
mklangtables_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(mklangtables_CFLAGS) \
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_mklicensestables_OBJECTS = \
+ mklicensestables-mklicensestables.$(OBJEXT)
+mklicensestables_OBJECTS = $(am_mklicensestables_OBJECTS)
+mklicensestables_DEPENDENCIES = $(am__DEPENDENCIES_1)
+mklicensestables_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(mklicensestables_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+ -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
$(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 = $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
- $(mklangtables_SOURCES)
+ $(mklangtables_SOURCES) $(mklicensestables_SOURCES)
DIST_SOURCES = $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
- $(am__mklangtables_SOURCES_DIST)
-DATA = $(gir_DATA) $(typelibs_DATA)
+ $(mklangtables_SOURCES) $(mklicensestables_SOURCES)
+DATA = $(gir_DATA) $(licensetrans_DATA) $(typelibs_DATA)
HEADERS = $(libgsttaginclude_HEADERS) $(noinst_HEADERS)
ETAGS = etags
CTAGS = ctags
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
$(includedir)/gstreamer-@GST_MAJORMINOR@/gst/tag
libgsttaginclude_HEADERS = \
- tag.h gsttagdemux.h xmpwriter.h
+ tag.h gsttagdemux.h gsttagmux.h xmpwriter.h
lib_LTLIBRARIES = libgsttag-@GST_MAJORMINOR@.la
libgsttag_@GST_MAJORMINOR@_la_SOURCES = \
- gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
- lang.c tags.c gsttagdemux.c gsttageditingprivate.c xmpwriter.c
+ gstvorbistag.c gstid3tag.c gstxmptag.c gstexiftag.c \
+ lang.c licenses.c tags.c gsttagdemux.c gsttagmux.c \
+ gsttageditingprivate.c id3v2.c id3v2frames.c xmpwriter.c
-libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM)
+libgsttag_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
+ $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ZLIB_CFLAGS) \
+ -DLICENSE_TRANSLATIONS_PATH=\"$(pkgdatadir)/license-translations.dict\"
+
+libgsttag_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ZLIB_LIBS)
libgsttag_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
# lang-tables.dat contains generated static data and is included by lang.c
-EXTRA_DIST = lang-tables.dat
-noinst_HEADERS = gsttageditingprivate.h
+# licenses-tables.dat contains generated data and is included by licenses.c
+EXTRA_DIST = lang-tables.dat licenses-tables.dat license-translations.dict
+noinst_HEADERS = gsttageditingprivate.h id3v2.h
@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstTag-@GST_MAJORMINOR@.gir
@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgsttaginclude_HEADERS))
@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, $(libgsttag_@GST_MAJORMINOR@_la_SOURCES))
@HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0/
@HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
@HAVE_INTROSPECTION_TRUE@CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
-@USE_ISO_CODES_FALSE@ISO_CODE_PROGS =
# little program that reads iso_639.xml and outputs tables for us as fallback
# for when iso-codes are not available (and so we don't have to read the xml
# just to map codes)
-@USE_ISO_CODES_TRUE@ISO_CODE_PROGS = mklangtables
-@USE_ISO_CODES_TRUE@mklangtables_SOURCES = mklangtables.c
-@USE_ISO_CODES_TRUE@mklangtables_CFLAGS = $(GST_CFLAGS)
-@USE_ISO_CODES_TRUE@mklangtables_LDADD = $(GST_LIBS)
+mklangtables_SOURCES = mklangtables.c
+mklangtables_CFLAGS = $(GST_CFLAGS)
+mklangtables_LDADD = $(GST_LIBS)
+mklicensestables_SOURCES = mklicensestables.c
+mklicensestables_CFLAGS = $(GST_CFLAGS)
+mklicensestables_LDADD = $(GST_LIBS)
+
+#if USE_NLS
+# Yes, this is not great, but it's only an implementation detail. The
+# translations come from an external source here, so we don't want the
+# strings retranslated, but also we don't want to create 30 1kB .mo files,
+# so just do something for now, we can change it later if someone really cares.
+licensetransdir = $(pkgdatadir)
+licensetrans_DATA = $(srcdir)/license-translations.dict
all: all-am
.SUFFIXES:
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgsttag-@GST_MAJORMINOR@.la: $(libgsttag_@GST_MAJORMINOR@_la_OBJECTS) $(libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgsttag-@GST_MAJORMINOR@.la: $(libgsttag_@GST_MAJORMINOR@_la_OBJECTS) $(libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgsttag_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgsttag_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgsttag_@GST_MAJORMINOR@_la_OBJECTS) $(libgsttag_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
-
-clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-mklangtables$(EXEEXT): $(mklangtables_OBJECTS) $(mklangtables_DEPENDENCIES)
+mklangtables$(EXEEXT): $(mklangtables_OBJECTS) $(mklangtables_DEPENDENCIES) $(EXTRA_mklangtables_DEPENDENCIES)
@rm -f mklangtables$(EXEEXT)
$(AM_V_CCLD)$(mklangtables_LINK) $(mklangtables_OBJECTS) $(mklangtables_LDADD) $(LIBS)
+mklicensestables$(EXEEXT): $(mklicensestables_OBJECTS) $(mklicensestables_DEPENDENCIES) $(EXTRA_mklicensestables_DEPENDENCIES)
+ @rm -f mklicensestables$(EXEEXT)
+ $(AM_V_CCLD)$(mklicensestables_LINK) $(mklicensestables_OBJECTS) $(mklicensestables_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mklangtables-mklangtables.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mklicensestables-mklicensestables.Po@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 $@ $<
libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo: gstvorbistag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvorbistag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvorbistag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstvorbistag.lo `test -f 'gstvorbistag.c' || echo '$(srcdir)/'`gstvorbistag.c
libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo: gstid3tag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo `test -f 'gstid3tag.c' || echo '$(srcdir)/'`gstid3tag.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstid3tag.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstid3tag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstid3tag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstid3tag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo `test -f 'gstid3tag.c' || echo '$(srcdir)/'`gstid3tag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstid3tag.lo `test -f 'gstid3tag.c' || echo '$(srcdir)/'`gstid3tag.c
libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo: gstxmptag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo `test -f 'gstxmptag.c' || echo '$(srcdir)/'`gstxmptag.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstxmptag.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstxmptag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstxmptag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstxmptag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo `test -f 'gstxmptag.c' || echo '$(srcdir)/'`gstxmptag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstxmptag.lo `test -f 'gstxmptag.c' || echo '$(srcdir)/'`gstxmptag.c
libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo: gstexiftag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstexiftag.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo `test -f 'gstexiftag.c' || echo '$(srcdir)/'`gstexiftag.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstexiftag.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gstexiftag.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstexiftag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstexiftag.c' object='libgsttag_@GST_MAJORMINOR@_la-gstexiftag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo `test -f 'gstexiftag.c' || echo '$(srcdir)/'`gstexiftag.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gstexiftag.lo `test -f 'gstexiftag.c' || echo '$(srcdir)/'`gstexiftag.c
libgsttag_@GST_MAJORMINOR@_la-lang.lo: lang.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-lang.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-lang.lo `test -f 'lang.c' || echo '$(srcdir)/'`lang.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-lang.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lang.c' object='libgsttag_@GST_MAJORMINOR@_la-lang.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='lang.c' object='libgsttag_@GST_MAJORMINOR@_la-lang.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-lang.lo `test -f 'lang.c' || echo '$(srcdir)/'`lang.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-lang.lo `test -f 'lang.c' || echo '$(srcdir)/'`lang.c
+
+libgsttag_@GST_MAJORMINOR@_la-licenses.lo: licenses.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-licenses.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-licenses.lo `test -f 'licenses.c' || echo '$(srcdir)/'`licenses.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-licenses.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='licenses.c' object='libgsttag_@GST_MAJORMINOR@_la-licenses.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-licenses.lo `test -f 'licenses.c' || echo '$(srcdir)/'`licenses.c
libgsttag_@GST_MAJORMINOR@_la-tags.lo: tags.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-tags.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-tags.lo `test -f 'tags.c' || echo '$(srcdir)/'`tags.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-tags.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tags.c' object='libgsttag_@GST_MAJORMINOR@_la-tags.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tags.c' object='libgsttag_@GST_MAJORMINOR@_la-tags.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-tags.lo `test -f 'tags.c' || echo '$(srcdir)/'`tags.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-tags.lo `test -f 'tags.c' || echo '$(srcdir)/'`tags.c
libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo: gsttagdemux.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo `test -f 'gsttagdemux.c' || echo '$(srcdir)/'`gsttagdemux.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttagdemux.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttagdemux.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo `test -f 'gsttagdemux.c' || echo '$(srcdir)/'`gsttagdemux.c
+
+libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo: gsttagmux.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo `test -f 'gsttagmux.c' || echo '$(srcdir)/'`gsttagmux.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttagmux.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttagmux.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttagmux.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagdemux.lo `test -f 'gsttagdemux.c' || echo '$(srcdir)/'`gsttagdemux.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttagmux.lo `test -f 'gsttagmux.c' || echo '$(srcdir)/'`gsttagmux.c
libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo: gsttageditingprivate.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo `test -f 'gsttageditingprivate.c' || echo '$(srcdir)/'`gsttageditingprivate.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttageditingprivate.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttageditingprivate.c' object='libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo `test -f 'gsttageditingprivate.c' || echo '$(srcdir)/'`gsttageditingprivate.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-gsttageditingprivate.lo `test -f 'gsttageditingprivate.c' || echo '$(srcdir)/'`gsttageditingprivate.c
+
+libgsttag_@GST_MAJORMINOR@_la-id3v2.lo: id3v2.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-id3v2.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2.lo `test -f 'id3v2.c' || echo '$(srcdir)/'`id3v2.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='id3v2.c' object='libgsttag_@GST_MAJORMINOR@_la-id3v2.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2.lo `test -f 'id3v2.c' || echo '$(srcdir)/'`id3v2.c
+
+libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo: id3v2frames.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo `test -f 'id3v2frames.c' || echo '$(srcdir)/'`id3v2frames.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-id3v2frames.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='id3v2frames.c' object='libgsttag_@GST_MAJORMINOR@_la-id3v2frames.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-id3v2frames.lo `test -f 'id3v2frames.c' || echo '$(srcdir)/'`id3v2frames.c
libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo: xmpwriter.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo -MD -MP -MF $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Tpo -c -o libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo `test -f 'xmpwriter.c' || echo '$(srcdir)/'`xmpwriter.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Tpo $(DEPDIR)/libgsttag_@GST_MAJORMINOR@_la-xmpwriter.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xmpwriter.c' object='libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xmpwriter.c' object='libgsttag_@GST_MAJORMINOR@_la-xmpwriter.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo `test -f 'xmpwriter.c' || echo '$(srcdir)/'`xmpwriter.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) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgsttag_@GST_MAJORMINOR@_la-xmpwriter.lo `test -f 'xmpwriter.c' || echo '$(srcdir)/'`xmpwriter.c
mklangtables-mklangtables.o: mklangtables.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -MT mklangtables-mklangtables.o -MD -MP -MF $(DEPDIR)/mklangtables-mklangtables.Tpo -c -o mklangtables-mklangtables.o `test -f 'mklangtables.c' || echo '$(srcdir)/'`mklangtables.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mklangtables-mklangtables.Tpo $(DEPDIR)/mklangtables-mklangtables.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mklangtables.c' object='mklangtables-mklangtables.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mklangtables.c' object='mklangtables-mklangtables.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) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.o `test -f 'mklangtables.c' || echo '$(srcdir)/'`mklangtables.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.o `test -f 'mklangtables.c' || echo '$(srcdir)/'`mklangtables.c
mklangtables-mklangtables.obj: mklangtables.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -MT mklangtables-mklangtables.obj -MD -MP -MF $(DEPDIR)/mklangtables-mklangtables.Tpo -c -o mklangtables-mklangtables.obj `if test -f 'mklangtables.c'; then $(CYGPATH_W) 'mklangtables.c'; else $(CYGPATH_W) '$(srcdir)/mklangtables.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mklangtables-mklangtables.Tpo $(DEPDIR)/mklangtables-mklangtables.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mklangtables.c' object='mklangtables-mklangtables.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mklangtables.c' object='mklangtables-mklangtables.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) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.obj `if test -f 'mklangtables.c'; then $(CYGPATH_W) 'mklangtables.c'; else $(CYGPATH_W) '$(srcdir)/mklangtables.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklangtables_CFLAGS) $(CFLAGS) -c -o mklangtables-mklangtables.obj `if test -f 'mklangtables.c'; then $(CYGPATH_W) 'mklangtables.c'; else $(CYGPATH_W) '$(srcdir)/mklangtables.c'; fi`
+
+mklicensestables-mklicensestables.o: mklicensestables.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklicensestables_CFLAGS) $(CFLAGS) -MT mklicensestables-mklicensestables.o -MD -MP -MF $(DEPDIR)/mklicensestables-mklicensestables.Tpo -c -o mklicensestables-mklicensestables.o `test -f 'mklicensestables.c' || echo '$(srcdir)/'`mklicensestables.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mklicensestables-mklicensestables.Tpo $(DEPDIR)/mklicensestables-mklicensestables.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mklicensestables.c' object='mklicensestables-mklicensestables.o' 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) $(mklicensestables_CFLAGS) $(CFLAGS) -c -o mklicensestables-mklicensestables.o `test -f 'mklicensestables.c' || echo '$(srcdir)/'`mklicensestables.c
+
+mklicensestables-mklicensestables.obj: mklicensestables.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(mklicensestables_CFLAGS) $(CFLAGS) -MT mklicensestables-mklicensestables.obj -MD -MP -MF $(DEPDIR)/mklicensestables-mklicensestables.Tpo -c -o mklicensestables-mklicensestables.obj `if test -f 'mklicensestables.c'; then $(CYGPATH_W) 'mklicensestables.c'; else $(CYGPATH_W) '$(srcdir)/mklicensestables.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/mklicensestables-mklicensestables.Tpo $(DEPDIR)/mklicensestables-mklicensestables.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mklicensestables.c' object='mklicensestables-mklicensestables.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) $(mklicensestables_CFLAGS) $(CFLAGS) -c -o mklicensestables-mklicensestables.obj `if test -f 'mklicensestables.c'; then $(CYGPATH_W) 'mklicensestables.c'; else $(CYGPATH_W) '$(srcdir)/mklicensestables.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
+install-licensetransDATA: $(licensetrans_DATA)
+ @$(NORMAL_INSTALL)
+ test -z "$(licensetransdir)" || $(MKDIR_P) "$(DESTDIR)$(licensetransdir)"
+ @list='$(licensetrans_DATA)'; test -n "$(licensetransdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(licensetransdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(licensetransdir)" || exit $$?; \
+ done
+
+uninstall-licensetransDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(licensetrans_DATA)'; test -n "$(licensetransdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(licensetransdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgsttagincludeHEADERS: $(libgsttaginclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgsttagincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libgsttagincludedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgsttaginclude_HEADERS)'; test -n "$(libgsttagincludedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgsttagincludedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgsttagincludedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgsttagincludedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
done
check-am: all-am
check: check-am
-all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS)
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgsttagincludedir)"; do \
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(licensetransdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgsttagincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-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:
clean: clean-am
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
- clean-noinstPROGRAMS mostlyclean-am
+ mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
info-am:
install-data-am: install-girDATA install-libgsttagincludeHEADERS \
- install-typelibsDATA
+ install-licensetransDATA install-typelibsDATA
install-dvi: install-dvi-am
ps-am:
uninstall-am: uninstall-girDATA uninstall-libLTLIBRARIES \
- uninstall-libgsttagincludeHEADERS uninstall-typelibsDATA
+ uninstall-libgsttagincludeHEADERS uninstall-licensetransDATA \
+ uninstall-typelibsDATA
.MAKE: install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
- distclean distclean-compile distclean-generic \
- distclean-libtool distclean-tags distdir dvi dvi-am html \
- html-am info info-am install install-am install-data \
- install-data-am install-dvi install-dvi-am install-exec \
- install-exec-am install-girDATA install-html install-html-am \
- install-info install-info-am install-libLTLIBRARIES \
- install-libgsttagincludeHEADERS install-man install-pdf \
+ clean-libLTLIBRARIES clean-libtool ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-girDATA \
+ install-html install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-libgsttagincludeHEADERS \
+ install-licensetransDATA install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
install-typelibsDATA installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-girDATA uninstall-libLTLIBRARIES \
- uninstall-libgsttagincludeHEADERS uninstall-typelibsDATA
+ uninstall-libgsttagincludeHEADERS uninstall-licensetransDATA \
+ uninstall-typelibsDATA
@HAVE_INTROSPECTION_TRUE@GstTag-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_MAJORMINOR@.la
@HAVE_INTROSPECTION_TRUE@ --includedir=`$(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_MAJORMINOR@` \
@HAVE_INTROSPECTION_TRUE@ $(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
+update-isocodes: mklangtables
+ $(builddir)/mklangtables > $(srcdir)/lang-tables.dat && \
+ echo "Updated lang-tables.dat"
+
+update-licenses: mklicensestables
+ $(builddir)/mklicensestables \
+ --translation-dictionary=$(srcdir)/license-translations.dict \
+ > $(srcdir)/licenses-tables.dat && \
+ echo "Updated licenses-tables.dat and license-translations.dict"
+#endif
+
Android.mk: Makefile.am
androgenizer -:PROJECT libgsttag -:SHARED libgsttag-@GST_MAJORMINOR@ \
-:TAGS eng debug \
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgsttag_@GST_MAJORMINOR@_la_SOURCES) \
- -:CFLAGS $(DEFS) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgsttag_@GST_MAJORMINOR@_la_CFLAGS) \
-:LDFLAGS $(libgsttag_@GST_MAJORMINOR@_la_LDFLAGS) \
$(libgsttag_@GST_MAJORMINOR@_la_LIBADD) \
-ldl \
static void
gst_exif_writer_write_tag_header (GstExifWriter * writer,
guint16 exif_tag, guint16 exif_type, guint32 count, guint32 offset,
- gboolean is_data)
+ const guint32 * offset_data)
{
GST_DEBUG ("Writing tag entry: id %x, type %u, count %u, offset %u",
exif_tag, exif_type, count, offset);
gst_byte_writer_put_uint16_le (&writer->tagwriter, exif_tag);
gst_byte_writer_put_uint16_le (&writer->tagwriter, exif_type);
gst_byte_writer_put_uint32_le (&writer->tagwriter, count);
- gst_byte_writer_put_uint32_le (&writer->tagwriter, offset);
+ if (offset_data != NULL) {
+ gst_byte_writer_put_data (&writer->tagwriter, (guint8 *) offset_data, 4);
+ } else {
+ gst_byte_writer_put_uint32_le (&writer->tagwriter, offset);
+ }
} else if (writer->byte_order == G_BIG_ENDIAN) {
gst_byte_writer_put_uint16_be (&writer->tagwriter, exif_tag);
gst_byte_writer_put_uint16_be (&writer->tagwriter, exif_type);
gst_byte_writer_put_uint32_be (&writer->tagwriter, count);
- if (is_data) {
- gst_byte_writer_put_uint32_le (&writer->tagwriter, offset);
+ if (offset_data != NULL) {
+ gst_byte_writer_put_data (&writer->tagwriter, (guint8 *) offset_data, 4);
} else {
gst_byte_writer_put_uint32_be (&writer->tagwriter, offset);
}
guint32 offset = gst_byte_writer_get_size (&writer->datawriter);
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_RATIONAL,
- 1, offset, FALSE);
+ 1, offset, NULL);
gst_exif_writer_write_rational_data (writer, frac_n, frac_d);
}
guint32 offset = gst_byte_writer_get_size (&writer->datawriter);
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_SRATIONAL,
- 1, offset, FALSE);
+ 1, offset, NULL);
gst_exif_writer_write_signed_rational_data (writer, frac_n, frac_d);
}
GST_WRITE_UINT8 ((guint8 *) & offset, value);
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_BYTE,
- 1, offset, TRUE);
+ 1, offset, &offset);
}
static void
}
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_SHORT,
- 1, offset, TRUE);
+ 1, offset, &offset);
}
static void
}
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_LONG,
- 1, offset, TRUE);
+ 1, offset, &offset);
}
* resulting tag headers offset and the base offset */
offset = gst_byte_writer_get_size (&writer->datawriter);
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_UNDEFINED,
- size, offset, FALSE);
+ size, offset, NULL);
gst_byte_writer_put_data (&writer->datawriter, data, size);
} else {
/* small enough to go in the offset */
memcpy ((guint8 *) & offset, data, size);
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_UNDEFINED,
- size, offset, TRUE);
+ size, offset, &offset);
}
}
static void
write_exif_ascii_tag (GstExifWriter * writer, guint16 tag, const gchar * str)
{
- gint size;
guint32 offset = 0;
+ gchar *ascii_str;
+ gsize ascii_size;
+ GError *error = NULL;
- size = strlen (str) + 1;
+ ascii_str = g_convert (str, -1, "latin1", "utf8", NULL, &ascii_size, &error);
- if (size > 4) {
+ if (error) {
+ GST_WARNING ("Failed to convert exif tag to ascii: 0x%x - %s. Error: %s",
+ tag, str, error->message);
+ g_error_free (error);
+ g_free (ascii_str);
+ return;
+ }
+
+ /* add the \0 at the end */
+ ascii_size++;
+
+ if (ascii_size > 4) {
/* we only use the data offset here, later we add up the
* resulting tag headers offset and the base offset */
offset = gst_byte_writer_get_size (&writer->datawriter);
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_ASCII,
- size, offset, FALSE);
- gst_byte_writer_put_string (&writer->datawriter, str);
+ ascii_size, offset, NULL);
+ gst_byte_writer_put_string (&writer->datawriter, ascii_str);
} else {
/* small enough to go in the offset */
- memcpy ((guint8 *) & offset, str, size);
+ memcpy ((guint8 *) & offset, ascii_str, ascii_size);
gst_exif_writer_write_tag_header (writer, tag, EXIF_TYPE_ASCII,
- size, offset, TRUE);
+ ascii_size, offset, &offset);
}
+
+ g_free (ascii_str);
}
static void
{
GType tagtype;
gchar *str;
+ gchar *utfstr;
guint32 real_offset;
+ GError *error = NULL;
if (count > 4) {
if (offset < reader->base_offset) {
str = g_strndup ((gchar *) offset_as_data, count);
}
+ /* convert from ascii to utf8 */
+ if (g_utf8_validate (str, -1, NULL)) {
+ GST_DEBUG ("Exif string is already on utf8: %s", str);
+ utfstr = str;
+ } else {
+ GST_DEBUG ("Exif string isn't utf8, trying to convert from latin1: %s",
+ str);
+ utfstr = g_convert (str, count, "utf8", "latin1", NULL, NULL, &error);
+ g_free (str);
+ if (error) {
+ GST_WARNING ("Skipping tag %d:%s. Failed to convert ascii string "
+ "to utf8 : %s - %s", tag->exif_tag, tag->gst_tag, str,
+ error->message);
+ g_error_free (error);
+ g_free (utfstr);
+ return;
+ }
+ }
+
tagtype = gst_tag_get_type (tag->gst_tag);
if (tagtype == GST_TYPE_DATE_TIME) {
gint year = 0, month = 1, day = 1, hour = 0, minute = 0, second = 0;
- if (sscanf (str, "%04d:%02d:%02d %02d:%02d:%02d", &year, &month, &day,
+ if (sscanf (utfstr, "%04d:%02d:%02d %02d:%02d:%02d", &year, &month, &day,
&hour, &minute, &second) > 0) {
GstDateTime *d;
GST_WARNING ("Failed to parse %s into a datetime tag", str);
}
} else if (tagtype == G_TYPE_STRING) {
- gst_tag_list_add (reader->taglist, GST_TAG_MERGE_REPLACE, tag->gst_tag, str,
- NULL);
+ gst_tag_list_add (reader->taglist, GST_TAG_MERGE_REPLACE, tag->gst_tag,
+ utfstr, NULL);
} else {
GST_WARNING ("No parsing function associated to %x(%s)", tag->exif_tag,
tag->gst_tag);
}
- g_free (str);
+ g_free (utfstr);
}
static void
}
static GstBuffer *
-write_exif_ifd (const GstTagList * taglist, gboolean byte_order,
+write_exif_ifd (const GstTagList * taglist, guint byte_order,
guint32 base_offset, const GstExifTagMatch * tag_map)
{
GstExifWriter writer;
GST_DEBUG ("Adding inner ifd: %x", tag_map[i].exif_tag);
gst_exif_writer_write_tag_header (&writer, tag_map[i].exif_tag,
EXIF_TYPE_LONG, 1,
- gst_byte_writer_get_size (&writer.datawriter), FALSE);
+ gst_byte_writer_get_size (&writer.datawriter), NULL);
gst_byte_writer_put_data (&writer.datawriter,
GST_BUFFER_DATA (inner_ifd), GST_BUFFER_SIZE (inner_ifd));
gst_buffer_unref (inner_ifd);
else
gst_byte_writer_put_uint16_be (&writer.tagwriter, writer.tags_total);
- GST_DEBUG ("Number of tags rewriten to %d", writer.tags_total);
+ GST_DEBUG ("Number of tags rewritten to %d", writer.tags_total);
/* now that we know the tag headers size, we can add the offsets */
gst_exif_tag_rewrite_offsets (&writer.tagwriter, writer.byte_order,
case EXIF_TYPE_UNDEFINED:
parse_exif_undefined_tag (exif_reader, &tag_map[map_index],
tagdata.count, tagdata.offset, tagdata.offset_as_data);
+ break;
case EXIF_TYPE_LONG:
parse_exif_long_tag (exif_reader, &tag_map[map_index],
tagdata.count, tagdata.offset, tagdata.offset_as_data);
offset = gst_byte_writer_get_size (&writer->datawriter);
gst_exif_writer_write_tag_header (writer, exiftag->exif_tag,
- EXIF_TYPE_RATIONAL, 3, offset, FALSE);
+ EXIF_TYPE_RATIONAL, 3, offset, NULL);
gst_exif_writer_write_rational_data (writer, degrees, 1);
gst_exif_writer_write_rational_data (writer, minutes, 1);
gst_exif_writer_write_rational_data (writer, seconds, 1);
}
if (exiftag->exif_tag != next_tagdata.tag) {
- GST_WARNING ("This is not a geo cordinate tag");
+ GST_WARNING ("This is not a geo coordinate tag");
return ret;
}
unit = GST_READ_UINT16_BE (tagdata->offset_as_data);
}
- if (unit != 2 && unit != 3) {
- GST_WARNING ("Invalid resolution unit, ignoring PPI tags");
- return 0;
- }
-
- xres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_XRESOLUTION);
- yres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_YRESOLUTION);
-
switch (unit) {
case 2: /* inch */
multiplier = 1;
multiplier = 1 / 2.54;
break;
default:
- multiplier = 1;
- g_assert_not_reached ();
- break;
+ GST_WARNING ("Invalid resolution unit, ignoring PPI tags");
+ return 0;
}
+ xres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_XRESOLUTION);
if (xres) {
parse_exif_rational_tag (exif_reader, GST_TAG_IMAGE_HORIZONTAL_PPI,
xres->count, xres->offset, multiplier, FALSE);
}
+ yres = gst_exif_reader_get_pending_tag (exif_reader, EXIF_TAG_YRESOLUTION);
if (yres) {
parse_exif_rational_tag (exif_reader, GST_TAG_IMAGE_VERTICAL_PPI,
yres->count, yres->offset, multiplier, FALSE);
if (gst_tag_list_peek_string_index (taglist, GST_TAG_CAPTURING_SOURCE, 0,
&str)) {
if (strcmp (str, "dsc") == 0) {
- value = 0;
+ value = 1;
}
}
#include <stdlib.h>
#include <string.h>
-static const gchar *genres[] = {
- "Blues",
- "Classic Rock",
- "Country",
- "Dance",
- "Disco",
- "Funk",
- "Grunge",
- "Hip-Hop",
- "Jazz",
- "Metal",
- "New Age",
- "Oldies",
- "Other",
- "Pop",
- "R&B",
- "Rap",
- "Reggae",
- "Rock",
- "Techno",
- "Industrial",
- "Alternative",
- "Ska",
- "Death Metal",
- "Pranks",
- "Soundtrack",
- "Euro-Techno",
- "Ambient",
- "Trip-Hop",
- "Vocal",
- "Jazz+Funk",
- "Fusion",
- "Trance",
- "Classical",
- "Instrumental",
- "Acid",
- "House",
- "Game",
- "Sound Clip",
- "Gospel",
- "Noise",
- "Alternative Rock",
- "Bass",
- "Soul",
- "Punk",
- "Space",
- "Meditative",
- "Instrumental Pop",
- "Instrumental Rock",
- "Ethnic",
- "Gothic",
- "Darkwave",
- "Techno-Industrial",
- "Electronic",
- "Pop-Folk",
- "Eurodance",
- "Dream",
- "Southern Rock",
- "Comedy",
- "Cult",
- "Gangsta",
- "Top 40",
- "Christian Rap",
- "Pop/Funk",
- "Jungle",
- "Native American",
- "Cabaret",
- "New Wave",
- "Psychedelic",
- "Rave",
- "Showtunes",
- "Trailer",
- "Lo-Fi",
- "Tribal",
- "Acid Punk",
- "Acid Jazz",
- "Polka",
- "Retro",
- "Musical",
- "Rock & Roll",
- "Hard Rock",
- "Folk",
- "Folk/Rock",
- "National Folk",
- "Swing",
- "Fusion",
- "Bebob",
- "Latin",
- "Revival",
- "Celtic",
- "Bluegrass",
- "Avantgarde",
- "Gothic Rock",
- "Progressive Rock",
- "Psychedelic Rock",
- "Symphonic Rock",
- "Slow Rock",
- "Big Band",
- "Chorus",
- "Easy Listening",
- "Acoustic",
- "Humour",
- "Speech",
- "Chanson",
- "Opera",
- "Chamber Music",
- "Sonata",
- "Symphony",
- "Booty Bass",
- "Primus",
- "Porn Groove",
- "Satire",
- "Slow Jam",
- "Club",
- "Tango",
- "Samba",
- "Folklore",
- "Ballad",
- "Power Ballad",
- "Rhythmic Soul",
- "Freestyle",
- "Duet",
- "Punk Rock",
- "Drum Solo",
- "A Capella",
- "Euro-House",
- "Dance Hall",
- "Goa",
- "Drum & Bass",
- "Club-House",
- "Hardcore",
- "Terror",
- "Indie",
- "BritPop",
- "Negerpunk",
- "Polsk Punk",
- "Beat",
- "Christian Gangsta Rap",
- "Heavy Metal",
- "Black Metal",
- "Crossover",
- "Contemporary Christian",
- "Christian Rock",
- "Merengue",
- "Salsa",
- "Thrash Metal",
- "Anime",
- "Jpop",
- "Synthpop"
+static const gchar genres[] =
+ "Blues\000Classic Rock\000Country\000Dance\000Disco\000Funk\000Grunge\000"
+ "Hip-Hop\000Jazz\000Metal\000New Age\000Oldies\000Other\000Pop\000R&B\000"
+ "Rap\000Reggae\000Rock\000Techno\000Industrial\000Alternative\000Ska\000"
+ "Death Metal\000Pranks\000Soundtrack\000Euro-Techno\000Ambient\000Trip-Hop"
+ "\000Vocal\000Jazz+Funk\000Fusion\000Trance\000Classical\000Instrumental\000"
+ "Acid\000House\000Game\000Sound Clip\000Gospel\000Noise\000Alternative Rock"
+ "\000Bass\000Soul\000Punk\000Space\000Meditative\000Instrumental Pop\000"
+ "Instrumental Rock\000Ethnic\000Gothic\000Darkwave\000Techno-Industrial\000"
+ "Electronic\000Pop-Folk\000Eurodance\000Dream\000Southern Rock\000Comedy"
+ "\000Cult\000Gangsta\000Top 40\000Christian Rap\000Pop/Funk\000Jungle\000"
+ "Native American\000Cabaret\000New Wave\000Psychedelic\000Rave\000Showtunes"
+ "\000Trailer\000Lo-Fi\000Tribal\000Acid Punk\000Acid Jazz\000Polka\000"
+ "Retro\000Musical\000Rock & Roll\000Hard Rock\000Folk\000Folk/Rock\000"
+ "National Folk\000Swing\000Bebob\000Latin\000Revival\000Celtic\000Bluegrass"
+ "\000Avantgarde\000Gothic Rock\000Progressive Rock\000Psychedelic Rock\000"
+ "Symphonic Rock\000Slow Rock\000Big Band\000Chorus\000Easy Listening\000"
+ "Acoustic\000Humour\000Speech\000Chanson\000Opera\000Chamber Music\000"
+ "Sonata\000Symphony\000Booty Bass\000Primus\000Porn Groove\000Satire\000"
+ "Slow Jam\000Club\000Tango\000Samba\000Folklore\000Ballad\000Power Ballad\000"
+ "Rhythmic Soul\000Freestyle\000Duet\000Punk Rock\000Drum Solo\000A Capella"
+ "\000Euro-House\000Dance Hall\000Goa\000Drum & Bass\000Club-House\000"
+ "Hardcore\000Terror\000Indie\000BritPop\000Negerpunk\000Polsk Punk\000"
+ "Beat\000Christian Gangsta Rap\000Heavy Metal\000Black Metal\000"
+ "Crossover\000Contemporary Christian\000Christian Rock\000Merengue\000"
+ "Salsa\000Thrash Metal\000Anime\000Jpop\000Synthpop";
+
+static const guint16 genres_idx[] = {
+ 0, 6, 19, 27, 33, 39, 44, 51, 59, 64, 70, 78, 85, 91, 95, 99, 103, 110, 115,
+ 122, 133, 145, 149, 161, 168, 179, 191, 199, 208, 214, 224, 231, 238, 248,
+ 261, 266, 272, 277, 288, 295, 301, 318, 323, 328, 333, 339, 350, 367, 385,
+ 392, 399, 408, 426, 437, 446, 456, 462, 476, 483, 488, 496, 503, 517, 526,
+ 533, 549, 557, 566, 578, 583, 593, 601, 607, 614, 624, 634, 640, 646, 654,
+ 666, 676, 681, 691, 705, 224, 711, 717, 723, 731, 738, 748, 759, 771, 788,
+ 805, 820, 830, 839, 846, 861, 870, 877, 884, 892, 898, 912, 919, 928, 939,
+ 946, 958, 965, 974, 979, 985, 991, 1000, 1007, 1020, 1034, 1044, 1049,
+ 1059, 1069, 1079, 1090, 1101, 1105, 1117, 1128, 1137, 1144, 1150, 1158,
+ 1168, 1179, 1184, 1206, 1218, 1230, 1240, 1263, 1278, 1287, 1293, 1306,
+ 1312, 1317
};
static const GstTagEntryMatch tag_matches[] = {
*
* Returns: The corresponding GStreamer tag or NULL if none exists.
*/
-G_CONST_RETURN gchar *
+const gchar *
gst_tag_from_id3_tag (const gchar * id3_tag)
{
int i = 0;
*
* Returns: The corresponding GStreamer tag or NULL if none exists.
*/
-G_CONST_RETURN gchar *
+const gchar *
gst_tag_from_id3_user_tag (const gchar * type, const gchar * id3_user_tag)
{
int i = 0;
*
* Returns: The corresponding ID3v2 tag or NULL if none exists.
*/
-G_CONST_RETURN gchar *
+const gchar *
gst_tag_to_id3_tag (const gchar * gst_tag)
{
int i = 0;
guint
gst_tag_id3_genre_count (void)
{
- return G_N_ELEMENTS (genres);
+ return G_N_ELEMENTS (genres_idx);
}
/**
*
* Returns: the genre or NULL if no genre is associated with that ID.
*/
-G_CONST_RETURN gchar *
+const gchar *
gst_tag_id3_genre_get (const guint id)
{
- if (id >= G_N_ELEMENTS (genres))
+ guint idx;
+
+ if (id >= G_N_ELEMENTS (genres_idx))
return NULL;
- return genres[id];
+ idx = genres_idx[id];
+ g_assert (idx < sizeof (genres));
+ return &genres[idx];
}
/**
{
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_static_pad_template (element_class, &src_factory);
GST_DEBUG_CATEGORY_INIT (tagdemux_debug, "tagdemux", 0,
"tag demux base class");
demux->priv->strip_start + demux->priv->strip_end) {
/* There was no data (probably due to a truncated file) */
GST_DEBUG_OBJECT (demux, "No data in file");
- return FALSE;
+ /* so we don't know about type either */
+ GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), (NULL));
+ goto done_activate;
}
/* 3 - Do typefinding on data */
--- /dev/null
+/* GStreamer tag muxer base class
+ * Copyright (C) 2006 Christophe Fergeau <teuf@gnome.org>
+ * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2006 Sebastian Dröge <slomo@circular-chaos.org>
+ * Copyright (C) 2009 Pioneers of the Inevitable <songbird@songbirdnest.com>
+ *
+ * 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:gsttagmux
+ * @see_also: GstApeMux, GstId3Mux
+ * @short_description: Base class for adding tags that are in one single chunk
+ * directly at the beginning or at the end of a file
+ *
+ * <refsect2>
+ * <para>
+ * Provides a base class for adding tags at the beginning or end of a
+ * stream.
+ * </para>
+ * <title>Deriving from GstTagMux</title>
+ * <para>
+ * Subclasses have to do the following things:
+ * <itemizedlist>
+ * <listitem><para>
+ * In their base init function, they must add pad templates for the sink
+ * pad and the source pad to the element class, describing the media type
+ * they accept and output in the caps of the pad template.
+ * </para></listitem>
+ * <listitem><para>
+ * In their class init function, they must override the
+ * GST_TAG_MUX_CLASS(mux_klass)->render_start_tag and/or
+ * GST_TAG_MUX_CLASS(mux_klass)->render_end_tag vfuncs and set up a render
+ * function.
+ * </para></listitem>
+ * </itemizedlist>
+ * </para>
+ * </refsect2>
+ *
+ * Since 0.10.36
+ */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <string.h>
+#include <gst/gsttagsetter.h>
+#include <gst/tag/tag.h>
+
+#include "gsttagmux.h"
+
+struct _GstTagMuxPrivate
+{
+ GstPad *srcpad;
+ GstPad *sinkpad;
+ GstTagList *event_tags; /* tags received from upstream elements */
+ GstTagList *final_tags; /* Final set of tags used for muxing */
+ gsize start_tag_size;
+ gsize end_tag_size;
+ gboolean render_start_tag;
+ gboolean render_end_tag;
+
+ gint64 current_offset;
+ gint64 max_offset;
+
+ GstEvent *newsegment_ev; /* cached newsegment event from upstream */
+};
+
+GST_DEBUG_CATEGORY_STATIC (gst_tag_mux_debug);
+#define GST_CAT_DEFAULT gst_tag_mux_debug
+
+static void
+gst_tag_mux_iface_init (GType tag_type)
+{
+ static const GInterfaceInfo tag_setter_info = {
+ NULL,
+ NULL,
+ NULL
+ };
+
+ g_type_add_interface_static (tag_type, GST_TYPE_TAG_SETTER, &tag_setter_info);
+}
+
+GST_BOILERPLATE_FULL (GstTagMux, gst_tag_mux,
+ GstElement, GST_TYPE_ELEMENT, gst_tag_mux_iface_init);
+
+
+static GstStateChangeReturn
+gst_tag_mux_change_state (GstElement * element, GstStateChange transition);
+static GstFlowReturn gst_tag_mux_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_tag_mux_sink_event (GstPad * pad, GstEvent * event);
+
+static void
+gst_tag_mux_finalize (GObject * obj)
+{
+ GstTagMux *mux = GST_TAG_MUX (obj);
+
+ if (mux->priv->newsegment_ev) {
+ gst_event_unref (mux->priv->newsegment_ev);
+ mux->priv->newsegment_ev = NULL;
+ }
+
+ if (mux->priv->event_tags) {
+ gst_tag_list_free (mux->priv->event_tags);
+ mux->priv->event_tags = NULL;
+ }
+
+ if (mux->priv->final_tags) {
+ gst_tag_list_free (mux->priv->final_tags);
+ mux->priv->final_tags = NULL;
+ }
+
+ G_OBJECT_CLASS (parent_class)->finalize (obj);
+}
+
+static void
+gst_tag_mux_base_init (gpointer g_class)
+{
+ GST_DEBUG_CATEGORY_INIT (gst_tag_mux_debug, "tagmux", 0,
+ "tag muxer base class");
+}
+
+static void
+gst_tag_mux_class_init (GstTagMuxClass * klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
+
+ gobject_class = (GObjectClass *) klass;
+ gstelement_class = (GstElementClass *) klass;
+
+ gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_tag_mux_finalize);
+ gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_tag_mux_change_state);
+
+ g_type_class_add_private (klass, sizeof (GstTagMuxPrivate));
+}
+
+static void
+gst_tag_mux_init (GstTagMux * mux, GstTagMuxClass * mux_class)
+{
+ GstElementClass *element_klass = GST_ELEMENT_CLASS (mux_class);
+ GstPadTemplate *tmpl;
+
+ mux->priv =
+ G_TYPE_INSTANCE_GET_PRIVATE (mux, GST_TYPE_TAG_MUX, GstTagMuxPrivate);
+
+ /* pad through which data comes in to the element */
+ tmpl = gst_element_class_get_pad_template (element_klass, "sink");
+ if (tmpl) {
+ mux->priv->sinkpad = gst_pad_new_from_template (tmpl, "sink");
+ } else {
+ g_warning ("GstTagMux subclass '%s' did not install a %s pad template!\n",
+ G_OBJECT_CLASS_NAME (mux_class), "sink");
+ mux->priv->sinkpad = gst_pad_new ("sink", GST_PAD_SINK);
+ }
+ gst_pad_set_chain_function (mux->priv->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_tag_mux_chain));
+ gst_pad_set_event_function (mux->priv->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_tag_mux_sink_event));
+ gst_element_add_pad (GST_ELEMENT (mux), mux->priv->sinkpad);
+
+ /* pad through which data goes out of the element */
+ tmpl = gst_element_class_get_pad_template (element_klass, "src");
+ if (tmpl) {
+ GstCaps *tmpl_caps = gst_pad_template_get_caps (tmpl);
+
+ mux->priv->srcpad = gst_pad_new_from_template (tmpl, "src");
+ gst_pad_use_fixed_caps (mux->priv->srcpad);
+ if (tmpl_caps != NULL && gst_caps_is_fixed (tmpl_caps)) {
+ gst_pad_set_caps (mux->priv->srcpad, tmpl_caps);
+ }
+ } else {
+ g_warning ("GstTagMux subclass '%s' did not install a %s pad template!\n",
+ G_OBJECT_CLASS_NAME (mux_class), "source");
+ mux->priv->srcpad = gst_pad_new ("src", GST_PAD_SRC);
+ }
+ gst_element_add_pad (GST_ELEMENT (mux), mux->priv->srcpad);
+
+ mux->priv->render_start_tag = TRUE;
+ mux->priv->render_end_tag = TRUE;
+}
+
+static GstTagList *
+gst_tag_mux_get_tags (GstTagMux * mux)
+{
+ GstTagSetter *tagsetter = GST_TAG_SETTER (mux);
+ const GstTagList *tagsetter_tags;
+ GstTagMergeMode merge_mode;
+
+ if (mux->priv->final_tags)
+ return mux->priv->final_tags;
+
+ tagsetter_tags = gst_tag_setter_get_tag_list (tagsetter);
+ merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
+
+ GST_LOG_OBJECT (mux, "merging tags, merge mode = %d", merge_mode);
+ GST_LOG_OBJECT (mux, "event tags: %" GST_PTR_FORMAT, mux->priv->event_tags);
+ GST_LOG_OBJECT (mux, "set tags: %" GST_PTR_FORMAT, tagsetter_tags);
+
+ mux->priv->final_tags =
+ gst_tag_list_merge (tagsetter_tags, mux->priv->event_tags, merge_mode);
+
+ GST_LOG_OBJECT (mux, "final tags: %" GST_PTR_FORMAT, mux->priv->final_tags);
+
+ return mux->priv->final_tags;
+}
+
+static GstFlowReturn
+gst_tag_mux_render_start_tag (GstTagMux * mux)
+{
+ GstTagMuxClass *klass;
+ GstBuffer *buffer;
+ GstTagList *taglist;
+ GstEvent *event;
+ GstFlowReturn ret;
+
+ taglist = gst_tag_mux_get_tags (mux);
+
+ klass = GST_TAG_MUX_CLASS (G_OBJECT_GET_CLASS (mux));
+
+ if (klass->render_start_tag == NULL)
+ goto no_vfunc;
+
+ buffer = klass->render_start_tag (mux, taglist);
+
+ /* Null buffer is ok, just means we're not outputting anything */
+ if (buffer == NULL) {
+ GST_INFO_OBJECT (mux, "No start tag generated");
+ mux->priv->start_tag_size = 0;
+ return GST_FLOW_OK;
+ }
+
+ if (GST_BUFFER_CAPS (buffer) == NULL) {
+ buffer = gst_buffer_make_metadata_writable (buffer);
+ gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->priv->srcpad));
+ }
+
+ mux->priv->start_tag_size = GST_BUFFER_SIZE (buffer);
+ GST_LOG_OBJECT (mux, "tag size = %" G_GSIZE_FORMAT " bytes",
+ mux->priv->start_tag_size);
+
+ /* Send newsegment event from byte position 0, so the tag really gets
+ * written to the start of the file, independent of the upstream segment */
+ gst_pad_push_event (mux->priv->srcpad,
+ gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES, 0, -1, 0));
+
+ /* Send an event about the new tags to downstream elements */
+ /* gst_event_new_tag takes ownership of the list, so use a copy */
+ event = gst_event_new_tag (gst_tag_list_copy (taglist));
+ gst_pad_push_event (mux->priv->srcpad, event);
+
+ GST_BUFFER_OFFSET (buffer) = 0;
+ ret = gst_pad_push (mux->priv->srcpad, buffer);
+
+ mux->priv->current_offset = mux->priv->start_tag_size;
+ mux->priv->max_offset =
+ MAX (mux->priv->max_offset, mux->priv->current_offset);
+
+ return ret;
+
+no_vfunc:
+ {
+ GST_ERROR_OBJECT (mux, "Subclass does not implement "
+ "render_start_tag vfunc!");
+ return GST_FLOW_ERROR;
+ }
+}
+
+static GstFlowReturn
+gst_tag_mux_render_end_tag (GstTagMux * mux)
+{
+ GstTagMuxClass *klass;
+ GstBuffer *buffer;
+ GstTagList *taglist;
+ GstFlowReturn ret;
+
+ taglist = gst_tag_mux_get_tags (mux);
+
+ klass = GST_TAG_MUX_CLASS (G_OBJECT_GET_CLASS (mux));
+
+ if (klass->render_end_tag == NULL)
+ goto no_vfunc;
+
+ buffer = klass->render_end_tag (mux, taglist);
+
+ if (buffer == NULL) {
+ GST_INFO_OBJECT (mux, "No end tag generated");
+ mux->priv->end_tag_size = 0;
+ return GST_FLOW_OK;
+ }
+
+ if (GST_BUFFER_CAPS (buffer) == NULL) {
+ buffer = gst_buffer_make_metadata_writable (buffer);
+ gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->priv->srcpad));
+ }
+
+ mux->priv->end_tag_size = GST_BUFFER_SIZE (buffer);
+ GST_LOG_OBJECT (mux, "tag size = %" G_GSIZE_FORMAT " bytes",
+ mux->priv->end_tag_size);
+
+ /* Send newsegment event from the end of the file, so it gets written there,
+ independent of whatever new segment events upstream has sent us */
+ gst_pad_push_event (mux->priv->srcpad,
+ gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES,
+ mux->priv->max_offset, -1, 0));
+
+ GST_BUFFER_OFFSET (buffer) = mux->priv->max_offset;
+ ret = gst_pad_push (mux->priv->srcpad, buffer);
+
+ return ret;
+
+no_vfunc:
+ {
+ GST_ERROR_OBJECT (mux, "Subclass does not implement "
+ "render_end_tag vfunc!");
+ return GST_FLOW_ERROR;
+ }
+}
+
+static GstEvent *
+gst_tag_mux_adjust_event_offsets (GstTagMux * mux,
+ const GstEvent * newsegment_event)
+{
+ GstFormat format;
+ gint64 start, stop, cur;
+
+ gst_event_parse_new_segment ((GstEvent *) newsegment_event, NULL, NULL,
+ &format, &start, &stop, &cur);
+
+ g_assert (format == GST_FORMAT_BYTES);
+
+ if (start != -1)
+ start += mux->priv->start_tag_size;
+ if (stop != -1)
+ stop += mux->priv->start_tag_size;
+ if (cur != -1)
+ cur += mux->priv->start_tag_size;
+
+ GST_DEBUG_OBJECT (mux, "adjusting newsegment event offsets to start=%"
+ G_GINT64_FORMAT ", stop=%" G_GINT64_FORMAT ", cur=%" G_GINT64_FORMAT
+ " (delta = +%" G_GSIZE_FORMAT ")", start, stop, cur,
+ mux->priv->start_tag_size);
+
+ return gst_event_new_new_segment (TRUE, 1.0, format, start, stop, cur);
+}
+
+static GstFlowReturn
+gst_tag_mux_chain (GstPad * pad, GstBuffer * buffer)
+{
+ GstTagMux *mux = GST_TAG_MUX (GST_OBJECT_PARENT (pad));
+ GstFlowReturn ret;
+ int length;
+
+ if (mux->priv->render_start_tag) {
+
+ GST_INFO_OBJECT (mux, "Adding tags to stream");
+ ret = gst_tag_mux_render_start_tag (mux);
+ if (ret != GST_FLOW_OK) {
+ GST_DEBUG_OBJECT (mux, "flow: %s", gst_flow_get_name (ret));
+ gst_buffer_unref (buffer);
+ return ret;
+ }
+
+ /* Now send the cached newsegment event that we got from upstream */
+ if (mux->priv->newsegment_ev) {
+ gint64 start;
+ GstEvent *newseg;
+
+ GST_DEBUG_OBJECT (mux, "sending cached newsegment event");
+ newseg = gst_tag_mux_adjust_event_offsets (mux, mux->priv->newsegment_ev);
+ gst_event_unref (mux->priv->newsegment_ev);
+ mux->priv->newsegment_ev = NULL;
+
+ gst_event_parse_new_segment (newseg, NULL, NULL, NULL, &start, NULL,
+ NULL);
+
+ gst_pad_push_event (mux->priv->srcpad, newseg);
+ mux->priv->current_offset = start;
+ mux->priv->max_offset =
+ MAX (mux->priv->max_offset, mux->priv->current_offset);
+ } else {
+ /* upstream sent no newsegment event or only one in a non-BYTE format */
+ }
+
+ mux->priv->render_start_tag = FALSE;
+ }
+
+ buffer = gst_buffer_make_metadata_writable (buffer);
+
+ if (GST_BUFFER_OFFSET (buffer) != GST_BUFFER_OFFSET_NONE) {
+ GST_LOG_OBJECT (mux, "Adjusting buffer offset from %" G_GINT64_FORMAT
+ " to %" G_GINT64_FORMAT, GST_BUFFER_OFFSET (buffer),
+ GST_BUFFER_OFFSET (buffer) + mux->priv->start_tag_size);
+ GST_BUFFER_OFFSET (buffer) += mux->priv->start_tag_size;
+ }
+
+ length = GST_BUFFER_SIZE (buffer);
+
+ gst_buffer_set_caps (buffer, GST_PAD_CAPS (mux->priv->srcpad));
+ ret = gst_pad_push (mux->priv->srcpad, buffer);
+
+ mux->priv->current_offset += length;
+ mux->priv->max_offset =
+ MAX (mux->priv->max_offset, mux->priv->current_offset);
+
+ return ret;
+}
+
+static gboolean
+gst_tag_mux_sink_event (GstPad * pad, GstEvent * event)
+{
+ GstTagMux *mux;
+ gboolean result;
+
+ mux = GST_TAG_MUX (gst_pad_get_parent (pad));
+ result = FALSE;
+
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_TAG:{
+ GstTagList *tags;
+
+ gst_event_parse_tag (event, &tags);
+
+ GST_INFO_OBJECT (mux, "Got tag event: %" GST_PTR_FORMAT, tags);
+
+ if (mux->priv->event_tags != NULL) {
+ gst_tag_list_insert (mux->priv->event_tags, tags,
+ GST_TAG_MERGE_REPLACE);
+ } else {
+ mux->priv->event_tags = gst_tag_list_copy (tags);
+ }
+
+ GST_INFO_OBJECT (mux, "Event tags are now: %" GST_PTR_FORMAT,
+ mux->priv->event_tags);
+
+ /* just drop the event, we'll push a new tag event in render_start_tag */
+ gst_event_unref (event);
+ result = TRUE;
+ break;
+ }
+ case GST_EVENT_NEWSEGMENT:{
+ GstFormat fmt;
+ gint64 start;
+
+ gst_event_parse_new_segment (event, NULL, NULL, &fmt, &start, NULL, NULL);
+
+ if (fmt != GST_FORMAT_BYTES) {
+ GST_WARNING_OBJECT (mux, "dropping newsegment event in %s format",
+ gst_format_get_name (fmt));
+ gst_event_unref (event);
+ break;
+ }
+
+ if (mux->priv->render_start_tag) {
+ /* we have not rendered the tag yet, which means that we don't know
+ * how large it is going to be yet, so we can't adjust the offsets
+ * here at this point and need to cache the newsegment event for now
+ * (also, there could be tag events coming after this newsegment event
+ * and before the first buffer). */
+ if (mux->priv->newsegment_ev) {
+ GST_WARNING_OBJECT (mux, "discarding old cached newsegment event");
+ gst_event_unref (mux->priv->newsegment_ev);
+ }
+
+ GST_LOG_OBJECT (mux, "caching newsegment event for later");
+ mux->priv->newsegment_ev = event;
+ } else {
+ GST_DEBUG_OBJECT (mux, "got newsegment event, adjusting offsets");
+ gst_pad_push_event (mux->priv->srcpad,
+ gst_tag_mux_adjust_event_offsets (mux, event));
+ gst_event_unref (event);
+
+ mux->priv->current_offset = start;
+ mux->priv->max_offset =
+ MAX (mux->priv->max_offset, mux->priv->current_offset);
+ }
+ event = NULL;
+ result = TRUE;
+ break;
+ }
+ case GST_EVENT_EOS:{
+ if (mux->priv->render_end_tag) {
+ GstFlowReturn ret;
+
+ GST_INFO_OBJECT (mux, "Adding tags to stream");
+ ret = gst_tag_mux_render_end_tag (mux);
+ if (ret != GST_FLOW_OK) {
+ GST_DEBUG_OBJECT (mux, "flow: %s", gst_flow_get_name (ret));
+ return ret;
+ }
+
+ mux->priv->render_end_tag = FALSE;
+ }
+
+ /* Now forward EOS */
+ result = gst_pad_event_default (pad, event);
+ break;
+ }
+ default:
+ result = gst_pad_event_default (pad, event);
+ break;
+ }
+
+ gst_object_unref (mux);
+
+ return result;
+}
+
+
+static GstStateChangeReturn
+gst_tag_mux_change_state (GstElement * element, GstStateChange transition)
+{
+ GstTagMux *mux;
+ GstStateChangeReturn result;
+
+ mux = GST_TAG_MUX (element);
+
+ result = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+ if (result != GST_STATE_CHANGE_SUCCESS) {
+ return result;
+ }
+
+ switch (transition) {
+ case GST_STATE_CHANGE_PAUSED_TO_READY:{
+ if (mux->priv->newsegment_ev) {
+ gst_event_unref (mux->priv->newsegment_ev);
+ mux->priv->newsegment_ev = NULL;
+ }
+ if (mux->priv->event_tags) {
+ gst_tag_list_free (mux->priv->event_tags);
+ mux->priv->event_tags = NULL;
+ }
+ mux->priv->start_tag_size = 0;
+ mux->priv->end_tag_size = 0;
+ mux->priv->render_start_tag = TRUE;
+ mux->priv->render_end_tag = TRUE;
+ mux->priv->current_offset = 0;
+ mux->priv->max_offset = 0;
+ break;
+ }
+ default:
+ break;
+ }
+
+ return result;
+}
--- /dev/null
+/* GStreamer tag muxer base class
+ * Copyright (C) 2006 Christophe Fergeau <teuf@gnome.org>
+ * Copyright (C) 2006,2011 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2009 Pioneers of the Inevitable <songbird@songbirdnest.com>
+ *
+ * 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_TAG_MUX_H
+#define GST_TAG_MUX_H
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_TAG_MUX \
+ (gst_tag_mux_get_type())
+#define GST_TAG_MUX(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TAG_MUX,GstTagMux))
+#define GST_TAG_MUX_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TAG_MUX,GstTagMuxClass))
+#define GST_IS_TAG_MUX(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TAG_MUX))
+#define GST_IS_TAG_MUX_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TAG_MUX))
+
+typedef struct _GstTagMux GstTagMux;
+typedef struct _GstTagMuxClass GstTagMuxClass;
+typedef struct _GstTagMuxPrivate GstTagMuxPrivate;
+
+/**
+ * GstTagMux:
+ * @element: parent element
+ *
+ * Opaque #GstTagMux structure.
+ *
+ * Since: 0.10.36
+ */
+struct _GstTagMux {
+ GstElement element;
+
+ /*< private >*/
+ GstTagMuxPrivate *priv;
+
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+/**
+ * GstTagMuxClass:
+ * @parent_class: the parent class.
+ * @render_start_tag: create a tag buffer to add to the beginning of the
+ * input stream given a tag list, or NULL
+ * @render_end_tag: create a tag buffer to add to the end of the
+ * input stream given a tag list, or NULL
+ *
+ * The #GstTagMuxClass structure. Subclasses need to override at least one
+ * of the two render vfuncs.
+ *
+ * Since: 0.10.36
+ */
+struct _GstTagMuxClass {
+ GstElementClass parent_class;
+
+ /* vfuncs */
+ GstBuffer * (*render_start_tag) (GstTagMux * mux, const GstTagList * tag_list);
+ GstBuffer * (*render_end_tag) (GstTagMux * mux, const GstTagList * tag_list);
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+GType gst_tag_mux_get_type (void);
+
+G_END_DECLS
+
+#endif
* http://mail.kde.org/pipermail/amarok/2006-May/000090.html
*/
{GST_TAG_BEATS_PER_MINUTE, "BPM"},
+ /* What GStreamer calls encoder ("encoder used to encode this stream") is
+ stored in the vendor string in Vorbis/Theora/Kate and possibly others.
+ The Vorbis comment packet used in those streams uses ENCODER as the name
+ of the encoding program, which GStreamer calls application-name. */
+ {GST_TAG_APPLICATION_NAME, "ENCODER"},
{NULL, NULL}
};
*
* Returns: The corresponding GStreamer tag or NULL if none exists.
*/
-G_CONST_RETURN gchar *
+const gchar *
gst_tag_from_vorbis_tag (const gchar * vorbis_tag)
{
int i = 0;
*
* Returns: The corresponding vorbiscomment tag or NULL if none exists.
*/
-G_CONST_RETURN gchar *
+const gchar *
gst_tag_to_vorbis_tag (const gchar * gst_tag)
{
int i = 0;
* Creates a new tag list that contains the information parsed out of a
* vorbiscomment packet.
*
- * Returns: A #GList of newly-allowcated key=value strings. Free with
+ * Returns: A #GList of newly-allocated key=value strings. Free with
* g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)
*/
GList *
"exif",
"photoshop",
"Iptc4xmpCore",
+ "Iptc4xmpExt",
NULL
};
return FALSE;
}
+typedef enum
+{
+ GstXmpTagTypeNone = 0,
+ GstXmpTagTypeSimple,
+ GstXmpTagTypeBag,
+ GstXmpTagTypeSeq,
+ GstXmpTagTypeStruct,
+
+ /* Not really a xmp type, this is a tag that in gst is represented with
+ * a single value and on xmp it needs 2 (or more) simple values
+ *
+ * e.g. GST_TAG_GEO_LOCATION_ELEVATION needs to be mapped into 2 complementary
+ * tags in the exif's schema. One of them stores the absolute elevation,
+ * and the other one stores if it is above of below sea level.
+ */
+ GstXmpTagTypeCompound
+} GstXmpTagType;
-#define GST_XMP_TAG_TYPE_SIMPLE 0
-#define GST_XMP_TAG_TYPE_BAG 1
-#define GST_XMP_TAG_TYPE_SEQ 2
struct _XmpTag
{
+ const gchar *gst_tag;
const gchar *tag_name;
- gint type;
+ GstXmpTagType type;
+
+ /* some tags must be inside a Bag even
+ * if they are a single entry. Set it here so we know */
+ GstXmpTagType supertype;
+
+ /* For tags that need a rdf:parseType attribute */
+ const gchar *parse_type;
+
+ /* Used for struct and compound types */
+ GSList *children;
XmpSerializationFunc serialize;
XmpDeserializationFunc deserialize;
xmp_tag_get_merge_mode (XmpTag * xmptag)
{
switch (xmptag->type) {
- case GST_XMP_TAG_TYPE_BAG:
- case GST_XMP_TAG_TYPE_SEQ:
+ case GstXmpTagTypeBag:
+ case GstXmpTagTypeSeq:
return GST_TAG_MERGE_APPEND;
- case GST_XMP_TAG_TYPE_SIMPLE:
+ case GstXmpTagTypeSimple:
default:
return GST_TAG_MERGE_KEEP;
}
}
static const gchar *
-xmp_tag_get_type_name (XmpTag * xmptag)
+xmp_tag_type_get_name (GstXmpTagType tagtype)
{
- switch (xmptag->type) {
- case GST_XMP_TAG_TYPE_SEQ:
+ switch (tagtype) {
+ case GstXmpTagTypeSeq:
return "rdf:Seq";
+ case GstXmpTagTypeBag:
+ return "rdf:Bag";
default:
g_assert_not_reached ();
- case GST_XMP_TAG_TYPE_BAG:
- return "rdf:Bag";
}
}
struct _PendingXmpTag
{
- const gchar *gst_tag;
XmpTag *xmp_tag;
gchar *str;
};
typedef struct _PendingXmpTag PendingXmpTag;
-
/*
* A schema is a mapping of strings (the tag name in gstreamer) to a list of
- * tags in xmp (XmpTag). We need a list because some tags are split into 2
- * when serialized into xmp.
- * e.g. GST_TAG_GEO_LOCATION_ELEVATION needs to be mapped into 2 complementary
- * tags in the exif's schema. One of them stores the absolute elevation,
- * and the other one stores if it is above of below sea level.
+ * tags in xmp (XmpTag).
*/
typedef GHashTable GstXmpSchema;
#define gst_xmp_schema_lookup g_hash_table_lookup
*/
static GHashTable *__xmp_schemas;
+static GstXmpSchema *
+_gst_xmp_get_schema (const gchar * name)
+{
+ GQuark key;
+ GstXmpSchema *schema;
+
+ key = g_quark_from_string (name);
+
+ schema = g_hash_table_lookup (__xmp_schemas, GUINT_TO_POINTER (key));
+ if (!schema) {
+ GST_WARNING ("Schema %s doesn't exist", name);
+ }
+ return schema;
+}
+
static void
_gst_xmp_add_schema (const gchar * name, GstXmpSchema * schema)
{
}
static void
-_gst_xmp_schema_add_mapping (GstXmpSchema * schema, const gchar * gst_tag,
- GPtrArray * array)
+_gst_xmp_schema_add_mapping (GstXmpSchema * schema, XmpTag * tag)
{
GQuark key;
- key = g_quark_from_string (gst_tag);
+ key = g_quark_from_string (tag->gst_tag);
if (gst_xmp_schema_lookup (schema, GUINT_TO_POINTER (key))) {
- GST_WARNING ("Tag %s already present for the schema", gst_tag);
+ GST_WARNING ("Tag %s already present for the schema", tag->gst_tag);
g_assert_not_reached ();
return;
}
- gst_xmp_schema_insert (schema, GUINT_TO_POINTER (key), array);
+ gst_xmp_schema_insert (schema, GUINT_TO_POINTER (key), tag);
}
-static void
-_gst_xmp_schema_add_simple_mapping (GstXmpSchema * schema,
- const gchar * gst_tag, const gchar * xmp_tag, gint xmp_type,
- XmpSerializationFunc serialization_func,
+static XmpTag *
+gst_xmp_tag_create (const gchar * gst_tag, const gchar * xmp_tag,
+ gint xmp_type, XmpSerializationFunc serialization_func,
XmpDeserializationFunc deserialization_func)
{
XmpTag *xmpinfo;
- GPtrArray *array;
xmpinfo = g_slice_new (XmpTag);
+ xmpinfo->gst_tag = gst_tag;
xmpinfo->tag_name = xmp_tag;
xmpinfo->type = xmp_type;
+ xmpinfo->supertype = GstXmpTagTypeNone;
+ xmpinfo->parse_type = NULL;
xmpinfo->serialize = serialization_func;
xmpinfo->deserialize = deserialization_func;
+ xmpinfo->children = NULL;
+
+ return xmpinfo;
+}
+
+static XmpTag *
+gst_xmp_tag_create_compound (const gchar * gst_tag, const gchar * xmp_tag_a,
+ const gchar * xmp_tag_b, XmpSerializationFunc serialization_func_a,
+ XmpSerializationFunc serialization_func_b,
+ XmpDeserializationFunc deserialization_func)
+{
+ XmpTag *xmptag;
+ XmpTag *xmptag_a =
+ gst_xmp_tag_create (gst_tag, xmp_tag_a, GstXmpTagTypeSimple,
+ serialization_func_a, deserialization_func);
+ XmpTag *xmptag_b =
+ gst_xmp_tag_create (gst_tag, xmp_tag_b, GstXmpTagTypeSimple,
+ serialization_func_b, deserialization_func);
- array = g_ptr_array_sized_new (1);
- g_ptr_array_add (array, xmpinfo);
+ xmptag =
+ gst_xmp_tag_create (gst_tag, NULL, GstXmpTagTypeCompound, NULL, NULL);
- _gst_xmp_schema_add_mapping (schema, gst_tag, array);
+ xmptag->children = g_slist_prepend (xmptag->children, xmptag_b);
+ xmptag->children = g_slist_prepend (xmptag->children, xmptag_a);
+
+ return xmptag;
+}
+
+static void
+_gst_xmp_schema_add_simple_mapping (GstXmpSchema * schema,
+ const gchar * gst_tag, const gchar * xmp_tag, gint xmp_type,
+ XmpSerializationFunc serialization_func,
+ XmpDeserializationFunc deserialization_func)
+{
+ _gst_xmp_schema_add_mapping (schema,
+ gst_xmp_tag_create (gst_tag, xmp_tag, xmp_type, serialization_func,
+ deserialization_func));
}
/*
* appended, and the API is not public, so we shouldn't
* have our lists modified during usage
*/
+#if 0
static GPtrArray *
_xmp_tag_get_mapping (const gchar * gst_tag, XmpSerializationData * serdata)
{
}
return ret;
}
+#endif
/* finds the gst tag that maps to this xmp tag in this schema */
static const gchar *
GHashTableIter iter;
gpointer key, value;
const gchar *ret = NULL;
- gint index;
/* Iterate over the hashtable */
g_hash_table_iter_init (&iter, schema);
while (!ret && g_hash_table_iter_next (&iter, &key, &value)) {
- GPtrArray *array = (GPtrArray *) value;
-
- /* each mapping might contain complementary tags */
- for (index = 0; index < array->len; index++) {
- XmpTag *xmpinfo = (XmpTag *) g_ptr_array_index (array, index);
+ XmpTag *xmpinfo = (XmpTag *) value;
+ if (xmpinfo->tag_name) {
if (strcmp (xmpinfo->tag_name, xmp_tag) == 0) {
*_xmp_tag = xmpinfo;
ret = g_quark_to_string (GPOINTER_TO_UINT (key));
goto out;
}
+ } else if (xmpinfo->children) {
+ GSList *iter;
+ for (iter = xmpinfo->children; iter; iter = g_slist_next (iter)) {
+ XmpTag *child = iter->data;
+ if (strcmp (child->tag_name, xmp_tag) == 0) {
+ *_xmp_tag = child;
+ ret = g_quark_to_string (GPOINTER_TO_UINT (key));
+ goto out;
+ }
+ }
+ } else {
+ g_assert_not_reached ();
}
}
return;
}
- if (value < 0 || value > 100) {
+ if (value > 100) {
GST_WARNING ("Unsupported Rating tag %u (should be from 0 to 100), "
"ignoring", value);
return;
static gpointer
_init_xmp_tag_map (gpointer user_data)
{
- GPtrArray *array;
XmpTag *xmpinfo;
GstXmpSchema *schema;
*/
schema = gst_xmp_schema_new ();
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_ARTIST,
- "dc:creator", GST_XMP_TAG_TYPE_SEQ, NULL, NULL);
+ "dc:creator", GstXmpTagTypeSeq, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_COPYRIGHT,
- "dc:rights", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ "dc:rights", GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DATE, "dc:date",
- GST_XMP_TAG_TYPE_SEQ, NULL, NULL);
+ GstXmpTagTypeSeq, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DESCRIPTION,
- "dc:description", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ "dc:description", GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_KEYWORDS,
- "dc:subject", GST_XMP_TAG_TYPE_BAG, NULL, NULL);
+ "dc:subject", GstXmpTagTypeBag, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_TITLE, "dc:title",
- GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ GstXmpTagTypeSimple, NULL, NULL);
/* FIXME: we probably want GST_TAG_{,AUDIO_,VIDEO_}MIME_TYPE */
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_VIDEO_CODEC,
- "dc:format", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ "dc:format", GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_add_schema ("dc", schema);
/* xap (xmp) schema */
schema = gst_xmp_schema_new ();
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_USER_RATING,
- "xmp:Rating", GST_XMP_TAG_TYPE_SIMPLE, NULL, deserialize_xmp_rating);
+ "xmp:Rating", GstXmpTagTypeSimple, NULL, deserialize_xmp_rating);
_gst_xmp_add_schema ("xap", schema);
/* tiff */
schema = gst_xmp_schema_new ();
_gst_xmp_schema_add_simple_mapping (schema,
- GST_TAG_DEVICE_MANUFACTURER, "tiff:Make", GST_XMP_TAG_TYPE_SIMPLE, NULL,
+ GST_TAG_DEVICE_MANUFACTURER, "tiff:Make", GstXmpTagTypeSimple, NULL,
NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DEVICE_MODEL,
- "tiff:Model", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ "tiff:Model", GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_APPLICATION_NAME,
- "tiff:Software", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ "tiff:Software", GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_IMAGE_ORIENTATION,
- "tiff:Orientation", GST_XMP_TAG_TYPE_SIMPLE, serialize_tiff_orientation,
+ "tiff:Orientation", GstXmpTagTypeSimple, serialize_tiff_orientation,
deserialize_tiff_orientation);
_gst_xmp_add_schema ("tiff", schema);
/* exif schema */
+ schema = gst_xmp_schema_new ();
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_DATE_TIME,
- "exif:DateTimeOriginal", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ "exif:DateTimeOriginal", GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema,
GST_TAG_GEO_LOCATION_LATITUDE, "exif:GPSLatitude",
- GST_XMP_TAG_TYPE_SIMPLE, serialize_exif_latitude,
- deserialize_exif_latitude);
+ GstXmpTagTypeSimple, serialize_exif_latitude, deserialize_exif_latitude);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_GEO_LOCATION_LONGITUDE,
- "exif:GPSLongitude", GST_XMP_TAG_TYPE_SIMPLE, serialize_exif_longitude,
+ "exif:GPSLongitude", GstXmpTagTypeSimple, serialize_exif_longitude,
deserialize_exif_longitude);
_gst_xmp_schema_add_simple_mapping (schema,
GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, "exif:ExposureBiasValue",
- GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ GstXmpTagTypeSimple, NULL, NULL);
/* compound exif tags */
- array = g_ptr_array_sized_new (2);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSAltitude";
- xmpinfo->serialize = serialize_exif_altitude;
- xmpinfo->deserialize = deserialize_exif_altitude;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSAltitudeRef";
- xmpinfo->serialize = serialize_exif_altituderef;
- xmpinfo->deserialize = deserialize_exif_altitude;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- _gst_xmp_schema_add_mapping (schema, GST_TAG_GEO_LOCATION_ELEVATION, array);
-
- array = g_ptr_array_sized_new (2);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSSpeed";
- xmpinfo->serialize = serialize_exif_gps_speed;
- xmpinfo->deserialize = deserialize_exif_gps_speed;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSSpeedRef";
- xmpinfo->serialize = serialize_exif_gps_speedref;
- xmpinfo->deserialize = deserialize_exif_gps_speed;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- _gst_xmp_schema_add_mapping (schema,
- GST_TAG_GEO_LOCATION_MOVEMENT_SPEED, array);
-
- array = g_ptr_array_sized_new (2);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSTrack";
- xmpinfo->serialize = serialize_exif_gps_direction;
- xmpinfo->deserialize = deserialize_exif_gps_track;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSTrackRef";
- xmpinfo->serialize = serialize_exif_gps_directionref;
- xmpinfo->deserialize = deserialize_exif_gps_track;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- _gst_xmp_schema_add_mapping (schema,
- GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION, array);
+ xmpinfo = gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_ELEVATION,
+ "exif:GPSAltitude", "exif:GPSAltitudeRef", serialize_exif_altitude,
+ serialize_exif_altituderef, deserialize_exif_altitude);
+ _gst_xmp_schema_add_mapping (schema, xmpinfo);
+
+ xmpinfo = gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_MOVEMENT_SPEED,
+ "exif:GPSSpeed", "exif:GPSSpeedRef", serialize_exif_gps_speed,
+ serialize_exif_gps_speedref, deserialize_exif_gps_speed);
+ _gst_xmp_schema_add_mapping (schema, xmpinfo);
+
+ xmpinfo =
+ gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION,
+ "exif:GPSTrack", "exif:GPSTrackRef", serialize_exif_gps_direction,
+ serialize_exif_gps_directionref, deserialize_exif_gps_track);
+ _gst_xmp_schema_add_mapping (schema, xmpinfo);
+
+ xmpinfo = gst_xmp_tag_create_compound (GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION,
+ "exif:GPSImgDirection", "exif:GPSImgDirectionRef",
+ serialize_exif_gps_direction, serialize_exif_gps_directionref,
+ deserialize_exif_gps_img_direction);
+ _gst_xmp_schema_add_mapping (schema, xmpinfo);
- array = g_ptr_array_sized_new (2);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSImgDirection";
- xmpinfo->serialize = serialize_exif_gps_direction;
- xmpinfo->deserialize = deserialize_exif_gps_img_direction;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- xmpinfo = g_slice_new (XmpTag);
- xmpinfo->tag_name = "exif:GPSImgDirectionRef";
- xmpinfo->serialize = serialize_exif_gps_directionref;
- xmpinfo->deserialize = deserialize_exif_gps_img_direction;
- xmpinfo->type = GST_XMP_TAG_TYPE_SIMPLE;
- g_ptr_array_add (array, xmpinfo);
- _gst_xmp_schema_add_mapping (schema,
- GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION, array);
_gst_xmp_add_schema ("exif", schema);
/* photoshop schema */
+ schema = gst_xmp_schema_new ();
_gst_xmp_schema_add_simple_mapping (schema,
GST_TAG_GEO_LOCATION_COUNTRY, "photoshop:Country",
- GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_schema_add_simple_mapping (schema, GST_TAG_GEO_LOCATION_CITY,
- "photoshop:City", GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ "photoshop:City", GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_add_schema ("photoshop", schema);
/* iptc4xmpcore schema */
+ schema = gst_xmp_schema_new ();
_gst_xmp_schema_add_simple_mapping (schema,
GST_TAG_GEO_LOCATION_SUBLOCATION, "Iptc4xmpCore:Location",
- GST_XMP_TAG_TYPE_SIMPLE, NULL, NULL);
+ GstXmpTagTypeSimple, NULL, NULL);
_gst_xmp_add_schema ("Iptc4xmpCore", schema);
+ /* iptc4xmpext schema */
+ schema = gst_xmp_schema_new ();
+ xmpinfo = gst_xmp_tag_create (NULL, "Iptc4xmpExt:LocationShown",
+ GstXmpTagTypeStruct, NULL, NULL);
+ xmpinfo->supertype = GstXmpTagTypeBag;
+ xmpinfo->parse_type = "Resource";
+ xmpinfo->children = g_slist_prepend (xmpinfo->children,
+ gst_xmp_tag_create (GST_TAG_GEO_LOCATION_SUBLOCATION,
+ "LocationDetails:Sublocation", GstXmpTagTypeSimple, NULL, NULL));
+ xmpinfo->children =
+ g_slist_prepend (xmpinfo->children,
+ gst_xmp_tag_create (GST_TAG_GEO_LOCATION_CITY,
+ "LocationDetails:City", GstXmpTagTypeSimple, NULL, NULL));
+ xmpinfo->children =
+ g_slist_prepend (xmpinfo->children,
+ gst_xmp_tag_create (GST_TAG_GEO_LOCATION_COUNTRY,
+ "LocationDetails:Country", GstXmpTagTypeSimple, NULL, NULL));
+ _gst_xmp_schema_add_mapping (schema, xmpinfo);
+ _gst_xmp_add_schema ("Iptc4xmpExt", schema);
+
return NULL;
}
{
const gchar *ns_prefix;
const gchar *ns_uri;
+
+ /*
+ * Stores extra namespaces for array tags
+ * The namespaces should be writen in the form:
+ *
+ * xmlns:XpTo="http://some.org/your/ns/name/ (next ones)"
+ */
+ const gchar *extra_ns;
};
static const GstXmpNamespaceMatch ns_match[] = {
- {"dc", "http://purl.org/dc/elements/1.1/"},
- {"exif", "http://ns.adobe.com/exif/1.0/"},
- {"tiff", "http://ns.adobe.com/tiff/1.0/"},
- {"xap", "http://ns.adobe.com/xap/1.0/"},
- {"photoshop", "http://ns.adobe.com/photoshop/1.0/"},
- {"Iptc4xmpCore", "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/"},
- {NULL, NULL}
+ {"dc", "http://purl.org/dc/elements/1.1/", NULL},
+ {"exif", "http://ns.adobe.com/exif/1.0/", NULL},
+ {"tiff", "http://ns.adobe.com/tiff/1.0/", NULL},
+ {"xap", "http://ns.adobe.com/xap/1.0/", NULL},
+ {"photoshop", "http://ns.adobe.com/photoshop/1.0/", NULL},
+ {"Iptc4xmpCore", "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/", NULL},
+ {"Iptc4xmpExt", "http://iptc.org/std/Iptc4xmpExt/2008-02-29/",
+ "xmlns:LocationDetails=\"http://iptc.org/std/Iptc4xmpExt/2008-02-29/LocationDetails/\""},
+ {NULL, NULL, NULL}
};
typedef struct _GstXmpNamespaceMap GstXmpNamespaceMap;
/* parsing */
static void
-read_one_tag (GstTagList * list, const gchar * tag, XmpTag * xmptag,
+read_one_tag (GstTagList * list, XmpTag * xmptag,
const gchar * v, GSList ** pending_tags)
{
GType tag_type;
GstTagMergeMode merge_mode;
+ const gchar *tag = xmptag->gst_tag;
- if (xmptag && xmptag->deserialize) {
+ g_return_if_fail (tag != NULL);
+
+ if (xmptag->deserialize) {
xmptag->deserialize (xmptag, list, tag, xmptag->tag_name, v, pending_tags);
return;
}
gboolean in_tag;
gchar *part, *pp;
guint i;
- const gchar *last_tag = NULL;
XmpTag *last_xmp_tag = NULL;
GSList *pending_tags = NULL;
+ /* Used for strucuture xmp tags */
+ XmpTag *context_tag = NULL;
+
GstXmpNamespaceMap ns_map[] = {
{"dc", NULL},
{"exif", NULL},
{"xap", NULL},
{"photoshop", NULL},
{"Iptc4xmpCore", NULL},
+ {"Iptc4xmpExt", NULL},
{NULL, NULL}
};
g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL);
g_return_val_if_fail (GST_BUFFER_SIZE (buffer) > 0, NULL);
+ GST_LOG ("Starting xmp parsing");
+
xps = (const gchar *) GST_BUFFER_DATA (buffer);
len = GST_BUFFER_SIZE (buffer);
xpe = &xps[len + 1];
if (*xp1 != '>')
goto missing_header;
- max_ft_len = 1 + strlen ("<?xpacket end=\".\"?>\n");
+ /* Use 2 here to count for an extra trailing \n that was added
+ * in old versions, this makes it able to parse xmp packets with
+ * and without this trailing char */
+ max_ft_len = 2 + strlen ("<?xpacket end=\".\"?>");
if (len < max_ft_len)
goto missing_footer;
}
}
} else {
- const gchar *gst_tag;
XmpTag *xmp_tag = NULL;
- /* FIXME: eventualy rewrite ns
+ /* FIXME: eventually rewrite ns
* find ':'
* check if ns before ':' is in ns_map and ns_map[i].gstreamer_ns!=NULL
* do 2 stage filter in tag_matches
*/
- gst_tag = _gst_xmp_tag_get_mapping_reverse (as, &xmp_tag);
- if (gst_tag) {
+ if (context_tag) {
+ GSList *iter;
+
+ for (iter = context_tag->children; iter;
+ iter = g_slist_next (iter)) {
+ XmpTag *child = iter->data;
+
+ GST_DEBUG ("Looking at child tag %s : %s", child->tag_name,
+ as);
+ if (strcmp (child->tag_name, as) == 0) {
+ xmp_tag = child;
+ break;
+ }
+ }
+
+ } else {
+ GST_LOG ("Looking for tag: %s", as);
+ _gst_xmp_tag_get_mapping_reverse (as, &xmp_tag);
+ }
+ if (xmp_tag) {
PendingXmpTag *ptag;
+ GST_DEBUG ("Found xmp tag: %s -> %s", xmp_tag->tag_name,
+ xmp_tag->gst_tag);
+
+ /* we shouldn't find a xmp structure here */
+ g_assert (xmp_tag->gst_tag != NULL);
+
ptag = g_slice_new (PendingXmpTag);
- ptag->gst_tag = gst_tag;
ptag->xmp_tag = xmp_tag;
ptag->str = g_strdup (v);
<dc:type><rdf:Bag><rdf:li>Image</rdf:li></rdf:Bag></dc:type>
<dc:creator><rdf:Seq><rdf:li/></rdf:Seq></dc:creator>
*/
- /* FIXME: eventualy rewrite ns */
+ /* FIXME: eventually rewrite ns */
/* skip rdf tags for now */
if (strncmp (part, "rdf:", 4)) {
- const gchar *parttag;
+ /* if we're inside some struct, we look only on its children */
+ if (context_tag) {
+ GSList *iter;
+
+ /* check if this is the closing of the context */
+ if (part[0] == '/'
+ && strcmp (part + 1, context_tag->tag_name) == 0) {
+ GST_DEBUG ("Closing context tag %s", part);
+ context_tag = NULL;
+ } else {
+
+ for (iter = context_tag->children; iter;
+ iter = g_slist_next (iter)) {
+ XmpTag *child = iter->data;
- parttag = _gst_xmp_tag_get_mapping_reverse (part, &last_xmp_tag);
- if (parttag) {
- last_tag = parttag;
+ GST_DEBUG ("Looking at child tag %s : %s", child->tag_name,
+ part);
+ if (strcmp (child->tag_name, part) == 0) {
+ last_xmp_tag = child;
+ break;
+ }
+ }
+ }
+
+ } else {
+ GST_LOG ("Looking for tag: %s", part);
+ _gst_xmp_tag_get_mapping_reverse (part, &last_xmp_tag);
+ if (last_xmp_tag && last_xmp_tag->type == GstXmpTagTypeStruct) {
+ context_tag = last_xmp_tag;
+ last_xmp_tag = NULL;
+ }
}
}
}
}
+ GST_LOG ("Next cycle");
/* next cycle */
ne++;
if (ne < xp2) {
if (ns[0] != '\n' && &ns[1] <= ne) {
/* only log non-newline nodes, we still have to parse them */
GST_INFO ("txt: %s", part);
- if (last_tag) {
+ if (last_xmp_tag) {
PendingXmpTag *ptag;
- ptag = g_slice_new (PendingXmpTag);
- ptag->gst_tag = last_tag;
- ptag->xmp_tag = last_xmp_tag;
- ptag->str = g_strdup (part);
+ GST_DEBUG ("Found tag %s -> %s", last_xmp_tag->tag_name,
+ last_xmp_tag->gst_tag);
+
+ if (last_xmp_tag->type == GstXmpTagTypeStruct) {
+ g_assert (context_tag == NULL); /* we can't handle struct nesting currently */
- pending_tags = g_slist_append (pending_tags, ptag);
+ context_tag = last_xmp_tag;
+ } else {
+ ptag = g_slice_new (PendingXmpTag);
+ ptag->xmp_tag = last_xmp_tag;
+ ptag->str = g_strdup (part);
+
+ pending_tags = g_slist_append (pending_tags, ptag);
+ }
}
}
/* next cycle */
pending_tags = g_slist_delete_link (pending_tags, pending_tags);
- read_one_tag (list, ptag->gst_tag, ptag->xmp_tag, ptag->str, &pending_tags);
+ read_one_tag (list, ptag->xmp_tag, ptag->str, &pending_tags);
g_free (ptag->str);
g_slice_free (PendingXmpTag, ptag);
}
static void
-write_one_tag (const GstTagList * list, const gchar * tag, gpointer user_data)
+write_one_tag (const GstTagList * list, XmpTag * xmp_tag, gpointer user_data)
{
- guint i = 0, ct = gst_tag_list_get_tag_size (list, tag), tag_index;
+ guint i = 0, ct;
XmpSerializationData *serialization_data = user_data;
GString *data = serialization_data->data;
- GPtrArray *xmp_tag_array = NULL;
char *s;
- /* map gst-tag to xmp tag */
- xmp_tag_array = _xmp_tag_get_mapping (tag, serialization_data);
+ /* struct type handled differently */
+ if (xmp_tag->type == GstXmpTagTypeStruct ||
+ xmp_tag->type == GstXmpTagTypeCompound) {
+ GSList *iter;
+ gboolean use_it = FALSE;
+
+ /* check if any of the inner tags are present on the taglist */
+ for (iter = xmp_tag->children; iter && !use_it; iter = g_slist_next (iter)) {
+ XmpTag *child_tag = iter->data;
+
+ if (gst_tag_list_get_value_index (list, child_tag->gst_tag, 0) != NULL) {
+ use_it = TRUE;
+ break;
+ }
+ }
+
+ if (use_it) {
+ if (xmp_tag->tag_name)
+ string_open_tag (data, xmp_tag->tag_name);
+
+ if (xmp_tag->supertype) {
+ string_open_tag (data, xmp_tag_type_get_name (xmp_tag->supertype));
+ if (xmp_tag->parse_type) {
+ g_string_append (data, "<rdf:li rdf:parseType=\"");
+ g_string_append (data, xmp_tag->parse_type);
+ g_string_append_c (data, '"');
+ g_string_append_c (data, '>');
+ } else {
+ string_open_tag (data, "rdf:li");
+ }
+ }
+
+ /* now write it */
+ for (iter = xmp_tag->children; iter; iter = g_slist_next (iter)) {
+ write_one_tag (list, iter->data, user_data);
+ }
+
+ if (xmp_tag->supertype) {
+ string_close_tag (data, "rdf:li");
+ string_close_tag (data, xmp_tag_type_get_name (xmp_tag->supertype));
+ }
- if (!xmp_tag_array) {
- GST_WARNING ("no mapping for %s to xmp", tag);
+ if (xmp_tag->tag_name)
+ string_close_tag (data, xmp_tag->tag_name);
+ }
return;
}
- for (tag_index = 0; tag_index < xmp_tag_array->len; tag_index++) {
- XmpTag *xmp_tag;
+ /* at this point we must have a gst_tag */
+ g_assert (xmp_tag->gst_tag);
+ if (gst_tag_list_get_value_index (list, xmp_tag->gst_tag, 0) == NULL)
+ return;
+
+ ct = gst_tag_list_get_tag_size (list, xmp_tag->gst_tag);
+ string_open_tag (data, xmp_tag->tag_name);
+
+ /* fast path for single valued tag */
+ if (ct == 1 || xmp_tag->type == GstXmpTagTypeSimple) {
+ if (xmp_tag->serialize) {
+ s = xmp_tag->serialize (gst_tag_list_get_value_index (list,
+ xmp_tag->gst_tag, 0));
+ } else {
+ s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list,
+ xmp_tag->gst_tag, 0));
+ }
+ if (s) {
+ g_string_append (data, s);
+ g_free (s);
+ } else {
+ GST_WARNING ("unhandled type for %s to xmp", xmp_tag->gst_tag);
+ }
+ } else {
+ const gchar *typename;
- xmp_tag = g_ptr_array_index (xmp_tag_array, tag_index);
- string_open_tag (data, xmp_tag->tag_name);
+ typename = xmp_tag_type_get_name (xmp_tag->type);
- /* fast path for single valued tag */
- if (ct == 1 || xmp_tag->type == GST_XMP_TAG_TYPE_SIMPLE) {
+ string_open_tag (data, typename);
+ for (i = 0; i < ct; i++) {
+ GST_DEBUG ("mapping %s[%u/%u] to xmp", xmp_tag->gst_tag, i, ct);
if (xmp_tag->serialize) {
- s = xmp_tag->serialize (gst_tag_list_get_value_index (list, tag, 0));
+ s = xmp_tag->serialize (gst_tag_list_get_value_index (list,
+ xmp_tag->gst_tag, i));
} else {
- s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list, tag,
- 0));
+ s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list,
+ xmp_tag->gst_tag, i));
}
if (s) {
+ string_open_tag (data, "rdf:li");
g_string_append (data, s);
+ string_close_tag (data, "rdf:li");
g_free (s);
} else {
- GST_WARNING ("unhandled type for %s to xmp", tag);
+ GST_WARNING ("unhandled type for %s to xmp", xmp_tag->gst_tag);
}
- } else {
- const gchar *typename;
-
- typename = xmp_tag_get_type_name (xmp_tag);
-
- string_open_tag (data, typename);
- for (i = 0; i < ct; i++) {
- GST_DEBUG ("mapping %s[%u/%u] to xmp", tag, i, ct);
- if (xmp_tag->serialize) {
- s = xmp_tag->serialize (gst_tag_list_get_value_index (list, tag, i));
- } else {
- s = gst_value_serialize_xmp (gst_tag_list_get_value_index (list, tag,
- i));
- }
- if (s) {
- string_open_tag (data, "rdf:li");
- g_string_append (data, s);
- string_close_tag (data, "rdf:li");
- g_free (s);
- } else {
- GST_WARNING ("unhandled type for %s to xmp", tag);
- }
- }
- string_close_tag (data, typename);
}
-
- string_close_tag (data, xmp_tag->tag_name);
+ string_close_tag (data, typename);
}
+
+ string_close_tag (data, xmp_tag->tag_name);
}
/**
i = 0;
while (ns_match[i].ns_prefix) {
if (xmp_serialization_data_use_schema (&serialization_data,
- ns_match[i].ns_prefix))
+ ns_match[i].ns_prefix)) {
g_string_append_printf (data, " xmlns:%s=\"%s\"",
ns_match[i].ns_prefix, ns_match[i].ns_uri);
+ if (ns_match[i].extra_ns) {
+ g_string_append_printf (data, " %s", ns_match[i].extra_ns);
+ }
+ }
i++;
}
g_string_append (data, ">\n");
g_string_append (data, "<rdf:Description rdf:about=\"\">\n");
- /* iterate the taglist */
- gst_tag_list_foreach (list, write_one_tag, &serialization_data);
+ /* iterate the schemas */
+ if (schemas == NULL) {
+ /* use all schemas */
+ schemas = gst_tag_xmp_list_schemas ();
+ }
+ for (i = 0; schemas[i] != NULL; i++) {
+ GstXmpSchema *schema = _gst_xmp_get_schema (schemas[i]);
+ GHashTableIter iter;
+ gpointer key, value;
+
+ if (schema == NULL)
+ continue;
+
+ /* Iterate over the hashtable */
+ g_hash_table_iter_init (&iter, schema);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ write_one_tag (list, value, (gpointer) & serialization_data);
+ }
+ }
/* xmp footer */
g_string_append (data, "</rdf:Description>\n");
g_string_append (data, "</x:xmpmeta>\n");
if (!read_only) {
- /* the xmp spec recommand to add 2-4KB padding for in-place editable xmp */
+ /* the xmp spec recommends to add 2-4KB padding for in-place editable xmp */
guint i;
for (i = 0; i < 32; i++) {
" " " " "\n");
}
}
- g_string_append_printf (data, "<?xpacket end=\"%c\"?>\n",
+ g_string_append_printf (data, "<?xpacket end=\"%c\"?>",
(read_only ? 'r' : 'w'));
buffer = gst_buffer_new ();
- GST_BUFFER_SIZE (buffer) = data->len + 1;
+ GST_BUFFER_SIZE (buffer) = data->len;
GST_BUFFER_DATA (buffer) = (guint8 *) g_string_free (data, FALSE);
GST_BUFFER_MALLOCDATA (buffer) = GST_BUFFER_DATA (buffer);
--- /dev/null
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */
+/* Copyright 2005 Jan Schmidt <thaytan@mad.scientist.com>
+ * Copyright 2002,2003 Scott Wheeler <wheeler@kde.org> (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 <string.h>
+#include <gst/tag/tag.h>
+
+#include "id3v2.h"
+
+#define HANDLE_INVALID_SYNCSAFE
+
+static gboolean id3v2_frames_to_tag_list (ID3TagsWorking * work, guint size);
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT id3v2_ensure_debug_category()
+
+GstDebugCategory *
+id3v2_ensure_debug_category (void)
+{
+ static gsize cat_gonce = 0;
+
+ if (g_once_init_enter (&cat_gonce)) {
+ gsize cat;
+
+ cat = (gsize) _gst_debug_category_new ("id3v2", 0, "ID3v2 tag parsing");
+
+ g_once_init_leave (&cat_gonce, cat);
+ }
+
+ return (GstDebugCategory *) cat_gonce;
+}
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+guint
+id3v2_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;
+}
+
+/**
+ * gst_tag_get_id3v2_tag_size:
+ * @buffer: buffer holding ID3v2 tag (or at least the start of one)
+ *
+ * Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
+ * i.e. at least #GST_TAG_ID3V2_HEADER_SIZE (10) bytes;
+ *
+ * Returns: Size of tag, or 0 if header is invalid or too small.
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_tag_get_id3v2_tag_size (GstBuffer * buffer)
+{
+ guint8 *data, flags;
+ guint size;
+
+ g_return_val_if_fail (buffer != NULL, 0);
+
+ if (GST_BUFFER_SIZE (buffer) < ID3V2_HDR_SIZE)
+ return 0;
+
+ data = GST_BUFFER_DATA (buffer);
+
+ /* 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 = id3v2_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 *
+id3v2_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;
+}
+
+/**
+ * gst_tag_list_from_id3v2_tag:
+ * @buffer: buffer to convert
+ *
+ * Creates a new tag list that contains the information parsed out of a
+ * ID3 tag.
+ *
+ * Returns: A new #GstTagList with all tags that could be extracted from the
+ * given vorbiscomment buffer or NULL on error.
+ *
+ * Since: 0.10.36
+ */
+GstTagList *
+gst_tag_list_from_id3v2_tag (GstBuffer * buffer)
+{
+ guint8 *data, *uu_data = NULL;
+ guint read_size;
+ ID3TagsWorking work;
+ guint8 flags;
+ guint16 version;
+
+ read_size = gst_tag_get_id3v2_tag_size (buffer);
+
+ /* Ignore tag if it has no frames attached, but skip the header then */
+ if (read_size < ID3V2_HDR_SIZE)
+ return NULL;
+
+ 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 NULL;
+ }
+
+ 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 NULL;
+ }
+
+ GST_DEBUG ("Reading ID3v2 tag with revision 2.%d.%d of size %u", version >> 8,
+ version & 0xff, read_size);
+
+ 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 = id3v2_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);
+ }
+
+ id3v2_frames_to_tag_list (&work, work.hdr.frame_data_size);
+
+ g_free (uu_data);
+
+ return work.tags;
+}
+
+static guint
+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[][5] = {
+ {"CRM"}, {"EQU"}, {"LNK"}, {"RVA"}, {"TIM"}, {"TSI"}, /* From 2.2 */
+ {"EQUA"}, {"RVAD"}, {"TIME"}, {"TRDA"}, {"TSIZ"} /* From 2.3 */
+};
+
+static const struct ID3v2FrameIDConvert
+{
+ const gchar orig[5];
+ const gchar new[5];
+} 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"}
+};
+
+static gboolean
+convert_fid_to_v240 (gchar * frame_id)
+{
+ gint i;
+
+ for (i = 0; i < G_N_ELEMENTS (obsolete_frame_ids); ++i) {
+ if (strncmp (frame_id, obsolete_frame_ids[i], 5) == 0)
+ return TRUE;
+ }
+
+ for (i = 0; i < G_N_ELEMENTS (frame_id_conversions); ++i) {
+ if (strncmp (frame_id, frame_id_conversions[i].orig, 5) == 0) {
+ strcpy (frame_id, frame_id_conversions[i].new);
+ return FALSE;
+ }
+ }
+ return FALSE;
+}
+
+
+/* add unknown or unhandled ID3v2 frames to the taglist as binary blobs */
+static void
+id3v2_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_TAG_ID3V2_FRAME, blob, NULL);
+ gst_buffer_unref (blob);
+}
+
+static gboolean
+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 = id3v2_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 FALSE;
+ }
+ 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 FALSE;
+ }
+
+ 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 = 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 FALSE; /* Must have at least one frame */
+ }
+
+ work->tags = gst_tag_list_new ();
+
+ 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 = id3v2_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 (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);
+ id3v2_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 FALSE;
+ }
+
+ /* 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 TRUE;
+}
--- /dev/null
+/* Copyright 2005 Jan Schmidt <thaytan@mad.scientist.com>
+ *
+ * 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 <gst/gst.h>
+
+G_BEGIN_DECLS
+
+#define ID3V2_MARK_SIZE 3
+#define ID3V2_HDR_SIZE GST_TAG_ID3V2_HEADER_SIZE
+
+/* From id3v2.c */
+guint id3v2_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)
+
+/* FIXME 0.11: remove 'private' bit from GST_TAG_ID3V2_FRAME */
+/**
+ * GST_TAG_ID3V2_FRAME:
+ *
+ * Contains a single unprocessed ID3v2 frame. (buffer)
+ *
+ * (Not public API for now)
+ */
+#define GST_TAG_ID3V2_FRAME "private-id3v2-frame"
+
+/* From id3v2frames.c */
+gboolean id3v2_parse_frame (ID3TagsWorking *work);
+
+guint8 * id3v2_ununsync_data (const guint8 * unsync_data, guint32 * size);
+
+GstDebugCategory * id3v2_ensure_debug_category (void);
+
+G_END_DECLS
+
+#endif
--- /dev/null
+/* -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2 -*- */
+/* Copyright 2006-2008 Tim-Philipp Müller <tim centricular net>
+ * Copyright 2005 Jan Schmidt <thaytan@mad.scientist.com>
+ * Copyright 2002,2003 Scott Wheeler <wheeler@kde.org> (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 <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <gst/tag/tag.h>
+#include <gst/base/gsttypefindhelper.h>
+
+#ifdef HAVE_ZLIB
+#include <zlib.h>
+#endif
+
+#include "id3v2.h"
+
+#ifndef GST_DISABLE_GST_DEBUG
+#define GST_CAT_DEFAULT id3v2_ensure_debug_category()
+#endif
+
+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
+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 = id3v2_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 = id3v2_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"
+ " libgsttag-" GST_MAJORMINOR " 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);
+ }
+}
} else if (i > 0 && (iso_639_codes[i - 1].flags & flags) == flags &&
iso_639_codes[i].name_offset == iso_639_codes[i - 1].name_offset) {
return iso_639_codes[i - 1].iso_639_2;
- } else if (i < G_N_ELEMENTS (iso_639_codes) &&
+ } else if ((i + 1) < G_N_ELEMENTS (iso_639_codes) &&
(iso_639_codes[i + 1].flags & flags) == flags &&
iso_639_codes[i].name_offset == iso_639_codes[i + 1].name_offset) {
return iso_639_codes[i + 1].iso_639_2;
--- /dev/null
+/* created by mklicensestables.c */
+static const struct {
+ /* jurisdictions in addition to the generic version, bitfield */
+ const guint64 jurisdictions;
+ const GstTagLicenseFlags flags;
+ /* the bit after http://creativecommons.org/licenses/ */
+ const gchar ref[18];
+ gint16 title_idx; /* index in string table */
+ gint16 desc_idx; /* index in string table */
+} licenses[] = {
+ /* 0 http://creativecommons.org/licenses/GPL/2.0/ */
+ { 0x8000000000000000, 0x02000d07, "GPL/2.0/", 0, -1 },
+ /* 1 http://creativecommons.org/licenses/LGPL/2.1/ */
+ { 0x8000000000000000, 0x02000d07, "LGPL/2.1/", 4, -1 },
+ /* 2 http://creativecommons.org/licenses/by-nc-nd/2.0/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/at/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/au/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/be/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/br/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/ca/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/cl/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/de/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/es/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/hr/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/it/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/kr/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/nl/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/pl/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/tw/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/uk/
+ * 2 http://creativecommons.org/licenses/by-nc-nd/2.0/za/
+ * 2 http://creativecommons.org/licenses/by-nd-nc/2.0/jp/ */
+ { 0x8000002c2871a96e, 0x01010303, "by-nc-nd/2.0/", 9, -1 },
+ /* 3 http://creativecommons.org/licenses/by-nc-nd/2.1/au/ */
+ { 0x0000000000000004, 0x01010303, "by-nc-nd/2.1/", 9, -1 },
+ /* 4 http://creativecommons.org/licenses/by-nc-nd/2.1/es/ */
+ { 0x0000000000002000, 0x01010303, "by-nc-nd/2.1/", 9, -1 },
+ /* 5 http://creativecommons.org/licenses/by-nc-nd/2.1/jp/ */
+ { 0x0000000000200000, 0x01010303, "by-nc-nd/2.1/", 9, -1 },
+ /* 6 http://creativecommons.org/licenses/by-nc-nd/2.5/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/ar/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/au/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/bg/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/br/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/ca/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/ch/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/cn/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/co/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/dk/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/es/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/hr/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/hu/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/il/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/in/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/it/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/mk/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/mt/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/mx/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/my/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/nl/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/pe/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/pl/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/pt/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/scotland/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/se/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/si/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/tw/
+ * 6 http://creativecommons.org/licenses/by-nc-nd/2.5/za/ */
+ { 0x80000027ff9f36f5, 0x01010303, "by-nc-nd/2.5/", 9, -1 },
+ /* 7 http://creativecommons.org/licenses/by-nc-nd/3.0/
+ * 7 http://creativecommons.org/licenses/by-nc-nd/3.0/us/ */
+ { 0x8000001000000000, 0x01010303, "by-nc-nd/3.0/", 9, -1 },
+ /* 8 http://creativecommons.org/licenses/by-nc-sa/1.0/
+ * 8 http://creativecommons.org/licenses/by-nc-sa/1.0/fi/
+ * 8 http://creativecommons.org/licenses/by-nc-sa/1.0/il/
+ * 8 http://creativecommons.org/licenses/by-nc-sa/1.0/nl/ */
+ { 0x8000000008044000, 0x01010707, "by-nc-sa/1.0/", 44, -1 },
+ /* 9 http://creativecommons.org/licenses/by-nc-sa/2.0/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/at/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/au/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/be/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/br/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/ca/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/cl/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/de/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/es/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/hr/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/it/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/jp/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/kr/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/nl/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/pl/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/tw/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/uk/
+ * 9 http://creativecommons.org/licenses/by-nc-sa/2.0/za/ */
+ { 0x8000002c2871a96e, 0x01010707, "by-nc-sa/2.0/", 44, -1 },
+ /* 10 http://creativecommons.org/licenses/by-nc-sa/2.1/au/ */
+ { 0x0000000000000004, 0x01010707, "by-nc-sa/2.1/", 44, -1 },
+ /* 11 http://creativecommons.org/licenses/by-nc-sa/2.1/es/ */
+ { 0x0000000000002000, 0x01010707, "by-nc-sa/2.1/", 44, -1 },
+ /* 12 http://creativecommons.org/licenses/by-nc-sa/2.1/jp/ */
+ { 0x0000000000200000, 0x01010707, "by-nc-sa/2.1/", 44, -1 },
+ /* 13 http://creativecommons.org/licenses/by-nc-sa/2.5/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/au/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/bg/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/br/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/ca/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/ch/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/cn/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/co/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/dk/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/es/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/hr/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/hu/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/il/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/in/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/it/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/mk/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/mt/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/mx/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/my/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/nl/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/pl/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/pt/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/se/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/si/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/tw/
+ * 13 http://creativecommons.org/licenses/by-nc-sa/2.5/za/ */
+ { 0x800000277f9f36f5, 0x01010707, "by-nc-sa/2.5/", 44, -1 },
+ /* 14 http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/ */
+ { 0x0000000080000000, 0x01010703, "by-nc-sa/2.5/", 44, -1 },
+ /* 15 http://creativecommons.org/licenses/by-nc-sa/3.0/
+ * 15 http://creativecommons.org/licenses/by-nc-sa/3.0/us/ */
+ { 0x8000001000000000, 0x01010707, "by-nc-sa/3.0/", 44, -1 },
+ /* 16 http://creativecommons.org/licenses/by-nc/1.0/
+ * 16 http://creativecommons.org/licenses/by-nc/1.0/fi/
+ * 16 http://creativecommons.org/licenses/by-nc/1.0/il/
+ * 16 http://creativecommons.org/licenses/by-nc/1.0/nl/ */
+ { 0x8000000008044000, 0x01010307, "by-nc/1.0/", 81, -1 },
+ /* 17 http://creativecommons.org/licenses/by-nc/2.0/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/at/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/au/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/be/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/br/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/ca/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/cl/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/de/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/es/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/fr/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/hr/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/it/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/jp/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/kr/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/nl/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/pl/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/tw/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/uk/
+ * 17 http://creativecommons.org/licenses/by-nc/2.0/za/ */
+ { 0x8000002c2871a96e, 0x01010307, "by-nc/2.0/", 81, -1 },
+ /* 18 http://creativecommons.org/licenses/by-nc/2.1/au/ */
+ { 0x0000000000000004, 0x01010307, "by-nc/2.1/", 81, -1 },
+ /* 19 http://creativecommons.org/licenses/by-nc/2.1/es/ */
+ { 0x0000000000002000, 0x01010307, "by-nc/2.1/", 81, -1 },
+ /* 20 http://creativecommons.org/licenses/by-nc/2.1/jp/ */
+ { 0x0000000000200000, 0x01010307, "by-nc/2.1/", 81, -1 },
+ /* 21 http://creativecommons.org/licenses/by-nc/2.5/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/ar/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/au/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/bg/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/br/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/ca/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/ch/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/cn/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/co/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/dk/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/es/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/hr/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/hu/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/il/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/in/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/it/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/mk/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/mt/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/mx/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/my/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/nl/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/pe/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/pl/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/pt/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/se/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/si/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/tw/
+ * 21 http://creativecommons.org/licenses/by-nc/2.5/za/ */
+ { 0x800000277f9f36f5, 0x01010307, "by-nc/2.5/", 81, -1 },
+ /* 22 http://creativecommons.org/licenses/by-nc/2.5/scotland/ */
+ { 0x0000000080000000, 0x01010303, "by-nc/2.5/", 81, -1 },
+ /* 23 http://creativecommons.org/licenses/by-nc/3.0/
+ * 23 http://creativecommons.org/licenses/by-nc/3.0/us/ */
+ { 0x8000001000000000, 0x01010307, "by-nc/3.0/", 81, -1 },
+ /* 24 http://creativecommons.org/licenses/by-nd-nc/1.0/
+ * 24 http://creativecommons.org/licenses/by-nd-nc/1.0/fi/
+ * 24 http://creativecommons.org/licenses/by-nd-nc/1.0/il/
+ * 24 http://creativecommons.org/licenses/by-nd-nc/1.0/nl/ */
+ { 0x8000000008044000, 0x01010303, "by-nd-nc/1.0/", 107, -1 },
+ /* 25 http://creativecommons.org/licenses/by-nd-nc/2.0/jp/ */
+ { 0x0000000000200000, 0x01010303, "by-nd-nc/2.0/", 107, -1 },
+ /* 26 http://creativecommons.org/licenses/by-nd/1.0/
+ * 26 http://creativecommons.org/licenses/by-nd/1.0/fi/
+ * 26 http://creativecommons.org/licenses/by-nd/1.0/il/
+ * 26 http://creativecommons.org/licenses/by-nd/1.0/nl/ */
+ { 0x8000000008044000, 0x01000303, "by-nd/1.0/", 142, -1 },
+ /* 27 http://creativecommons.org/licenses/by-nd/2.0/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/at/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/au/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/be/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/br/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/ca/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/cl/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/de/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/es/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/fr/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/hr/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/it/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/jp/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/kr/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/nl/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/pl/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/tw/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/uk/
+ * 27 http://creativecommons.org/licenses/by-nd/2.0/za/ */
+ { 0x8000002c2871a96e, 0x01000303, "by-nd/2.0/", 142, -1 },
+ /* 28 http://creativecommons.org/licenses/by-nd/2.1/au/ */
+ { 0x0000000000000004, 0x01000303, "by-nd/2.1/", 142, -1 },
+ /* 29 http://creativecommons.org/licenses/by-nd/2.1/es/ */
+ { 0x0000000000002000, 0x01000303, "by-nd/2.1/", 142, -1 },
+ /* 30 http://creativecommons.org/licenses/by-nd/2.1/jp/ */
+ { 0x0000000000200000, 0x01000303, "by-nd/2.1/", 142, -1 },
+ /* 31 http://creativecommons.org/licenses/by-nd/2.5/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/ar/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/au/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/bg/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/br/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/ca/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/ch/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/cn/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/co/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/dk/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/es/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/hr/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/hu/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/il/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/in/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/it/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/mk/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/mt/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/mx/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/my/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/nl/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/pe/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/pl/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/pt/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/scotland/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/se/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/si/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/tw/
+ * 31 http://creativecommons.org/licenses/by-nd/2.5/za/ */
+ { 0x80000027ff9f36f5, 0x01000303, "by-nd/2.5/", 142, -1 },
+ /* 32 http://creativecommons.org/licenses/by-nd/3.0/
+ * 32 http://creativecommons.org/licenses/by-nd/3.0/us/ */
+ { 0x8000001000000000, 0x01000303, "by-nd/3.0/", 142, -1 },
+ /* 33 http://creativecommons.org/licenses/by-sa/1.0/
+ * 33 http://creativecommons.org/licenses/by-sa/1.0/fi/
+ * 33 http://creativecommons.org/licenses/by-sa/1.0/il/
+ * 33 http://creativecommons.org/licenses/by-sa/1.0/nl/ */
+ { 0x8000000008044000, 0x01000707, "by-sa/1.0/", 163, -1 },
+ /* 34 http://creativecommons.org/licenses/by-sa/2.0/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/at/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/au/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/be/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/br/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/ca/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/cl/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/de/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/es/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/fr/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/hr/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/it/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/jp/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/kr/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/nl/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/pl/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/tw/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/uk/
+ * 34 http://creativecommons.org/licenses/by-sa/2.0/za/ */
+ { 0x8000002c2871a96e, 0x01000707, "by-sa/2.0/", 163, -1 },
+ /* 35 http://creativecommons.org/licenses/by-sa/2.1/au/ */
+ { 0x0000000000000004, 0x01000707, "by-sa/2.1/", 163, -1 },
+ /* 36 http://creativecommons.org/licenses/by-sa/2.1/es/ */
+ { 0x0000000000002000, 0x01000707, "by-sa/2.1/", 163, -1 },
+ /* 37 http://creativecommons.org/licenses/by-sa/2.1/jp/ */
+ { 0x0000000000200000, 0x01000707, "by-sa/2.1/", 163, -1 },
+ /* 38 http://creativecommons.org/licenses/by-sa/2.5/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/ar/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/au/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/bg/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/br/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/ca/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/ch/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/cn/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/co/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/dk/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/es/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/hr/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/hu/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/il/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/in/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/it/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/mk/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/mt/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/mx/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/my/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/nl/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/pe/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/pl/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/pt/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/se/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/si/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/tw/
+ * 38 http://creativecommons.org/licenses/by-sa/2.5/za/ */
+ { 0x800000277f9f36f5, 0x01000707, "by-sa/2.5/", 163, -1 },
+ /* 39 http://creativecommons.org/licenses/by-sa/2.5/scotland/ */
+ { 0x0000000080000000, 0x01000703, "by-sa/2.5/", 163, -1 },
+ /* 40 http://creativecommons.org/licenses/by-sa/3.0/
+ * 40 http://creativecommons.org/licenses/by-sa/3.0/us/ */
+ { 0x8000001000000000, 0x01000707, "by-sa/3.0/", 163, -1 },
+ /* 41 http://creativecommons.org/licenses/by/1.0/
+ * 41 http://creativecommons.org/licenses/by/1.0/fi/
+ * 41 http://creativecommons.org/licenses/by/1.0/il/
+ * 41 http://creativecommons.org/licenses/by/1.0/nl/ */
+ { 0x8000000008044000, 0x01000307, "by/1.0/", 186, 198 },
+ /* 42 http://creativecommons.org/licenses/by/2.0/
+ * 42 http://creativecommons.org/licenses/by/2.0/at/
+ * 42 http://creativecommons.org/licenses/by/2.0/au/
+ * 42 http://creativecommons.org/licenses/by/2.0/be/
+ * 42 http://creativecommons.org/licenses/by/2.0/br/
+ * 42 http://creativecommons.org/licenses/by/2.0/ca/
+ * 42 http://creativecommons.org/licenses/by/2.0/cl/
+ * 42 http://creativecommons.org/licenses/by/2.0/de/
+ * 42 http://creativecommons.org/licenses/by/2.0/es/
+ * 42 http://creativecommons.org/licenses/by/2.0/fr/
+ * 42 http://creativecommons.org/licenses/by/2.0/hr/
+ * 42 http://creativecommons.org/licenses/by/2.0/it/
+ * 42 http://creativecommons.org/licenses/by/2.0/jp/
+ * 42 http://creativecommons.org/licenses/by/2.0/kr/
+ * 42 http://creativecommons.org/licenses/by/2.0/nl/
+ * 42 http://creativecommons.org/licenses/by/2.0/pl/
+ * 42 http://creativecommons.org/licenses/by/2.0/tw/
+ * 42 http://creativecommons.org/licenses/by/2.0/uk/
+ * 42 http://creativecommons.org/licenses/by/2.0/za/ */
+ { 0x8000002c2871a96e, 0x01000307, "by/2.0/", 186, 198 },
+ /* 43 http://creativecommons.org/licenses/by/2.1/au/ */
+ { 0x0000000000000004, 0x01000307, "by/2.1/", 186, 198 },
+ /* 44 http://creativecommons.org/licenses/by/2.1/es/ */
+ { 0x0000000000002000, 0x01000307, "by/2.1/", 186, 198 },
+ /* 45 http://creativecommons.org/licenses/by/2.1/jp/ */
+ { 0x0000000000200000, 0x01000307, "by/2.1/", 186, 198 },
+ /* 46 http://creativecommons.org/licenses/by/2.5/
+ * 46 http://creativecommons.org/licenses/by/2.5/ar/
+ * 46 http://creativecommons.org/licenses/by/2.5/au/
+ * 46 http://creativecommons.org/licenses/by/2.5/bg/
+ * 46 http://creativecommons.org/licenses/by/2.5/br/
+ * 46 http://creativecommons.org/licenses/by/2.5/ca/
+ * 46 http://creativecommons.org/licenses/by/2.5/ch/
+ * 46 http://creativecommons.org/licenses/by/2.5/cn/
+ * 46 http://creativecommons.org/licenses/by/2.5/co/
+ * 46 http://creativecommons.org/licenses/by/2.5/dk/
+ * 46 http://creativecommons.org/licenses/by/2.5/es/
+ * 46 http://creativecommons.org/licenses/by/2.5/hr/
+ * 46 http://creativecommons.org/licenses/by/2.5/hu/
+ * 46 http://creativecommons.org/licenses/by/2.5/il/
+ * 46 http://creativecommons.org/licenses/by/2.5/in/
+ * 46 http://creativecommons.org/licenses/by/2.5/it/
+ * 46 http://creativecommons.org/licenses/by/2.5/mk/
+ * 46 http://creativecommons.org/licenses/by/2.5/mt/
+ * 46 http://creativecommons.org/licenses/by/2.5/mx/
+ * 46 http://creativecommons.org/licenses/by/2.5/my/
+ * 46 http://creativecommons.org/licenses/by/2.5/nl/
+ * 46 http://creativecommons.org/licenses/by/2.5/pe/
+ * 46 http://creativecommons.org/licenses/by/2.5/pl/
+ * 46 http://creativecommons.org/licenses/by/2.5/pt/
+ * 46 http://creativecommons.org/licenses/by/2.5/se/
+ * 46 http://creativecommons.org/licenses/by/2.5/si/
+ * 46 http://creativecommons.org/licenses/by/2.5/tw/
+ * 46 http://creativecommons.org/licenses/by/2.5/za/ */
+ { 0x800000277f9f36f5, 0x01000307, "by/2.5/", 186, 198 },
+ /* 47 http://creativecommons.org/licenses/by/2.5/scotland/ */
+ { 0x0000000080000000, 0x01000303, "by/2.5/", 186, 198 },
+ /* 48 http://creativecommons.org/licenses/by/3.0/
+ * 48 http://creativecommons.org/licenses/by/3.0/us/ */
+ { 0x8000001000000000, 0x01000307, "by/3.0/", 186, 198 },
+ /* 49 http://creativecommons.org/licenses/devnations/2.0/ */
+ { 0x8000000000000000, 0x01020107, "devnations/2.0/", 277, -1 },
+ /* 50 http://creativecommons.org/licenses/nc-sa/1.0/
+ * 50 http://creativecommons.org/licenses/nc-sa/1.0/fi/
+ * 50 http://creativecommons.org/licenses/nc-sa/1.0/nl/ */
+ { 0x8000000008004000, 0x01010507, "nc-sa/1.0/", 296, -1 },
+ /* 51 http://creativecommons.org/licenses/nc-sa/2.0/jp/ */
+ { 0x0000000000200000, 0x01010507, "nc-sa/2.0/", 296, -1 },
+ /* 52 http://creativecommons.org/licenses/nc-sampling+/1.0/
+ * 52 http://creativecommons.org/licenses/nc-sampling+/1.0/tw/ */
+ { 0x8000000400000000, 0x01010307, "nc-sampling+/1.0/", 321, -1 },
+ /* 53 http://creativecommons.org/licenses/nc/1.0/
+ * 53 http://creativecommons.org/licenses/nc/1.0/fi/
+ * 53 http://creativecommons.org/licenses/nc/1.0/nl/ */
+ { 0x8000000008004000, 0x01010107, "nc/1.0/", 349, 363 },
+ /* 54 http://creativecommons.org/licenses/nc/2.0/jp/ */
+ { 0x0000000000200000, 0x01010107, "nc/2.0/", 349, 363 },
+ /* 55 http://creativecommons.org/licenses/nd-nc/1.0/
+ * 55 http://creativecommons.org/licenses/nd-nc/1.0/fi/
+ * 55 http://creativecommons.org/licenses/nd-nc/1.0/nl/ */
+ { 0x8000000008004000, 0x01010103, "nd-nc/1.0/", 547, -1 },
+ /* 56 http://creativecommons.org/licenses/nd-nc/2.0/jp/ */
+ { 0x0000000000200000, 0x01010103, "nd-nc/2.0/", 547, -1 },
+ /* 57 http://creativecommons.org/licenses/nd/1.0/
+ * 57 http://creativecommons.org/licenses/nd/1.0/fi/
+ * 57 http://creativecommons.org/licenses/nd/1.0/nl/ */
+ { 0x8000000008004000, 0x01000103, "nd/1.0/", 570, 579 },
+ /* 58 http://creativecommons.org/licenses/nd/2.0/jp/ */
+ { 0x0000000000200000, 0x01000103, "nd/2.0/", 570, 579 },
+ /* 59 http://creativecommons.org/licenses/publicdomain/ */
+ { 0x8000000000000000, 0x00000007, "publicdomain/", 712, -1 },
+ /* 60 http://creativecommons.org/licenses/sa/1.0/
+ * 60 http://creativecommons.org/licenses/sa/1.0/fi/
+ * 60 http://creativecommons.org/licenses/sa/1.0/nl/ */
+ { 0x8000000008004000, 0x01000507, "sa/1.0/", 726, 737 },
+ /* 61 http://creativecommons.org/licenses/sa/2.0/jp/ */
+ { 0x0000000000200000, 0x01000507, "sa/2.0/", 726, 737 },
+ /* 62 http://creativecommons.org/licenses/sampling+/1.0/
+ * 62 http://creativecommons.org/licenses/sampling+/1.0/br/
+ * 62 http://creativecommons.org/licenses/sampling+/1.0/de/
+ * 62 http://creativecommons.org/licenses/sampling+/1.0/tw/ */
+ { 0x8000000400000820, 0x0100030d, "sampling+/1.0/", 889, -1 },
+ /* 63 http://creativecommons.org/licenses/sampling/1.0/
+ * 63 http://creativecommons.org/licenses/sampling/1.0/br/
+ * 63 http://creativecommons.org/licenses/sampling/1.0/tw/ */
+ { 0x8000000400000020, 0x01000305, "sampling/1.0/", 903, -1 },
+};
+
+static const gchar license_strings[] =
+ "GPL\000LGPL\000Attribution-NonCommercial-NoDerivs\000Attribution-NonComme"
+ "rcial-ShareAlike\000Attribution-NonCommercial\000Attribution-NoDerivs-Non"
+ "Commercial\000Attribution-NoDerivs\000Attribution-ShareAlike\000Attributi"
+ "on\000You must attribute the work in the manner specified by the author o"
+ "r licensor.\000Developing Nations\000NonCommercial-ShareAlike\000NonComme"
+ "rcial Sampling Plus\000NonCommercial\000The licensor permits others to co"
+ "py, distribute and transmit the work. In return, licensees may not use th"
+ "e work for commercial purposes \342\200\224 unless they get the licensor'"
+ "s permission.\000NoDerivs-NonCommercial\000NoDerivs\000The licensor permi"
+ "ts others to copy, distribute and transmit only unaltered copies of the w"
+ "ork \342\200\224 not derivative works based on it.\000Public Domain\000Sh"
+ "areAlike\000The licensor permits others to distribute derivative works on"
+ "ly under the same license or one compatible with the one that governs the"
+ " licensor's work.\000Sampling Plus\000Sampling";
--- /dev/null
+/* GStreamer media licenses utility functions
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * 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:gsttaglicenses
+ * @short_description: utility functions for Creative Commons licenses
+ * @see_also: #GstTagList
+ *
+ * Provides information about Creative Commons media licenses, which are
+ * often expressed in media files as a license URI in tags. Also useful
+ * for applications creating media files, in case the user wants to license
+ * the content under a Creative Commons license.
+ */
+
+/* FIXME: add API to check obsolete-ness / replace-by */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include "tag.h"
+#include "licenses-tables.dat"
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT ensure_debug_category()
+
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+ static gsize cat_gonce = 0;
+
+ if (g_once_init_enter (&cat_gonce)) {
+ gsize cat_done;
+
+ cat_done = (gsize) _gst_debug_category_new ("tag-licenses", 0,
+ "GstTag licenses");
+
+ g_once_init_leave (&cat_gonce, cat_done);
+ }
+
+ return (GstDebugCategory *) cat_gonce;
+}
+
+#else
+
+#define ensure_debug_category() /* NOOP */
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+/* -------------------------------------------------------------------------
+ * Translations
+ * ------------------------------------------------------------------------- */
+
+#ifdef ENABLE_NLS
+static GVariant *
+gst_tag_get_license_translations_dictionary (void)
+{
+ static gsize var_gonce = 0;
+
+ if (g_once_init_enter (&var_gonce)) {
+ const gchar *dict_path;
+ GVariant *var = NULL;
+ GError *err = NULL;
+ gchar *data;
+ gsize len;
+
+ /* for gst-uninstalled */
+ dict_path = g_getenv ("GST_TAG_LICENSE_TRANSLATIONS_DICT");
+
+ if (dict_path == NULL)
+ dict_path = LICENSE_TRANSLATIONS_PATH;
+
+ GST_INFO ("Loading license translations from '%s'", dict_path);
+ if (g_file_get_contents (dict_path, &data, &len, &err)) {
+ var = g_variant_new_from_data (G_VARIANT_TYPE ("a{sa{ss}}"), data, len,
+ TRUE, (GDestroyNotify) g_free, data);
+ } else {
+ GST_WARNING ("Could not load translation dictionary %s", err->message);
+ g_error_free (err);
+ var = g_variant_new_array (G_VARIANT_TYPE ("{sa{ss}}"), NULL, 0);
+ }
+
+ g_once_init_leave (&var_gonce, (gsize) var);
+ }
+
+ return (GVariant *) var_gonce;
+}
+#endif
+
+#ifdef ENABLE_NLS
+
+#if !GLIB_CHECK_VERSION(2,28,0)
+static GVariant *
+gst_g_variant_lookup_value (GVariant * dictionary, const gchar * key,
+ const GVariantType * expected_type)
+{
+ GVariantIter iter;
+ GVariant *entry;
+ GVariant *value;
+
+ GST_ERROR ("here, using fallback");
+
+ g_assert (g_variant_is_of_type (dictionary, G_VARIANT_TYPE ("a{s*}")));
+ g_assert (expected_type != NULL);
+
+ g_variant_iter_init (&iter, dictionary);
+ while ((entry = g_variant_iter_next_value (&iter))) {
+ GVariant *entry_key;
+ gboolean matches;
+
+ entry_key = g_variant_get_child_value (entry, 0);
+ matches = strcmp (g_variant_get_string (entry_key, NULL), key) == 0;
+ g_variant_unref (entry_key);
+
+ if (matches)
+ break;
+
+ g_variant_unref (entry);
+ }
+
+ if (entry == NULL)
+ return NULL;
+
+ value = g_variant_get_child_value (entry, 1);
+ g_variant_unref (entry);
+
+ if (g_variant_is_of_type (value, G_VARIANT_TYPE_VARIANT)) {
+ GVariant *tmp;
+
+ tmp = g_variant_get_variant (value);
+ g_variant_unref (value);
+
+ if (expected_type && !g_variant_is_of_type (tmp, expected_type)) {
+ g_variant_unref (tmp);
+ tmp = NULL;
+ }
+
+ value = tmp;
+ }
+
+ g_assert (value == NULL || g_variant_is_of_type (value, expected_type));
+
+ return value;
+}
+
+#define g_variant_lookup_value gst_g_variant_lookup_value
+#endif /* !GLIB_CHECK_VERSION(2,28,0) */
+
+static gboolean
+gst_variant_lookup_string_value (GVariant * dict, const gchar * lang,
+ const gchar ** translation)
+{
+ GVariant *trans;
+
+ trans = g_variant_lookup_value (dict, lang, G_VARIANT_TYPE ("s"));
+ if (trans == NULL)
+ return FALSE;
+
+ *translation = g_variant_get_string (trans, NULL);
+ /* string will stay valid */
+ g_variant_unref (trans);
+ GST_TRACE ("Result: '%s' for language '%s'", *translation, lang);
+ return TRUE;
+}
+#endif
+
+static const gchar *
+gst_license_str_translate (const gchar * s)
+{
+#ifdef ENABLE_NLS
+ GVariant *v, *dict, *trans;
+
+ v = gst_tag_get_license_translations_dictionary ();
+ g_assert (v != NULL);
+
+ dict = g_variant_lookup_value (v, s, G_VARIANT_TYPE ("a{ss}"));
+ if (dict != NULL) {
+ const gchar *const *lang;
+ const gchar *env_lang;
+
+ /* for unit tests */
+ if ((env_lang = g_getenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG"))) {
+ if (gst_variant_lookup_string_value (dict, env_lang, &s))
+ GST_TRACE ("Result: '%s' for forced language '%s'", s, env_lang);
+ goto beach;
+ }
+
+ lang = g_get_language_names ();
+ while (lang != NULL && *lang != NULL) {
+ GST_TRACE ("Looking up '%s' for language '%s'", s, *lang);
+ trans = g_variant_lookup_value (dict, *lang, G_VARIANT_TYPE ("s"));
+
+ if (trans != NULL) {
+ s = g_variant_get_string (trans, NULL);
+ /* s will stay valid */
+ g_variant_unref (trans);
+ GST_TRACE ("Result: '%s'", s);
+ break;
+ }
+
+ GST_TRACE ("No result for '%s' for language '%s'", s, *lang);
+ ++lang;
+ }
+
+ beach:
+
+ g_variant_unref (dict);
+ } else {
+ GST_WARNING ("No dict for string '%s'", s);
+ }
+#endif
+
+ return s;
+}
+
+/* -------------------------------------------------------------------------
+ * License handling
+ * ------------------------------------------------------------------------- */
+
+#define CC_LICENSE_REF_PREFIX "http://creativecommons.org/licenses/"
+
+/* is this license 'generic' (and a base for any of the supported
+ * jurisdictions), or jurisdiction-specific only? */
+#define JURISDICTION_GENERIC (G_GUINT64_CONSTANT (1) << 63)
+
+static const gchar jurisdictions[] =
+ "ar\000at\000au\000be\000bg\000br\000ca\000ch\000cl\000cn\000co\000de\000"
+ "dk\000es\000fi\000fr\000hr\000hu\000il\000in\000it\000jp\000kr\000mk\000"
+ "mt\000mx\000my\000nl\000pe\000pl\000pt\000scotland\000se\000si\000tw\000"
+ "uk\000us\000za";
+
+/**
+ * gst_tag_get_licenses:
+ *
+ * Returns a list of known license references (in form of URIs). This is
+ * useful for UIs to build a list of available licenses for tagging purposes
+ * (e.g. to tag an audio track appropriately in a video or audio editor, or
+ * an image in a camera application).
+ *
+ * Returns: NULL-terminated array of license strings. Free with g_strfreev()
+ * when no longer needed.
+ *
+ * Since: 0.10.36
+ */
+gchar **
+gst_tag_get_licenses (void)
+{
+ GPtrArray *arr;
+ int i;
+
+ arr = g_ptr_array_new ();
+ for (i = 0; i < G_N_ELEMENTS (licenses); ++i) {
+ const gchar *jurs;
+ gboolean is_generic;
+ guint64 jbits;
+ gchar *ref;
+
+ jbits = licenses[i].jurisdictions;
+ is_generic = (jbits & JURISDICTION_GENERIC) != 0;
+ if (is_generic) {
+ ref = g_strconcat (CC_LICENSE_REF_PREFIX, licenses[i].ref, NULL);
+ GST_LOG ("Adding %2d %s (generic)", i, ref);
+ g_ptr_array_add (arr, ref);
+ jbits &= ~JURISDICTION_GENERIC;
+ }
+
+ jurs = jurisdictions;
+ while (jbits != 0) {
+ if ((jbits & 1)) {
+ ref = g_strconcat (CC_LICENSE_REF_PREFIX, licenses[i].ref, jurs, "/",
+ NULL);
+ GST_LOG ("Adding %2d %s (%s: %s)", i, ref,
+ (is_generic) ? "derived" : "specific", jurs);
+ g_ptr_array_add (arr, ref);
+ }
+ g_assert (jurs < (jurisdictions + sizeof (jurisdictions)));
+ jurs += strlen (jurs) + 1;
+ jbits >>= 1;
+ }
+ }
+ g_ptr_array_add (arr, NULL);
+ return (gchar **) g_ptr_array_free (arr, FALSE);
+}
+
+static gint
+gst_tag_get_license_idx (const gchar * license_ref, const gchar ** jurisdiction)
+{
+ const gchar *ref, *jur_suffix;
+ int i;
+
+ GST_TRACE ("Looking up '%s'", license_ref);
+
+ if (!g_str_has_prefix (license_ref, CC_LICENSE_REF_PREFIX)) {
+ GST_WARNING ("unknown license prefix in ref '%s'", license_ref);
+ return -1;
+ }
+
+ if (jurisdiction != NULL)
+ *jurisdiction = NULL;
+
+ ref = license_ref + sizeof (CC_LICENSE_REF_PREFIX) - 1;
+ for (i = 0; i < G_N_ELEMENTS (licenses); ++i) {
+ guint64 jbits = licenses[i].jurisdictions;
+ const gchar *jurs, *lref = licenses[i].ref;
+ gsize lref_len = strlen (lref);
+
+ /* table should have "foo/bar/" with trailing slash */
+ g_assert (lref[lref_len - 1] == '/');
+
+ if ((jbits & JURISDICTION_GENERIC)) {
+ GST_TRACE ("[%2d] %s checking generic match", i, licenses[i].ref);
+
+ /* exact match? */
+ if (strcmp (ref, lref) == 0)
+ return i;
+
+ /* exact match but without the trailing slash in ref? */
+ if (strncmp (ref, lref, lref_len - 1) == 0 && ref[lref_len - 1] == '\0')
+ return i;
+ }
+
+ if (!g_str_has_prefix (ref, lref))
+ continue;
+
+ GST_TRACE ("[%2d] %s checking jurisdictions", i, licenses[i].ref);
+
+ jbits &= ~JURISDICTION_GENERIC;
+
+ jur_suffix = ref + lref_len;
+ if (*jur_suffix == '\0')
+ continue;
+
+ jurs = jurisdictions;
+ while (jbits != 0) {
+ guint jur_len = strlen (jurs);
+
+ if ((jbits & 1)) {
+ if (strncmp (jur_suffix, jurs, jur_len) == 0 &&
+ (jur_suffix[jur_len] == '\0' || jur_suffix[jur_len] == '/')) {
+ GST_LOG ("matched %s to %s with jurisdiction %s (idx %d)",
+ license_ref, licenses[i].ref, jurs, i);
+ if (jurisdiction != NULL)
+ *jurisdiction = jurs;
+ return i;
+ }
+ }
+ g_assert (jurs < (jurisdictions + sizeof (jurisdictions)));
+ jurs += jur_len + 1;
+ jbits >>= 1;
+ }
+ }
+
+ GST_WARNING ("unhandled license ref '%s'", license_ref);
+ return -1;
+}
+
+/**
+ * gst_tag_get_license_flags:
+ * @license_ref: a license reference string in form of a URI,
+ * e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the flags of a license, which describe most of the features of
+ * a license in their most general form.
+ *
+ * Returns: the flags of the license, or 0 if the license is unknown
+ *
+ * Since: 0.10.36
+ */
+GstTagLicenseFlags
+gst_tag_get_license_flags (const gchar * license_ref)
+{
+ int idx;
+
+ g_return_val_if_fail (license_ref != NULL, 0);
+
+ idx = gst_tag_get_license_idx (license_ref, NULL);
+ return (idx < 0) ? 0 : licenses[idx].flags;
+}
+
+/**
+ * gst_tag_get_license_nick:
+ * @license_ref: a license reference string in form of a URI,
+ * e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the nick name of a license, which is a short (untranslated) string
+ * such as e.g. "CC BY-NC-ND 2.0 UK".
+ *
+ * Returns: the nick name of the license, or NULL if the license is unknown
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_nick (const gchar * license_ref)
+{
+ GstTagLicenseFlags flags;
+ const gchar *creator_prefix, *res;
+ gchar *nick, *c;
+
+ g_return_val_if_fail (license_ref != NULL, NULL);
+
+ flags = gst_tag_get_license_flags (license_ref);
+
+ if ((flags & GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE)) {
+ creator_prefix = "CC ";
+ } else if ((flags & GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE)) {
+ creator_prefix = "FSF ";
+ } else if (g_str_has_suffix (license_ref, "publicdomain/")) {
+ creator_prefix = "";
+ } else {
+ return NULL;
+ }
+
+ nick = g_strdup_printf ("%s%s", creator_prefix,
+ license_ref + sizeof (CC_LICENSE_REF_PREFIX) - 1);
+ g_strdelimit (nick, "/", ' ');
+ g_strchomp (nick);
+ for (c = nick; *c != '\0'; ++c)
+ *c = g_ascii_toupper (*c);
+
+ GST_LOG ("%s => nick %s", license_ref, nick);
+ res = g_intern_string (nick); /* for convenience */
+ g_free (nick);
+
+ return res;
+}
+
+/**
+ * gst_tag_get_license_title:
+ * @license_ref: a license reference string in form of a URI,
+ * e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the title of a license, which is a short translated description
+ * of the license's features (generally not very pretty though).
+ *
+ * Returns: the title of the license, or NULL if the license is unknown or
+ * no title is available.
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_title (const gchar * license_ref)
+{
+ int idx;
+
+ g_return_val_if_fail (license_ref != NULL, NULL);
+
+ idx = gst_tag_get_license_idx (license_ref, NULL);
+
+ if (idx < 0 || licenses[idx].title_idx < 0)
+ return NULL;
+
+ return gst_license_str_translate (&license_strings[licenses[idx].title_idx]);
+}
+
+/**
+ * gst_tag_get_license_description:
+ * @license_ref: a license reference string in form of a URI,
+ * e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the description of a license, which is a translated description
+ * of the license's main features.
+ *
+ * Returns: the description of the license, or NULL if the license is unknown
+ * or a description is not available.
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_description (const gchar * license_ref)
+{
+ int idx;
+
+ g_return_val_if_fail (license_ref != NULL, NULL);
+
+ idx = gst_tag_get_license_idx (license_ref, NULL);
+
+ if (idx < 0 || licenses[idx].desc_idx < 0)
+ return NULL;
+
+ return gst_license_str_translate (&license_strings[licenses[idx].desc_idx]);
+}
+
+/**
+ * gst_tag_get_license_jurisdiction:
+ * @license_ref: a license reference string in form of a URI,
+ * e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the jurisdiction code of a license. This is usually a two-letter
+ * ISO 3166-1 alpha-2 code, but there is also the special case of Scotland,
+ * for which no code exists and which is thus represented as "scotland".
+ *
+ * Known jurisdictions: ar, at, au, be, bg, br, ca, ch, cl, cn, co, de,
+ * dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
+ * pt, scotland, se, si, tw, uk, us, za.
+ *
+ * Returns: the jurisdiction code of the license, or NULL if the license is
+ * unknown or is not specific to a particular jurisdiction.
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_jurisdiction (const gchar * license_ref)
+{
+ const gchar *jurisdiction;
+ int idx;
+
+ g_return_val_if_fail (license_ref != NULL, NULL);
+
+ idx = gst_tag_get_license_idx (license_ref, &jurisdiction);
+ return (idx < 0) ? NULL : jurisdiction;
+}
+
+/**
+ * gst_tag_get_license_version:
+ * @license_ref: a license reference string in form of a URI,
+ * e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"
+ *
+ * Get the version of a license.
+ *
+ * Returns: the version of the license, or NULL if the license is not known or
+ * has no version
+ *
+ * Since: 0.10.36
+ */
+const gchar *
+gst_tag_get_license_version (const gchar * license_ref)
+{
+ int idx;
+
+ g_return_val_if_fail (license_ref != NULL, NULL);
+
+ idx = gst_tag_get_license_idx (license_ref, NULL);
+ if (idx < 0)
+ return NULL;
+
+#define LICENSE_FLAG_CC_OR_FSF \
+ (GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE|\
+ GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE)
+
+ /* e.g. publicdomain isn't versioned */
+ if (!(licenses[idx].flags & LICENSE_FLAG_CC_OR_FSF))
+ return NULL;
+
+ /* KISS for now... */
+ if (strstr (licenses[idx].ref, "/1.0/"))
+ return "1.0";
+ else if (strstr (licenses[idx].ref, "/2.0/"))
+ return "2.0";
+ else if (strstr (licenses[idx].ref, "/2.1/"))
+ return "2.1";
+ else if (strstr (licenses[idx].ref, "/2.5/"))
+ return "2.5";
+ else if (strstr (licenses[idx].ref, "/3.0/"))
+ return "3.0";
+
+ GST_ERROR ("Could not determine version for ref '%s'", license_ref);
+ return NULL;
+}
+
+GType
+gst_tag_license_flags_get_type (void)
+{
+ /* FIXME: we should really be using glib-mkenums for this.. */
+#define C_FLAGS(v) ((guint) v)
+ static gsize id = 0;
+ static const GFlagsValue values[] = {
+ {C_FLAGS (GST_TAG_LICENSE_PERMITS_REPRODUCTION),
+ "GST_TAG_LICENSE_PERMITS_REPRODUCTION", "permits-reproduction"},
+ {C_FLAGS (GST_TAG_LICENSE_PERMITS_DISTRIBUTION),
+ "GST_TAG_LICENSE_PERMITS_DISTRIBUTION", "permits-distribution"},
+ {C_FLAGS (GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS),
+ "GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS",
+ "permits-derivative-works"},
+ {C_FLAGS (GST_TAG_LICENSE_PERMITS_SHARING),
+ "GST_TAG_LICENSE_PERMITS_SHARING", "permits-sharing"},
+ {C_FLAGS (GST_TAG_LICENSE_REQUIRES_NOTICE),
+ "GST_TAG_LICENSE_REQUIRES_NOTICE", "requires-notice"},
+ {C_FLAGS (GST_TAG_LICENSE_REQUIRES_ATTRIBUTION),
+ "GST_TAG_LICENSE_REQUIRES_ATTRIBUTION", "requires-attributions"},
+ {C_FLAGS (GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE),
+ "GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE", "requires-share-alike"},
+ {C_FLAGS (GST_TAG_LICENSE_REQUIRES_SOURCE_CODE),
+ "GST_TAG_LICENSE_REQUIRES_SOURCE_CODE", "requires-source-code"},
+ {C_FLAGS (GST_TAG_LICENSE_REQUIRES_COPYLEFT),
+ "GST_TAG_LICENSE_REQUIRES_COPYLEFT", "requires-copyleft"},
+ {C_FLAGS (GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT),
+ "GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT",
+ "requires-lesser-copyleft"},
+ {C_FLAGS (GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE),
+ "GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE",
+ "prohibits-commercial-use"},
+ {C_FLAGS (GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE),
+ "GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE",
+ "prohibits-high-income-nation-use"},
+ {C_FLAGS (GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE),
+ "GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE",
+ "creative-commons-license"},
+ {C_FLAGS (GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE),
+ "GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE",
+ "free-software-foundation-license"},
+ {0, NULL, NULL}
+ };
+
+ if (g_once_init_enter (&id)) {
+ GType tmp = g_flags_register_static ("GstTagLicenseFlags", values);
+ g_once_init_leave (&id, tmp);
+ }
+
+ return (GType) id;
+}
--- /dev/null
+/* GStreamer License Utility Functions
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * 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.
+ */
+
+/* mklicensestables.c:
+ * little program that reads liblicense's license RDF files and outputs tables
+ * with the most important information, so we don't have to parse megabytes
+ * of mostly redundant RDF files to get some basic information (and vendors
+ * don't have to ship it all).
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "tag.h"
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+/* TODO: we can merge some of the jurisdiction-only license table entries
+ * into one entry with multiple jurisdictions and without the 'generic' flag,
+ * .e.g. by-nc-nd/2.5/es + by-nc-nd/2.5/au => by-nc-nd/2.5/{es,au} */
+
+#define LIBLICENSE_DATA_PREFIX "/usr/share/liblicense/licenses"
+
+static GHashTable *unknown_sources; /* NULL */
+
+static GList *licenses; /* NULL */
+
+/* list of languages used for translations */
+static GList *langs; /* NULL */
+
+/* keep in sync with licenses.c */
+static const gchar jurisdictions[] =
+ "ar\000at\000au\000be\000bg\000br\000ca\000ch\000cl\000cn\000co\000de\000"
+ "dk\000es\000fi\000fr\000hr\000hu\000il\000in\000it\000jp\000kr\000mk\000"
+ "mt\000mx\000my\000nl\000pe\000pl\000pt\000scotland\000se\000si\000tw\000"
+ "uk\000us\000za";
+
+/* keep in sync with gst_tag_get_license_version() */
+static const gchar known_versions[] = "1.0/2.0/2.1/2.5/3.0/";
+
+/* is this license 'generic' (and a base for any of the supported
+ * jurisdictions), or jurisdiction-specific only? */
+#define JURISDICTION_GENERIC (G_GUINT64_CONSTANT (1) << 63)
+
+typedef struct
+{
+ gchar *ref;
+ guint64 jurisdiction;
+ gchar *jurisdiction_suffix; /* if not generic (e.g. "jp/") */
+ gchar *legalcode;
+ gchar *version;
+ gchar *replaced_by;
+ gchar *source;
+
+ GstTagLicenseFlags flags;
+
+ gboolean deprecated;
+
+ GHashTable *titles;
+ GHashTable *descriptions;
+
+ /* for processing */
+ const gchar *cur_lang;
+ gboolean packed_into_source;
+
+ /* list of licenses packed into this one (ie. this is the source of those) */
+ GList *derived;
+} License;
+
+static GstTagLicenseFlags
+ref_to_flag (const gchar * ref)
+{
+ if (strcmp (ref, "http://creativecommons.org/ns#Reproduction") == 0)
+ return GST_TAG_LICENSE_PERMITS_REPRODUCTION;
+ if (strcmp (ref, "http://creativecommons.org/ns#Distribution") == 0)
+ return GST_TAG_LICENSE_PERMITS_DISTRIBUTION;
+ if (strcmp (ref, "http://creativecommons.org/ns#DerivativeWorks") == 0)
+ return GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS;
+ if (strcmp (ref, "http://creativecommons.org/ns#Sharing") == 0)
+ return GST_TAG_LICENSE_PERMITS_SHARING;
+ if (strcmp (ref, "http://creativecommons.org/ns#Notice") == 0)
+ return GST_TAG_LICENSE_REQUIRES_NOTICE;
+ if (strcmp (ref, "http://creativecommons.org/ns#Attribution") == 0)
+ return GST_TAG_LICENSE_REQUIRES_ATTRIBUTION;
+ if (strcmp (ref, "http://creativecommons.org/ns#ShareAlike") == 0)
+ return GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE;
+ if (strcmp (ref, "http://creativecommons.org/ns#SourceCode") == 0)
+ return GST_TAG_LICENSE_REQUIRES_SOURCE_CODE;
+ if (strcmp (ref, "http://creativecommons.org/ns#Copyleft") == 0)
+ return GST_TAG_LICENSE_REQUIRES_COPYLEFT;
+ if (strcmp (ref, "http://creativecommons.org/ns#LesserCopyleft") == 0)
+ return GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT;
+ if (strcmp (ref, "http://creativecommons.org/ns#CommercialUse") == 0)
+ return GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE;
+ if (strcmp (ref, "http://creativecommons.org/ns#HighIncomeNationUse") == 0)
+ return GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE;
+
+ g_error ("Unknown permits/requires/prohibits: %s\n", ref);
+ return 0;
+};
+
+static guint64
+ref_to_jurisdiction (const gchar * ref)
+{
+ const gchar *j = jurisdictions;
+ gchar *jur;
+ guint64 bit = 1;
+
+ jur = g_strdup (ref + strlen ("http://creativecommons.org/international/"));
+ g_strdelimit (jur, "/", '\0');
+ while (j < jurisdictions + sizeof (jurisdictions)) {
+ if (strcmp (j, jur) == 0) {
+ g_free (jur);
+ g_assert (bit != 0 && bit != JURISDICTION_GENERIC);
+ return bit;
+ }
+ j += strlen (j) + 1;
+ bit <<= 1;
+ }
+ g_error ("Unknown jurisdiction '%s'\n", ref);
+}
+
+typedef enum
+{
+ TAG_CC_LICENSE,
+ TAG_CC_JURISDICTION,
+ TAG_CC_LEGALCODE,
+ TAG_CC_PROHIBITS,
+ TAG_CC_REQUIRES,
+ TAG_CC_PERMITS,
+ TAG_CC_DEPRECATED_ON,
+ TAG_DC_CREATOR,
+ TAG_DC_SOURCE,
+ TAG_DC_TITLE,
+ TAG_DC_DESCRIPTION,
+ TAG_DCQ_HAS_VERSION,
+ TAG_DCQ_IS_REPLACED_BY,
+ TAG_RDF_RDF,
+ TAG_RDF_DESCRIPTION,
+} Tag;
+
+static const struct
+{
+ const gchar *element_name;
+ const gchar *attribute;
+ const Tag element_tag;
+} tag_map[] = {
+ {
+ "cc:License", "rdf:about", TAG_CC_LICENSE}, {
+ "cc:deprecatedOn", "rdf:datatype", TAG_CC_DEPRECATED_ON}, {
+ "cc:jurisdiction", "rdf:resource", TAG_CC_JURISDICTION}, {
+ "cc:legalcode", "rdf:resource", TAG_CC_LEGALCODE}, {
+ "cc:prohibits", "rdf:resource", TAG_CC_PROHIBITS}, {
+ "cc:requires", "rdf:resource", TAG_CC_REQUIRES}, {
+ "cc:permits", "rdf:resource", TAG_CC_PERMITS}, {
+ "dc:creator", "rdf:resource", TAG_DC_CREATOR}, {
+ "dc:source", "rdf:resource", TAG_DC_SOURCE}, {
+ "dc:title", "xml:lang", TAG_DC_TITLE}, {
+ "dc:description", "xml:lang", TAG_DC_DESCRIPTION}, {
+ "dcq:hasVersion", NULL, TAG_DCQ_HAS_VERSION}, {
+ "dcq:isReplacedBy", "rdf:resource", TAG_DCQ_IS_REPLACED_BY}, {
+ "rdf:RDF", NULL, TAG_RDF_RDF}, {
+ "rdf:Description", "rdf:about", TAG_RDF_DESCRIPTION},
+ /* these three are just for by-nc-nd_2.0_jp_.rdf */
+ {
+ "dc:isBasedOn", "rdf:resource", TAG_DC_SOURCE}, {
+ "dc:hasVersion", NULL, TAG_DCQ_HAS_VERSION}, {
+ "dc:isReplacedBy", "rdf:resource", TAG_DCQ_IS_REPLACED_BY}
+};
+
+static void
+parse_start (GMarkupParseContext * ctx, const gchar * element_name,
+ const gchar ** attr_names, const gchar ** attr_vals,
+ gpointer user_data, GError ** err)
+{
+ License *license = user_data;
+ const gchar *ref = NULL;
+ int i;
+
+ for (i = 0; i < G_N_ELEMENTS (tag_map); ++i) {
+ if (strcmp (element_name, tag_map[i].element_name) == 0)
+ break;
+ }
+
+ if (i == G_N_ELEMENTS (tag_map))
+ g_error ("Unexpected tag '%s'\n", element_name);
+
+ if (tag_map[i].attribute == NULL)
+ return;
+
+ if (!g_markup_collect_attributes (element_name, attr_names, attr_vals,
+ err, G_MARKUP_COLLECT_STRING, tag_map[i].attribute, &ref,
+ G_MARKUP_COLLECT_INVALID)) {
+ return;
+ }
+
+ switch (tag_map[i].element_tag) {
+ case TAG_CC_LICENSE:
+ if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+ g_error ("Unexpected license reference: %s\n", ref);
+ /* we assume one license per file, and CC license ref */
+ g_assert (license->ref == NULL);
+ license->ref = g_strdup (ref);
+ break;
+ case TAG_CC_JURISDICTION:
+ if (!g_str_has_prefix (ref, "http://creativecommons.org/international/"))
+ g_error ("Unknown license jurisdiction: %s\n", ref);
+ /* we assume one jurisdiction per license */
+ g_assert (license->jurisdiction == JURISDICTION_GENERIC);
+ license->jurisdiction = ref_to_jurisdiction (ref);
+ license->jurisdiction_suffix =
+ g_strdup (ref + strlen ("http://creativecommons.org/international/"));
+ break;
+ case TAG_CC_LEGALCODE:
+ if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+ g_error ("Unexpected legalcode reference: %s\n", ref);
+ /* we assume one legalcode per license */
+ g_assert (license->legalcode == NULL);
+ license->legalcode = g_strdup (ref);
+ break;
+ case TAG_DC_CREATOR:
+ if (strcmp (ref, "http://creativecommons.org") == 0) {
+ license->flags |= GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE;
+ } else if (strcmp (ref, "http://fsf.org") == 0) {
+ license->flags |= GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE;
+ } else {
+ g_error ("Unknown license creator: %s\n", ref);
+ }
+ break;
+ case TAG_CC_DEPRECATED_ON:
+ break;
+ case TAG_CC_PROHIBITS:
+ case TAG_CC_REQUIRES:
+ case TAG_CC_PERMITS:
+ license->flags |= ref_to_flag (ref);
+ break;
+ case TAG_DC_TITLE:{
+ gchar *cur_lang;
+
+ cur_lang = g_strdelimit (g_strdup (ref), "-", '_');
+ license->cur_lang = g_intern_string (cur_lang);
+ if (!g_list_find_custom (langs, cur_lang, (GCompareFunc) strcmp))
+ langs = g_list_prepend (langs, (gpointer) license->cur_lang);
+
+ g_free (cur_lang);
+ break;
+ }
+ case TAG_DC_DESCRIPTION:{
+ gchar *cur_lang;
+
+ cur_lang = g_strdelimit (g_strdup (ref), "-", '_');
+ license->cur_lang = g_intern_string (cur_lang);
+ if (!g_list_find_custom (langs, cur_lang, (GCompareFunc) strcmp))
+ langs = g_list_prepend (langs, (gpointer) license->cur_lang);
+
+ g_free (cur_lang);
+ break;
+ }
+ case TAG_DCQ_IS_REPLACED_BY:
+ /* we assume one replacer per license for now */
+ g_assert (license->replaced_by == NULL);
+ license->replaced_by = g_strdup (ref);
+ break;
+ case TAG_RDF_DESCRIPTION:
+ if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+ g_error ("Unexpected license reference: %s\n", ref);
+ if (license->ref != NULL && strcmp (license->ref, ref) != 0) {
+ gchar *f, *r = g_strdup (ref);
+
+ /* work around bug in some of the RDFs ... */
+ if ((f = strstr (r, "by-nc-nd"))) {
+ memcpy (f, "by-nd-nc", 8);
+ }
+ if (strcmp (license->ref, r) != 0) {
+ g_error ("rdf:Description chunk for other than current license");
+ }
+ g_free (r);
+ }
+ break;
+ case TAG_DC_SOURCE:
+ if (!g_str_has_prefix (ref, "http://creativecommons.org/licenses/"))
+ g_error ("Unexpected source reference: %s\n", ref);
+ /* we assume one source (for jurisdiction-specific versions) */
+ g_assert (license->source == NULL);
+ license->source = g_strdup (ref);
+ break;
+ default:
+ g_printerr ("unhandled start tag: %s\n", element_name);
+ break;
+ }
+}
+
+static void
+parse_text (GMarkupParseContext * ctx, const gchar * text, gsize text_len,
+ gpointer user_data, GError ** err)
+{
+ License *license = user_data;
+ const gchar *element_name, *found;
+ int i;
+
+ element_name = g_markup_parse_context_get_element (ctx);
+ for (i = 0; i < G_N_ELEMENTS (tag_map); ++i) {
+ if (strcmp (element_name, tag_map[i].element_name) == 0)
+ break;
+ }
+
+ if (i == G_N_ELEMENTS (tag_map))
+ g_error ("Unexpected tag '%s'\n", element_name);
+
+ switch (tag_map[i].element_tag) {
+ case TAG_CC_LICENSE:
+ case TAG_CC_JURISDICTION:
+ case TAG_CC_LEGALCODE:
+ case TAG_DC_CREATOR:
+ case TAG_CC_PROHIBITS:
+ case TAG_CC_REQUIRES:
+ case TAG_CC_PERMITS:
+ case TAG_RDF_RDF:
+ case TAG_RDF_DESCRIPTION:
+ break;
+ case TAG_DC_TITLE:
+ if (license->titles == NULL) {
+ license->titles = g_hash_table_new (g_str_hash, g_str_equal);
+ }
+ g_hash_table_insert (license->titles, (gpointer) license->cur_lang,
+ (gpointer) g_intern_string (text));
+ break;
+ case TAG_DC_DESCRIPTION:{
+ gchar *txt = g_strdup (text);
+
+ if (license->descriptions == NULL) {
+ license->descriptions = g_hash_table_new (g_str_hash, g_str_equal);
+ }
+ g_strdelimit (txt, "\n", ' ');
+ g_hash_table_insert (license->descriptions, (gpointer) license->cur_lang,
+ (gpointer) g_intern_string (txt));
+ g_free (txt);
+ break;
+ }
+ case TAG_DCQ_HAS_VERSION:
+ /* we assume one version per license */
+ g_assert (license->version == NULL);
+ license->version = g_strdup (text);
+ found = strstr (known_versions, license->version);
+ if (found == NULL || found[strlen (license->version)] != '/')
+ g_error ("Unexpected version '%s', please add to table.", text);
+ break;
+ case TAG_CC_DEPRECATED_ON:
+ license->deprecated = TRUE;
+ break;
+ case TAG_DC_SOURCE: // FIXME
+ default:
+ g_print ("text (%s) (%s): '%s'\n", element_name, license->cur_lang, text);
+ }
+}
+
+static void
+parse_passthrough (GMarkupParseContext * ctx, const gchar * text, gsize len,
+ gpointer user_data, GError ** err)
+{
+ if (!g_str_has_prefix (text, "<?xml ")) {
+ g_error ("Unexpected passthrough text: %s\n", text);
+ }
+}
+
+static void
+parse_error (GMarkupParseContext * ctx, GError * err, gpointer data)
+{
+ g_error ("parse error: %s\n", err->message);
+}
+
+static const GMarkupParser license_rdf_parser = {
+ parse_start, NULL, parse_text, parse_passthrough, parse_error
+};
+
+static void
+parse_license_rdf (const gchar * fn, const gchar * rdf)
+{
+ GMarkupParseContext *ctx;
+ License *license;
+ GError *err = NULL;
+
+ if (!g_utf8_validate (rdf, -1, NULL)) {
+ g_error ("%s is not valid UTF-8\n", fn);
+ }
+
+ license = g_new0 (License, 1);
+
+ /* mark as generic until proven otherwise */
+ license->jurisdiction = JURISDICTION_GENERIC;
+
+ ctx = g_markup_parse_context_new (&license_rdf_parser,
+ G_MARKUP_TREAT_CDATA_AS_TEXT, license, NULL);
+
+ /* g_print ("Parsing %s\n", fn); */
+
+ if (!g_markup_parse_context_parse (ctx, rdf, -1, &err)) {
+ g_error ("Error parsing file %s: %s\n", fn, err->message);
+ }
+
+ licenses = g_list_append (licenses, license);
+
+ g_markup_parse_context_free (ctx);
+}
+
+static void
+read_licenses (const gchar * licenses_dir)
+{
+ const gchar *name;
+ GError *err = NULL;
+ GDir *dir;
+
+ dir = g_dir_open (licenses_dir, 0, &err);
+
+ if (dir == NULL)
+ g_error ("Failed to g_dir_open('%s'): %s", licenses_dir, err->message);
+
+ while ((name = g_dir_read_name (dir))) {
+ gchar *fn, *rdf;
+
+ fn = g_build_filename (licenses_dir, name, NULL);
+ if (g_file_get_contents (fn, &rdf, NULL, &err)) {
+ parse_license_rdf (fn, rdf);
+ g_free (rdf);
+ } else {
+ g_printerr ("Could not read file '%s': %s\n", fn, err->message);
+ g_error_free (err);
+ err = NULL;
+ }
+ g_free (fn);
+ }
+
+ g_dir_close (dir);
+}
+
+static License *
+find_license (const gchar * ref)
+{
+ GList *l;
+
+ if (!g_str_has_prefix (ref, "http://creativecommons.org/"))
+ return NULL;
+
+ for (l = licenses; l != NULL; l = l->next) {
+ License *license = l->data;
+
+ if (strcmp (license->ref, ref) == 0)
+ return license;
+ }
+
+ return NULL;
+}
+
+static int
+license_ref_cmp (License * a, License * b)
+{
+ return strcmp (a->ref, b->ref);
+}
+
+#define STRING_TABLE_MAX_STRINGS 100
+typedef struct
+{
+ GString *s;
+ guint num_escaped;
+ guint num_strings;
+ guint indices[STRING_TABLE_MAX_STRINGS];
+ gchar *strings[STRING_TABLE_MAX_STRINGS]; /* unescaped strings */
+} StringTable;
+
+static StringTable *
+string_table_new (void)
+{
+ StringTable *t = g_new0 (StringTable, 1);
+
+ t->s = g_string_new (NULL);
+ return t;
+}
+
+static void
+string_table_free (StringTable * t)
+{
+ int i;
+
+ for (i = 0; i < t->num_strings; ++i)
+ g_free (t->strings[i]);
+
+ g_string_free (t->s, TRUE);
+ g_free (t);
+}
+
+static guint
+string_table_add_string (StringTable * t, const gchar * str)
+{
+ const gchar *s;
+ guint idx, i;
+
+ /* check if we already have this string */
+ for (i = 0; i < t->num_strings; ++i) {
+ if (strcmp (t->strings[i], str) == 0)
+ return t->indices[i];
+ }
+
+ /* save current offset */
+ idx = t->s->len;
+
+ /* adjust for fact that \000 is 4 chars now but will take up only 1 later */
+ idx -= t->num_escaped * 3;
+
+ /* append one char at a time, making sure to escape UTF-8 characters */
+ for (s = str; s != NULL && *s != '\0'; ++s) {
+ if (g_ascii_isprint (*s) && *s != '"' && *s != '\\') {
+ g_string_append_c (t->s, *s);
+ } else {
+ g_string_append_printf (t->s, "\\%03o", (unsigned char) *s);
+ t->num_escaped++;
+ }
+ }
+ g_string_append (t->s, "\\000");
+ t->num_escaped++;
+
+ t->indices[t->num_strings] = idx;
+ t->strings[t->num_strings] = g_strdup (str);
+ ++t->num_strings;
+
+ return idx;
+}
+
+static void
+string_table_print (StringTable * t)
+{
+ const gchar *s;
+
+ s = t->s->str;
+ while (s != NULL && *s != '\0') {
+ gchar line[74], *lastesc;
+ guint left;
+
+ left = strlen (s);
+ g_strlcpy (line, s, MIN (left, sizeof (line)));
+ s += sizeof (line) - 1;
+ /* avoid partial escaped codes at the end of a line */
+ if ((lastesc = strrchr (line, '\\')) && strlen (lastesc) < 4) {
+ s -= strlen (lastesc);
+ *lastesc = '\0';
+ }
+ g_print (" \"%s\"", line);
+ if (left < 74)
+ break;
+ g_print ("\n");
+ }
+ g_print (";\n");
+}
+
+/* skip translation if translated string for e.g. "fr_ca" is same as for "fr" */
+static gboolean
+skip_translation (GHashTable * ht_strings, const gchar * lang,
+ const gchar * trans)
+{
+ const gchar *simple_trans;
+ gchar *simple_lang;
+
+ if (strchr (lang, '_') == NULL)
+ return FALSE;
+
+ simple_lang = g_strdup (lang);
+ g_strdelimit (simple_lang, "_", '\0');
+
+ simple_trans = g_hash_table_lookup (ht_strings, (gpointer) simple_lang);
+ g_free (simple_lang);
+
+ return (simple_trans != NULL && strcmp (trans, simple_trans) == 0);
+}
+
+static GVariant *
+create_translation_dict (GHashTable * ht_strings, const gchar * en)
+{
+ GVariantBuilder array;
+ guint count = 0;
+ GList *l;
+
+ g_variant_builder_init (&array, G_VARIANT_TYPE_ARRAY);
+
+ for (l = langs; l != NULL; l = l->next) {
+ const gchar *trans, *lang;
+
+ lang = (const gchar *) l->data;
+ trans = g_hash_table_lookup (ht_strings, (gpointer) lang);
+ if (trans != NULL && *trans != '\0' && strcmp (en, trans) != 0 &&
+ !skip_translation (ht_strings, lang, trans)) {
+ /* g_print ("%s (%s) => %s\n", en, lang, trans); */
+ g_variant_builder_add_value (&array,
+ g_variant_new_dict_entry (g_variant_new_string (lang),
+ g_variant_new_string (trans)));
+ ++count;
+ }
+ }
+
+ if (count == 0) {
+ g_variant_builder_clear (&array);
+ return NULL;
+ }
+
+ return g_variant_builder_end (&array);
+}
+
+static void
+write_translations_dictionary (GList * licenses, const gchar * dict_filename)
+{
+ /* maps C string => (dictionary of: locale => translation) */
+ GVariantBuilder array;
+ /* maps C string => boolean (if it's in the dictionary already */
+ GHashTable *translations;
+ GVariant *var;
+ GList *l;
+ FILE *f;
+
+ /* sort langs for prettiness / to make variant dumps easier to read */
+ langs = g_list_sort (langs, (GCompareFunc) strcmp);
+
+ g_variant_builder_init (&array, G_VARIANT_TYPE_ARRAY);
+
+ translations = g_hash_table_new (g_str_hash, g_str_equal);
+
+ for (l = licenses; l != NULL; l = l->next) {
+ const gchar *en;
+ License *license;
+
+ license = l->data;
+
+ if (license->packed_into_source)
+ continue;
+
+ /* add title + translations */
+ en = g_hash_table_lookup (license->titles, "en");
+ g_assert (en != NULL);
+
+ /* check if we already have added translations for this string */
+ if (!g_hash_table_lookup (translations, (gpointer) en)) {
+ GVariant *trans;
+
+ trans = create_translation_dict (license->titles, en);
+ if (trans != NULL) {
+ g_variant_builder_add_value (&array,
+ g_variant_new_dict_entry (g_variant_new_string (en), trans));
+ g_hash_table_insert (translations, (gpointer) en,
+ GINT_TO_POINTER (TRUE));
+ }
+ }
+
+ /* add description + translations */
+ if (license->descriptions == NULL)
+ continue;
+
+ en = g_hash_table_lookup (license->descriptions, "en");
+ g_assert (en != NULL);
+
+ /* check if we already have added translations for this string */
+ if (!g_hash_table_lookup (translations, (gpointer) en)) {
+ GVariant *trans;
+
+ trans = create_translation_dict (license->descriptions, en);
+ if (trans != NULL) {
+ g_variant_builder_add_value (&array,
+ g_variant_new_dict_entry (g_variant_new_string (en), trans));
+ g_hash_table_insert (translations, (gpointer) en,
+ GINT_TO_POINTER (TRUE));
+ }
+ }
+ }
+
+ var = g_variant_builder_end (&array);
+
+ f = fopen (dict_filename, "wb");
+ if (fwrite (g_variant_get_data (var), g_variant_get_size (var), 1, f) != 1) {
+ g_error ("failed to write dict to file: %s", g_strerror (errno));
+ }
+ fclose (f);
+
+ g_printerr ("Wrote dictionary to %s, size: %u, type: %s\n", dict_filename,
+ (guint) g_variant_get_size (var), (gchar *) g_variant_get_type (var));
+
+ g_variant_unref (var);
+ g_hash_table_destroy (translations);
+}
+
+int
+main (int argc, char **argv)
+{
+ gchar *translation_dict_fn = NULL;
+ GOptionContext *ctx;
+ GOptionEntry options[] = {
+ {"translation-dictionary", 0, 0, G_OPTION_ARG_FILENAME,
+ &translation_dict_fn, "Filename of translations dictionary to write",
+ NULL},
+ {NULL}
+ };
+ StringTable *string_table;
+ GError *err = NULL;
+ GList *l;
+ int idx = 0;
+
+ g_type_init ();
+
+ ctx = g_option_context_new ("");
+ g_option_context_add_main_entries (ctx, options, NULL);
+ if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
+ g_printerr ("Error initializing: %s\n", err->message);
+ exit (1);
+ }
+ g_option_context_free (ctx);
+
+ read_licenses (LIBLICENSE_DATA_PREFIX);
+
+ g_printerr ("%d licenses\n", g_list_length (licenses));
+
+ unknown_sources = g_hash_table_new (g_str_hash, g_str_equal);
+
+ for (l = licenses; l != NULL; l = l->next) {
+ License *license = l->data;
+
+ /* if the license has as source, check if we can 'pack' it into the
+ * original license as a jurisdiction-specific variant */
+ if (license->source != NULL) {
+ License *source = find_license (license->source);
+
+ if (source != NULL) {
+ if (source->flags != license->flags) {
+ g_printerr ("Source and derived license have different flags:\n"
+ "\t0x%08x : %s\n\t0x%08x : %s\n", source->flags, source->ref,
+ license->flags, license->ref);
+ source = NULL;
+ } else {
+ if (source->descriptions == NULL) {
+ /* neither should the derived one then */
+ g_assert (license->descriptions == NULL);
+ } else {
+ /* make sure we're not settling for fewer descriptions than
+ * there are */
+ g_assert (g_hash_table_size (license->titles) <=
+ g_hash_table_size (source->titles));
+ g_assert (g_hash_table_size (license->descriptions) <=
+ g_hash_table_size (source->descriptions));
+ }
+ }
+ } else {
+ /* a source is referenced that we haven't encountered
+ * (possibly a referencing bug? seems to happen e.g. when there's a
+ * 2.1 version of a jurisdiction license and it refers to a 2.1
+ * source version, but there's only a 2.0 or 2.5 source version. So
+ * maybe it's supposed to refer to the 2.0 source then, who knows) */
+ if (!g_hash_table_lookup (unknown_sources, license->source)) {
+ g_printerr ("Unknown source license %s\n", license->source);
+ g_hash_table_insert (unknown_sources, g_strdup (license->source),
+ GUINT_TO_POINTER (TRUE));
+ }
+ /* g_print ("Unknown source license %s referenced from %s\n",
+ * license->source, license->ref); */
+ }
+
+ /* should we pack this into the source or not */
+ if (source != NULL) {
+ source->jurisdiction |= license->jurisdiction;
+ source->derived = g_list_insert_sorted (source->derived, license,
+ (GCompareFunc) license_ref_cmp);
+ license->packed_into_source = TRUE;
+ }
+ } else {
+ /* no source license */
+ if (license->titles == NULL)
+ g_error ("License has no titles: %s\n", license->ref);
+ if (license->descriptions == NULL);
+ g_printerr ("License %s has no descriptions!\n", license->ref);
+ }
+ }
+
+ licenses = g_list_sort (licenses, (GCompareFunc) license_ref_cmp);
+
+ string_table = string_table_new ();
+
+ g_print ("/* created by mklicensestables.c */\n");
+ g_print ("static const struct {\n"
+ " /* jurisdictions in addition to the generic version, bitfield */\n"
+ " const guint64 jurisdictions;\n"
+ " const GstTagLicenseFlags flags;\n"
+ " /* the bit after http://creativecommons.org/licenses/ */\n"
+ " const gchar ref[18];\n"
+ " gint16 title_idx; /* index in string table */\n"
+ " gint16 desc_idx; /* index in string table */\n"
+ "} licenses[] = {\n");
+
+ for (l = licenses; l != NULL; l = l->next) {
+ const gchar *title_en, *desc_en;
+ int idx_title, idx_desc;
+ License *license;
+
+ license = l->data;
+
+ if (license->packed_into_source)
+ continue;
+
+ title_en = g_hash_table_lookup (license->titles, "en");
+ g_assert (title_en != NULL);
+ idx_title = string_table_add_string (string_table, title_en);
+ g_assert (idx_title <= G_MAXINT16);
+
+ if (license->descriptions != NULL) {
+ desc_en = g_hash_table_lookup (license->descriptions, "en");
+ g_assert (desc_en != NULL);
+ idx_desc = string_table_add_string (string_table, desc_en);
+ g_assert (idx_desc <= G_MAXINT16);
+ } else {
+ idx_desc = -1;
+ }
+
+ /* output comments with license refs covered by the next stanza */
+ if (license->derived != NULL) {
+ GList *d;
+
+ g_print (" /* %2d %s\n", idx, license->ref);
+
+ for (d = license->derived; d != NULL; d = d->next) {
+ License *derived_license = d->data;
+
+ g_print (" * %2d %s%s\n", idx, derived_license->ref,
+ (d->next == NULL) ? " */" : "");
+ }
+ } else {
+ g_print (" /* %2d %s */\n", idx, license->ref);
+ }
+ /* output essential data */
+ {
+ gchar *ref;
+
+ ref =
+ g_strdup (license->ref +
+ strlen ("http://creativecommons.org/licenses/"));
+
+ /* remove jurisdiction suffix from ref if this is non-generic, since
+ * the suffix is already contained in the jurisdiction flags */
+ if (license->jurisdiction_suffix != NULL) {
+ gsize suffix_len = strlen (license->jurisdiction_suffix);
+ gchar *cutoff;
+
+ cutoff = ref + strlen (ref) - suffix_len;
+ g_assert (!strncmp (cutoff, license->jurisdiction_suffix, suffix_len));
+ g_assert (cutoff[suffix_len - 1] == '/');
+ g_assert (cutoff[suffix_len] == '\0');
+ *cutoff = '\0';
+ }
+
+ g_print (" { 0x%016" G_GINT64_MODIFIER "x, 0x%08x, \"%s\", %d, %d }%s\n",
+ license->jurisdiction, license->flags, ref, idx_title, idx_desc,
+ (l->next != NULL) ? "," : "");
+
+ g_free (ref);
+ }
+ ++idx;
+ }
+ g_print ("};\n");
+
+ g_print ("\nstatic const gchar license_strings[] =\n");
+ string_table_print (string_table);
+ string_table_free (string_table);
+ string_table = NULL;
+
+ if (translation_dict_fn != NULL) {
+ write_translations_dictionary (licenses, translation_dict_fn);
+ }
+
+ return 0;
+}
/* GStreamer
* Copyright (C) 2003 Benjamin Otte <in7y118@public.uni-hamburg.de>
+ * Copyright (C) 2006-2011 Tim-Philipp Müller <tim centricular net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#define GST_TYPE_TAG_IMAGE_TYPE (gst_tag_image_type_get_type ())
GType gst_tag_image_type_get_type (void);
+/**
+ * GST_TAG_ID3V2_HEADER_SIZE:
+ *
+ * ID3V2 header size considered minimum input for some functions such as
+ * gst_tag_list_from_id3v2_tag() and gst_tag_get_id3v2_tag_size() for example.
+ *
+ * Since: 0.10.36
+ */
+#define GST_TAG_ID3V2_HEADER_SIZE 10
/* functions for vorbis comment manipulation */
-G_CONST_RETURN gchar * gst_tag_from_vorbis_tag (const gchar * vorbis_tag);
-G_CONST_RETURN gchar * gst_tag_to_vorbis_tag (const gchar * gst_tag);
+const gchar * gst_tag_from_vorbis_tag (const gchar * vorbis_tag);
+const gchar * gst_tag_to_vorbis_tag (const gchar * gst_tag);
void gst_vorbis_tag_add (GstTagList * list,
const gchar * tag,
const gchar * value);
/* functions for ID3 tag manipulation */
+/* FIXME 0.11: inconsistent API naming: gst_tag_list_new_from_id3v1(), gst_tag_list_from_*_buffer(),
+ * gst_tag_list_from_id3v2_tag(). Also, note gst.tag.list_xyz() namespace vs. gst.tag_list_xyz(),
+ * which is a bit confusing and possibly doesn't map too well */
+
guint gst_tag_id3_genre_count (void);
-G_CONST_RETURN gchar * gst_tag_id3_genre_get (const guint id);
+const gchar * gst_tag_id3_genre_get (const guint id);
GstTagList * gst_tag_list_new_from_id3v1 (const guint8 * data);
-G_CONST_RETURN gchar * gst_tag_from_id3_tag (const gchar * id3_tag);
-G_CONST_RETURN gchar * gst_tag_from_id3_user_tag (const gchar * type,
+const gchar * gst_tag_from_id3_tag (const gchar * id3_tag);
+const gchar * gst_tag_from_id3_user_tag (const gchar * type,
const gchar * id3_user_tag);
-G_CONST_RETURN gchar * gst_tag_to_id3_tag (const gchar * gst_tag);
+const gchar * gst_tag_to_id3_tag (const gchar * gst_tag);
gboolean gst_tag_list_add_id3_image (GstTagList * tag_list,
const guint8 * image_data,
guint image_data_len,
guint id3_picture_type);
+GstTagList * gst_tag_list_from_id3v2_tag (GstBuffer * buffer);
+
+guint gst_tag_get_id3v2_tag_size (GstBuffer * buffer);
+
/* functions to convert GstBuffers with xmp packets contents to GstTagLists and back */
GstTagList * gst_tag_list_from_xmp_buffer (const GstBuffer * buffer);
GstBuffer * gst_tag_list_to_xmp_buffer (const GstTagList * list,
#define gst_tag_get_language_code(lang_code) \
gst_tag_get_language_code_iso_639_1(lang_code)
+
+/* functions to deal with (mostly) Creative Commons licenses */
+
+/**
+ * GstTagLicenseFlags:
+ * @GST_TAG_LICENSE_PERMITS_REPRODUCTION: making multiple copies
+ * is allowed
+ * @GST_TAG_LICENSE_PERMITS_DISTRIBUTION: distribution, public display
+ * and public performance are allowed
+ * @GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS: distribution of derivative
+ * works is allowed
+ * @GST_TAG_LICENSE_PERMITS_SHARING: commercial derivatives are allowed,
+ * but only non-commercial distribution is allowed
+ * @GST_TAG_LICENSE_REQUIRES_NOTICE: copyright and license notices
+ * must be kept intact
+ * @GST_TAG_LICENSE_REQUIRES_ATTRIBUTION: credit must be given to
+ * copyright holder and/or author
+ * @GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE: derivative works must be
+ * licensed under the same terms or compatible terms as the original work
+ * @GST_TAG_LICENSE_REQUIRES_SOURCE_CODE: source code (the preferred
+ * form for making modifications) must be provided when exercising some
+ * rights granted by the license
+ * @GST_TAG_LICENSE_REQUIRES_COPYLEFT: derivative and combined works
+ * must be licensed under specified terms, similar to those of the original
+ * work
+ * @GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT: derivative works must be
+ * licensed under specified terms, with at least the same conditions as
+ * the original work; combinations with the work may be licensed under
+ * different terms
+ * @GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE: exercising rights for
+ * commercial purposes is prohibited
+ * @GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE: use in a
+ * non-developing country is prohibited
+ * @GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE: this license was created
+ * by the Creative Commons project
+ * @GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE: this license was
+ * created by the Free Software Foundation (FSF)
+ *
+ * See http://creativecommons.org/ns for more information.
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+ GST_TAG_LICENSE_PERMITS_REPRODUCTION = (1 << 0),
+ GST_TAG_LICENSE_PERMITS_DISTRIBUTION = (1 << 1),
+ GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS = (1 << 2),
+ GST_TAG_LICENSE_PERMITS_SHARING = (1 << 3),
+
+ GST_TAG_LICENSE_REQUIRES_NOTICE = (1 << 8),
+ GST_TAG_LICENSE_REQUIRES_ATTRIBUTION = (1 << 9),
+ GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE = (1 << 10),
+ GST_TAG_LICENSE_REQUIRES_SOURCE_CODE = (1 << 11),
+ GST_TAG_LICENSE_REQUIRES_COPYLEFT = (1 << 12),
+ GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT = (1 << 13),
+
+ GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE = (1 << 16),
+ GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE = (1 << 17),
+
+ GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE = (1 << 24),
+ GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE = (1 << 25)
+} GstTagLicenseFlags;
+
+gchar ** gst_tag_get_licenses (void);
+
+GstTagLicenseFlags gst_tag_get_license_flags (const gchar * license_ref);
+
+const gchar * gst_tag_get_license_nick (const gchar * license_ref);
+
+const gchar * gst_tag_get_license_title (const gchar * license_ref);
+
+const gchar * gst_tag_get_license_version (const gchar * license_ref);
+
+const gchar * gst_tag_get_license_description (const gchar * license_ref);
+
+const gchar * gst_tag_get_license_jurisdiction (const gchar * license_ref);
+
+GType gst_tag_license_flags_get_type (void);
+
G_END_DECLS
#endif /* __GST_TAG_TAG_H__ */
#include <gst/base/gsttypefindhelper.h>
#include <gst/gst.h>
#include "tag.h"
+#include "id3v2.h"
#include <string.h>
G_TYPE_DOUBLE, _("image vertical ppi"),
_("Media (image/video) intended vertical pixel density in ppi"), NULL);
+ gst_tag_register (GST_TAG_ID3V2_FRAME, GST_TAG_FLAG_META,
+ GST_TYPE_BUFFER, _("ID3v2 frame"), _("unparsed id3v2 tag frame"),
+ gst_tag_merge_use_first);
+
return NULL;
}
/* fallback in case iconv implementation doesn't support windows-1252
* for some reason */
if (err->code == G_CONVERT_ERROR_NO_CONVERSION) {
+ g_free (utf8);
utf8 = g_convert (data, size, "UTF-8", "ISO-8859-1", &bytes_read,
NULL, NULL);
}
-/* GStreamer XmpConfig
+/* GStreamer TagXmpWriter
* Copyright (C) 2010 Thiago Santos <thiago.sousa.santos@collabora.co.uk>
*
* This library is free software; you can redistribute it and/or
*/
/**
- * SECTION:gstxmpconfig
+ * SECTION:gsttagxmpwriter
* @short_description: Interface for elements that provide XMP serialization
*
* <refsect2>
typedef struct
{
GSList *schemas;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
GStaticMutex lock;
+#else
+ GMutex lock;
+#endif
} GstTagXmpWriterData;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+#define GST_TAG_XMP_WRITER_DATA_LOCK(data) g_static_mutex_lock(&data->lock)
+#define GST_TAG_XMP_WRITER_DATA_UNLOCK(data) g_static_mutex_unlock(&data->lock)
+#else
+#define GST_TAG_XMP_WRITER_DATA_LOCK(data) g_mutex_lock(&data->lock)
+#define GST_TAG_XMP_WRITER_DATA_UNLOCK(data) g_mutex_unlock(&data->lock)
+#endif
+
GType
gst_tag_xmp_writer_get_type (void)
{
}
g_slist_free (data->schemas);
}
-
+#if !GLIB_CHECK_VERSION (2, 31, 0)
g_static_mutex_free (&data->lock);
+#else
+ g_mutex_clear (&data->lock);
+#endif
g_slice_free (GstTagXmpWriterData, data);
}
data = g_object_get_qdata (G_OBJECT (xmpconfig), tag_xmp_writer_key);
if (!data) {
+ /* make sure no other thread is creating a GstTagData at the same time */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
static GStaticMutex create_mutex = G_STATIC_MUTEX_INIT;
- /* make sure no other thread is creating a GstTagXmpWriterData at the same time */
g_static_mutex_lock (&create_mutex);
+#else
+ static GMutex create_mutex; /* no initialisation required */
+
+ g_mutex_lock (&create_mutex);
+#endif
+
data = g_object_get_qdata (G_OBJECT (xmpconfig), tag_xmp_writer_key);
if (!data) {
data = g_slice_new (GstTagXmpWriterData);
- g_static_mutex_init (&data->lock);
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+ g_static_mutex_init (&data->lock);
+#else
+ g_mutex_init (&data->lock);
+#endif
data->schemas = NULL;
gst_tag_xmp_writer_data_add_all_schemas_unlocked (data);
g_object_set_qdata_full (G_OBJECT (xmpconfig), tag_xmp_writer_key, data,
gst_tag_xmp_writer_data_free);
}
+#if !GLIB_CHECK_VERSION (2, 31, 0)
g_static_mutex_unlock (&create_mutex);
+#else
+ g_mutex_unlock (&create_mutex);
+#endif
}
return data;
data = gst_tag_xmp_writer_get_data (config);
- g_static_mutex_lock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_LOCK (data);
gst_tag_xmp_writer_data_add_all_schemas_unlocked (data);
- g_static_mutex_unlock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
}
/**
data = gst_tag_xmp_writer_get_data (config);
- g_static_mutex_lock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_LOCK (data);
gst_tag_xmp_writer_data_add_schema_unlocked (data, schema);
- g_static_mutex_unlock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
}
/**
data = gst_tag_xmp_writer_get_data (config);
- g_static_mutex_lock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_LOCK (data);
for (iter = data->schemas; iter; iter = g_slist_next (iter)) {
if (strcmp ((const gchar *) iter->data, schema) == 0) {
ret = TRUE;
break;
}
}
- g_static_mutex_unlock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
return ret;
}
data = gst_tag_xmp_writer_get_data (config);
- g_static_mutex_lock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_LOCK (data);
for (iter = data->schemas; iter; iter = g_slist_next (iter)) {
if (strcmp ((const gchar *) iter->data, schema) == 0) {
g_free (iter->data);
break;
}
}
- g_static_mutex_unlock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
}
/**
data = gst_tag_xmp_writer_get_data (config);
- g_static_mutex_lock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_LOCK (data);
if (data->schemas) {
for (iter = data->schemas; iter; iter = g_slist_next (iter)) {
g_free (iter->data);
g_slist_free (data->schemas);
}
data->schemas = NULL;
- g_static_mutex_unlock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
}
GstBuffer *
data = gst_tag_xmp_writer_get_data (config);
- g_static_mutex_lock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_LOCK (data);
if (data->schemas) {
gchar **array = g_new0 (gchar *, g_slist_length (data->schemas) + 1);
if (array) {
g_free (array);
}
}
- g_static_mutex_unlock (&data->lock);
+ GST_TAG_XMP_WRITER_DATA_UNLOCK (data);
return buf;
}
#define GST_TYPE_TAG_XMP_WRITER \
(gst_tag_xmp_writer_get_type ())
#define GST_TAG_XMP_WRITER(obj) \
- (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriter))
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriter))
#define GST_TAG_XMP_WRITER_INTERFACE(iface) \
(G_TYPE_CHECK_INTERFACE_CAST ((iface), GST_TYPE_TAG_XMP_WRITER, GstTagXmpWriterInterface))
#define GST_IS_TAG_XMP_WRITER(obj) \
- (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_XMP_WRITER))
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_TAG_XMP_WRITER))
#define GST_IS_TAG_XMP_WRITER_INTERFACE(iface) \
(G_TYPE_CHECK_INTERFACE_TYPE ((iface), GST_TYPE_TAG_XMP_WRITER))
#define GST_TAG_XMP_WRITER_GET_INTERFACE(inst) \
glib_gen_prefix = gst_video
glib_gen_basename = video
+lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
+
+ORC_SOURCE=videoblendorc
+include $(top_srcdir)/common/orc.mak
+
built_sources = video-enumtypes.c
built_headers = video-enumtypes.h
-BUILT_SOURCES = $(built_sources) $(built_headers)
-lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
+# orc.mak sets BUILT_SOURCES as well
+BUILT_SOURCES += $(built_sources) $(built_headers)
CLEANFILES = $(BUILT_SOURCES)
+# video-blend.h should be disted but not installed into the includedir
libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
- video.c gstvideosink.c gstvideofilter.c convertframe.c
-nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
-
+ video.c gstvideosink.c gstvideofilter.c convertframe.c \
+ video-blend.c video-blend.h video-overlay-composition.c
+nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
+ $(built_sources) $(built_headers) \
+ $(ORC_NODIST_SOURCES)
libgstvideo_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/video
libgstvideo_@GST_MAJORMINOR@include_HEADERS = \
- video.h gstvideosink.h gstvideofilter.h
+ video.h gstvideosink.h gstvideofilter.h video-overlay-composition.h
nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS = $(built_headers)
-libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS)
-libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = \
+ $(GST_PLUGINS_BASE_CFLAGS)\
+ $(GST_BASE_CFLAGS) \
+ $(GST_CFLAGS) \
+ $(ORC_CFLAGS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) \
+ $(GST_LIBS) \
+ $(ORC_LIBS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = \
+ $(GST_LIB_LDFLAGS) \
+ $(GST_ALL_LDFLAGS) \
+ $(GST_LT_LDFLAGS)
include $(top_srcdir)/common/gst-glib-gen.mak
BUILT_GIRSOURCES = GstVideo-@GST_MAJORMINOR@.gir
gir_headers=$(patsubst %,$(srcdir)/%, $(libgstvideo_@GST_MAJORMINOR@include_HEADERS))
-gir_headers+=$(patsubst %,$(builddir)/%, $(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS))
-gir_sources=$(patsubst %,$(srcdir)/%, $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
-gir_sources+=$(patsubst %,$(builddir)/%, $(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
+gir_headers+=$(patsubst %,$(builddir)/%, $(built_headers))
+video_gir_sources=$(patsubst %,$(srcdir)/%, $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
+video_gir_sources+=$(patsubst %,$(builddir)/%, $(built_sources))
+gir_sources=$(subst $(srcdir)/video-blend.h,,$(subst $(srcdir)/video-blend.c,,$(video_gir_sources)))
gir_cincludes=$(patsubst %,--c-include='gst/video/%',$(libgstvideo_@GST_MAJORMINOR@include_HEADERS))
gir_cincludes+=$(patsubst %,--c-include='gst/video/%',$(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS))
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
$(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
- -:CFLAGS $(DEFS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
-:LDFLAGS $(libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS) \
$(libgstvideo_@GST_MAJORMINOR@_la_LIBADD) \
-ldl \
-# 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.
@SET_MAKE@
+#
+# This is a makefile.am fragment to build Orc code.
+#
+# Define ORC_SOURCE and then include this file, such as:
+#
+# ORC_SOURCE=gstadderorc
+# include $(top_srcdir)/common/orc.mak
+#
+# This fragment will create tmp-orc.c and gstadderorc.h from
+# gstadderorc.orc.
+#
+# When 'make dist' is run at the top level, or 'make orc-update'
+# in a directory including this fragment, the generated source
+# files will be copied to $(ORC_SOURCE)-dist.[ch]. These files
+# should be checked in to git, since they are used if Orc is
+# disabled.
+#
+# Note that this file defines BUILT_SOURCES, so any later usage
+# of BUILT_SOURCES in the Makefile.am that includes this file
+# must use '+='.
+#
+
# these are the variables your Makefile.am should set
# the example is based on the colorbalance interface
host_triplet = @host@
DIST_COMMON = $(libgstvideo_@GST_MAJORMINOR@include_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
- $(top_srcdir)/common/gst-glib-gen.mak
+ $(top_srcdir)/common/gst-glib-gen.mak \
+ $(top_srcdir)/common/orc.mak
@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = gst-libs/gst/video
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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)$(libdir)" "$(DESTDIR)$(girdir)" \
"$(DESTDIR)$(typelibsdir)" \
"$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)" \
LTLIBRARIES = $(lib_LTLIBRARIES)
am__DEPENDENCIES_1 =
libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
am_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS = \
libgstvideo_@GST_MAJORMINOR@_la-video.lo \
libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo \
libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo \
- libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo
+ libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo \
+ libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo \
+ libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo
am__objects_1 = libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo
am__objects_2 =
-am__objects_3 = $(am__objects_1) $(am__objects_2)
-nodist_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_3)
+am__objects_3 = libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo
+nodist_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS = $(am__objects_1) \
+ $(am__objects_2) $(am__objects_3)
libgstvideo_@GST_MAJORMINOR@_la_OBJECTS = \
$(am_libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) \
$(nodist_libgstvideo_@GST_MAJORMINOR@_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
libgstvideo_@GST_MAJORMINOR@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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 = $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
$(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
glib_enum_define = GST_VIDEO
glib_gen_prefix = gst_video
glib_gen_basename = video
+lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
+ORC_SOURCE = videoblendorc
+EXTRA_DIST = $(ORC_SOURCE).orc
+ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
+
+# orc.mak sets BUILT_SOURCES as well
+BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h $(built_sources) \
+ $(built_headers)
+orcc_v_gen = $(orcc_v_gen_$(V))
+orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY))
+orcc_v_gen_0 = @echo " ORCC $@";
+cp_v_gen = $(cp_v_gen_$(V))
+cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY))
+cp_v_gen_0 = @echo " CP $@";
built_sources = video-enumtypes.c
built_headers = video-enumtypes.h
-BUILT_SOURCES = $(built_sources) $(built_headers)
-lib_LTLIBRARIES = libgstvideo-@GST_MAJORMINOR@.la
CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
+
+# video-blend.h should be disted but not installed into the includedir
libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
- video.c gstvideosink.c gstvideofilter.c convertframe.c
+ video.c gstvideosink.c gstvideofilter.c convertframe.c \
+ video-blend.c video-blend.h video-overlay-composition.c
+
+nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = \
+ $(built_sources) $(built_headers) \
+ $(ORC_NODIST_SOURCES)
-nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES = $(BUILT_SOURCES)
libgstvideo_@GST_MAJORMINOR@includedir = $(includedir)/gstreamer-@GST_MAJORMINOR@/gst/video
libgstvideo_@GST_MAJORMINOR@include_HEADERS = \
- video.h gstvideosink.h gstvideofilter.h
+ video.h gstvideosink.h gstvideofilter.h video-overlay-composition.h
nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS = $(built_headers)
-libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
-libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS)
-libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = $(GST_LIB_LDFLAGS) $(GST_ALL_LDFLAGS) $(GST_LT_LDFLAGS)
+libgstvideo_@GST_MAJORMINOR@_la_CFLAGS = \
+ $(GST_PLUGINS_BASE_CFLAGS)\
+ $(GST_BASE_CFLAGS) \
+ $(GST_CFLAGS) \
+ $(ORC_CFLAGS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LIBADD = $(GST_BASE_LIBS) \
+ $(GST_LIBS) \
+ $(ORC_LIBS)
+
+libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS = \
+ $(GST_LIB_LDFLAGS) \
+ $(GST_ALL_LDFLAGS) \
+ $(GST_LT_LDFLAGS)
+
enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
@HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstVideo-@GST_MAJORMINOR@.gir
@HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, \
@HAVE_INTROSPECTION_TRUE@ $(libgstvideo_@GST_MAJORMINOR@include_HEADERS)) \
@HAVE_INTROSPECTION_TRUE@ $(patsubst %,$(builddir)/%, \
-@HAVE_INTROSPECTION_TRUE@ $(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS))
-@HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, \
+@HAVE_INTROSPECTION_TRUE@ $(built_headers))
+@HAVE_INTROSPECTION_TRUE@video_gir_sources = $(patsubst %,$(srcdir)/%, \
@HAVE_INTROSPECTION_TRUE@ $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES)) \
@HAVE_INTROSPECTION_TRUE@ $(patsubst %,$(builddir)/%, \
-@HAVE_INTROSPECTION_TRUE@ $(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES))
+@HAVE_INTROSPECTION_TRUE@ $(built_sources))
+@HAVE_INTROSPECTION_TRUE@gir_sources = $(subst $(srcdir)/video-blend.h,,$(subst $(srcdir)/video-blend.c,,$(video_gir_sources)))
@HAVE_INTROSPECTION_TRUE@gir_cincludes = $(patsubst \
@HAVE_INTROSPECTION_TRUE@ %,--c-include='gst/video/%',$(libgstvideo_@GST_MAJORMINOR@include_HEADERS)) \
@HAVE_INTROSPECTION_TRUE@ $(patsubst \
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/gst-glib-gen.mak $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/orc.mak $(top_srcdir)/common/gst-glib-gen.mak $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
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_srcdir)/common/gst-glib-gen.mak:
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstvideo-@GST_MAJORMINOR@.la: $(libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES)
+libgstvideo-@GST_MAJORMINOR@.la: $(libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES) $(EXTRA_libgstvideo_@GST_MAJORMINOR@_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstvideo_@GST_MAJORMINOR@_la_LINK) -rpath $(libdir) $(libgstvideo_@GST_MAJORMINOR@_la_OBJECTS) $(libgstvideo_@GST_MAJORMINOR@_la_LIBADD) $(LIBS)
mostlyclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.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 $@ $<
libgstvideo_@GST_MAJORMINOR@_la-video.lo: video.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video.lo `test -f 'video.c' || echo '$(srcdir)/'`video.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='video.c' object='libgstvideo_@GST_MAJORMINOR@_la-video.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video.c' object='libgstvideo_@GST_MAJORMINOR@_la-video.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video.lo `test -f 'video.c' || echo '$(srcdir)/'`video.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video.lo `test -f 'video.c' || echo '$(srcdir)/'`video.c
libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo: gstvideosink.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo `test -f 'gstvideosink.c' || echo '$(srcdir)/'`gstvideosink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideosink.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideosink.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo `test -f 'gstvideosink.c' || echo '$(srcdir)/'`gstvideosink.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideosink.lo `test -f 'gstvideosink.c' || echo '$(srcdir)/'`gstvideosink.c
libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo: gstvideofilter.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo `test -f 'gstvideofilter.c' || echo '$(srcdir)/'`gstvideofilter.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideofilter.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideofilter.c' object='libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo `test -f 'gstvideofilter.c' || echo '$(srcdir)/'`gstvideofilter.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-gstvideofilter.lo `test -f 'gstvideofilter.c' || echo '$(srcdir)/'`gstvideofilter.c
libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo: convertframe.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo `test -f 'convertframe.c' || echo '$(srcdir)/'`convertframe.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-convertframe.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='convertframe.c' object='libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='convertframe.c' object='libgstvideo_@GST_MAJORMINOR@_la-convertframe.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo `test -f 'convertframe.c' || echo '$(srcdir)/'`convertframe.c
+
+libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo: video-blend.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo `test -f 'video-blend.c' || echo '$(srcdir)/'`video-blend.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-blend.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video-blend.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-blend.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-blend.lo `test -f 'video-blend.c' || echo '$(srcdir)/'`video-blend.c
+
+libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo: video-overlay-composition.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo `test -f 'video-overlay-composition.c' || echo '$(srcdir)/'`video-overlay-composition.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video-overlay-composition.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-convertframe.lo `test -f 'convertframe.c' || echo '$(srcdir)/'`convertframe.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-overlay-composition.lo `test -f 'video-overlay-composition.c' || echo '$(srcdir)/'`video-overlay-composition.c
libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo: video-enumtypes.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='video-enumtypes.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='video-enumtypes.c' object='libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.c
+
+libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo: tmp-orc.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -MT libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Tpo -c -o libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Tpo $(DEPDIR)/libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstvideo_@GST_MAJORMINOR@_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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-video-enumtypes.lo `test -f 'video-enumtypes.c' || echo '$(srcdir)/'`video-enumtypes.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) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) $(CFLAGS) -c -o libgstvideo_@GST_MAJORMINOR@_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
mostlyclean-libtool:
-rm -f *.lo
@$(NORMAL_UNINSTALL)
@list='$(gir_DATA)'; test -n "$(girdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(girdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(girdir)" && rm -f $$files
+ dir='$(DESTDIR)$(girdir)'; $(am__uninstall_files_from_dir)
install-typelibsDATA: $(typelibs_DATA)
@$(NORMAL_INSTALL)
test -z "$(typelibsdir)" || $(MKDIR_P) "$(DESTDIR)$(typelibsdir)"
@$(NORMAL_UNINSTALL)
@list='$(typelibs_DATA)'; test -n "$(typelibsdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(typelibsdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(typelibsdir)" && rm -f $$files
+ dir='$(DESTDIR)$(typelibsdir)'; $(am__uninstall_files_from_dir)
install-libgstvideo_@GST_MAJORMINOR@includeHEADERS: $(libgstvideo_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstvideo_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(libgstvideo_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstvideo_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
install-nodist_libgstvideo_@GST_MAJORMINOR@includeHEADERS: $(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libgstvideo_@GST_MAJORMINOR@includedir)" || $(MKDIR_P) "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)"
@$(NORMAL_UNINSTALL)
@list='$(nodist_libgstvideo_@GST_MAJORMINOR@include_HEADERS)'; test -n "$(libgstvideo_@GST_MAJORMINOR@includedir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)" && rm -f $$files
+ dir='$(DESTDIR)$(libgstvideo_@GST_MAJORMINOR@includedir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|| exit 1; \
fi; \
done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
check-am: all-am
check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-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:
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
clean: clean-am
-clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
+clean-am: clean-generic clean-libLTLIBRARIES clean-libtool clean-local \
mostlyclean-am
distclean: distclean-am
.MAKE: all check install install-am install-strip
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool ctags distclean \
- distclean-compile distclean-generic distclean-libtool \
- distclean-tags distdir dvi dvi-am html html-am info info-am \
- install install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-girDATA \
- install-html install-html-am install-info install-info-am \
- install-libLTLIBRARIES \
+ clean-libLTLIBRARIES clean-libtool clean-local ctags dist-hook \
+ distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-girDATA install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
install-libgstvideo_@GST_MAJORMINOR@includeHEADERS install-man \
install-nodist_libgstvideo_@GST_MAJORMINOR@includeHEADERS \
install-pdf install-pdf-am install-ps install-ps-am \
uninstall-typelibsDATA
+orc-update: tmp-orc.c $(ORC_SOURCE).h
+ $(top_srcdir)/common/gst-indent tmp-orc.c
+ cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c
+ cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h
+
+@HAVE_ORCC_TRUE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc
+@HAVE_ORCC_TRUE@ $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc
+
+@HAVE_ORCC_TRUE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc
+@HAVE_ORCC_TRUE@ $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc
+@HAVE_ORCC_FALSE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
+@HAVE_ORCC_FALSE@ $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c
+
+@HAVE_ORCC_FALSE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c
+@HAVE_ORCC_FALSE@ $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h
+
+clean-local: clean-orc
+.PHONY: clean-orc
+clean-orc:
+ rm -f tmp-orc.c $(ORC_SOURCE).h
+
+dist-hook: dist-hook-orc
+.PHONY: dist-hook-orc
+
+# we try and copy updated orc -dist files below, but don't fail if it
+# doesn't work as the srcdir might not be writable
+dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h
+ $(top_srcdir)/common/gst-indent tmp-orc.c
+ rm -f tmp-orc.c~
+ cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \
+ cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true
+ cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \
+ cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true
+ cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
+ cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
+
# these are all the rules generating the relevant files
$(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
$(AM_V_GEN)glib-genmarshal --header --prefix=$(glib_gen_prefix)_marshal $^ > $(glib_gen_basename)-marshal.h.tmp && \
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
$(nodist_libgstvideo_@GST_MAJORMINOR@_la_SOURCES) \
- -:CFLAGS $(DEFS) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstvideo_@GST_MAJORMINOR@_la_CFLAGS) \
-:LDFLAGS $(libgstvideo_@GST_MAJORMINOR@_la_LDFLAGS) \
$(libgstvideo_@GST_MAJORMINOR@_la_LIBADD) \
-ldl \
#include <string.h>
#include "video.h"
+#include "gst/glib-compat-private.h"
+
static gboolean
caps_are_raw (const GstCaps * caps)
{
* @buf: a #GstBuffer
* @to_caps: the #GstCaps to convert to
* @timeout: the maximum amount of time allowed for the processing.
- * @err: pointer to a #GError. Can be %NULL.
+ * @error: pointer to a #GError. Can be %NULL.
*
* Converts a raw video buffer into the specified output caps.
*
*/
GstBuffer *
gst_video_convert_frame (GstBuffer * buf, const GstCaps * to_caps,
- GstClockTime timeout, GError ** err)
+ GstClockTime timeout, GError ** error)
{
GstMessage *msg;
GstBuffer *result = NULL;
- GError *error = NULL;
+ GError *err = NULL;
GstBus *bus;
GstCaps *from_caps, *to_caps_copy = NULL;
GstFlowReturn ret;
}
pipeline =
- build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy,
- &error);
+ build_convert_frame_pipeline (&src, &sink, from_caps, to_caps_copy, &err);
if (!pipeline)
goto no_pipeline;
case GST_MESSAGE_ERROR:{
gchar *dbg = NULL;
- gst_message_parse_error (msg, &error, &dbg);
- if (error) {
- GST_ERROR ("Could not convert video frame: %s", error->message);
- GST_DEBUG ("%s [debug: %s]", error->message, GST_STR_NULL (dbg));
- if (err)
- *err = error;
+ gst_message_parse_error (msg, &err, &dbg);
+ if (err) {
+ GST_ERROR ("Could not convert video frame: %s", err->message);
+ GST_DEBUG ("%s [debug: %s]", err->message, GST_STR_NULL (dbg));
+ if (error)
+ *error = err;
else
- g_error_free (error);
+ g_error_free (err);
}
g_free (dbg);
break;
gst_message_unref (msg);
} else {
GST_ERROR ("Could not convert video frame: timeout during conversion");
- if (err)
- *err = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_FAILED,
+ if (error)
+ *error = g_error_new (GST_CORE_ERROR, GST_CORE_ERROR_FAILED,
"Could not convert video frame: timeout during conversion");
}
{
gst_caps_unref (to_caps_copy);
- if (err)
- *err = error;
+ if (error)
+ *error = err;
else
- g_error_free (error);
+ g_error_free (err);
return NULL;
}
* @to_caps: the #GstCaps to convert to
* @timeout: the maximum amount of time allowed for the processing.
* @callback: %GstVideoConvertFrameCallback that will be called after conversion.
+ * @user_data: extra data that will be passed to the @callback
* @destroy_notify: %GDestroyNotify to be called after @user_data is not needed anymore
*
* Converts a raw video buffer into the specified output caps.
gboolean inited;
};
+/**
+ * GstVideoFilterClass:
+ * @parent_class: the parent class structure
+ *
+ * The video filter class structure.
+ */
struct _GstVideoFilterClass {
GstBaseTransformClass parent_class;
};
#include <gst/base/gstbasesink.h>
G_BEGIN_DECLS
-
+
#define GST_TYPE_VIDEO_SINK (gst_video_sink_get_type())
#define GST_VIDEO_SINK(obj) \
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_SINK, GstVideoSink))
#define GST_VIDEO_SINK_WIDTH(obj) (GST_VIDEO_SINK_CAST (obj)->width)
#define GST_VIDEO_SINK_HEIGHT(obj) (GST_VIDEO_SINK_CAST (obj)->height)
-
+
typedef struct _GstVideoSink GstVideoSink;
typedef struct _GstVideoSinkClass GstVideoSinkClass;
typedef struct _GstVideoRectangle GstVideoRectangle;
/**
* GstVideoSink:
- * @element: the parent object structure (which is GstBaseSink)
* @height: video height (derived class needs to set this)
* @width: video width (derived class needs to set this)
*
*/
struct _GstVideoSink {
GstBaseSink element; /* FIXME 0.11: this should not be called 'element' */
-
+
+ /*< public >*/
gint width, height;
-
+
/*< private >*/
GstVideoSinkPrivate *priv;
/**
* GstVideoSinkClass:
* @parent_class: the parent class structure
- * @show_frame: render a video frame. Maps to #GstBaseSink::render and
- * #GstBaseSink::preroll vfuncs. Rendering during preroll will be
- * suppressed if the 'show-preroll-frame' property is set to #FALSE.
- * Since: 0.10.25
+ * @show_frame: render a video frame. Maps to #GstBaseSinkClass.render() and
+ * #GstBaseSinkClass.preroll() vfuncs. Rendering during preroll will be
+ * suppressed if the #GstVideoSink:show-preroll-frame property is set to
+ * %FALSE. Since: 0.10.25
*
* The video sink class structure. Derived classes should override the
* @show_frame virtual function.
--- /dev/null
+/* Gstreamer video blending utility functions
+ *
+ * Copied/pasted from gst/videoconvert/videoconvert.c
+ * Copyright (C) 2010 David Schleef <ds@schleef.org>
+ * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * Copyright (C) <2011> Intel Corporation
+ * Copyright (C) <2011> Collabora Ltd.
+ * Copyright (C) <2011> Thibault Saunier <thibault.saunier@collabora.com>
+ *
+ * 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 "video-blend.h"
+#include "videoblendorc.h"
+
+#include <string.h>
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT ensure_debug_category()
+
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+ static gsize cat_gonce = 0;
+
+ if (g_once_init_enter (&cat_gonce)) {
+ gsize cat_done;
+
+ cat_done = (gsize) _gst_debug_category_new ("video-blending", 0,
+ "video blending");
+
+ g_once_init_leave (&cat_gonce, cat_done);
+ }
+
+ return (GstDebugCategory *) cat_gonce;
+}
+
+#else
+
+#define ensure_debug_category() /* NOOP */
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+# define ARGB_A 3
+# define ARGB_R 2
+# define ARGB_G 1
+# define ARGB_B 0
+#else
+# define ARGB_A 0
+# define ARGB_R 1
+# define ARGB_G 2
+# define ARGB_B 3
+#endif
+
+/* Copy/pasted from 0.11 video.c */
+static int
+fill_planes (GstBlendVideoFormatInfo * info)
+{
+ gint width, height;
+
+ width = info->width;
+ height = info->height;
+
+ switch (info->fmt) {
+ case GST_VIDEO_FORMAT_YUY2:
+ case GST_VIDEO_FORMAT_YVYU:
+ case GST_VIDEO_FORMAT_UYVY:
+ info->stride[0] = GST_ROUND_UP_4 (width * 2);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_AYUV:
+ case GST_VIDEO_FORMAT_RGBx:
+ case GST_VIDEO_FORMAT_RGBA:
+ case GST_VIDEO_FORMAT_BGRx:
+ case GST_VIDEO_FORMAT_BGRA:
+ case GST_VIDEO_FORMAT_xRGB:
+ case GST_VIDEO_FORMAT_ARGB:
+ case GST_VIDEO_FORMAT_xBGR:
+ case GST_VIDEO_FORMAT_ABGR:
+ case GST_VIDEO_FORMAT_r210:
+ info->stride[0] = width * 4;
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_RGB16:
+ case GST_VIDEO_FORMAT_BGR16:
+ case GST_VIDEO_FORMAT_RGB15:
+ case GST_VIDEO_FORMAT_BGR15:
+ info->stride[0] = GST_ROUND_UP_4 (width * 2);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_RGB:
+ case GST_VIDEO_FORMAT_BGR:
+ case GST_VIDEO_FORMAT_v308:
+ info->stride[0] = GST_ROUND_UP_4 (width * 3);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_v210:
+ info->stride[0] = ((width + 47) / 48) * 128;
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_v216:
+ info->stride[0] = GST_ROUND_UP_8 (width * 4);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_GRAY8:
+ case GST_VIDEO_FORMAT_Y800:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_GRAY16_BE:
+ case GST_VIDEO_FORMAT_GRAY16_LE:
+ case GST_VIDEO_FORMAT_Y16:
+ info->stride[0] = GST_ROUND_UP_4 (width * 2);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_UYVP:
+ info->stride[0] = GST_ROUND_UP_4 ((width * 2 * 5 + 3) / 4);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_RGB8_PALETTED:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_IYU1:
+ info->stride[0] = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) +
+ GST_ROUND_UP_4 (width) / 2);
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_ARGB64:
+ case GST_VIDEO_FORMAT_AYUV64:
+ info->stride[0] = width * 8;
+ info->offset[0] = 0;
+ break;
+ case GST_VIDEO_FORMAT_I420:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
+ info->stride[2] = info->stride[1];
+ info->offset[0] = 0;
+ info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+ info->offset[2] = info->offset[1] +
+ info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
+ break;
+ case GST_VIDEO_FORMAT_YV12: /* same as I420, but plane 1+2 swapped */
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
+ info->stride[2] = info->stride[1];
+ info->offset[0] = 0;
+ info->offset[2] = info->stride[0] * GST_ROUND_UP_2 (height);
+ info->offset[1] = info->offset[2] +
+ info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
+ break;
+ case GST_VIDEO_FORMAT_Y41B:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_16 (width) / 4;
+ info->stride[2] = info->stride[1];
+ info->offset[0] = 0;
+ info->offset[1] = info->stride[0] * height;
+ info->offset[2] = info->offset[1] + info->stride[1] * height;
+ /* simplification of ROUNDUP4(w)*h + 2*((ROUNDUP16(w)/4)*h */
+ break;
+ case GST_VIDEO_FORMAT_Y42B:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_8 (width) / 2;
+ info->stride[2] = info->stride[1];
+ info->offset[0] = 0;
+ info->offset[1] = info->stride[0] * height;
+ info->offset[2] = info->offset[1] + info->stride[1] * height;
+ /* simplification of ROUNDUP4(w)*h + 2*(ROUNDUP8(w)/2)*h */
+ break;
+ case GST_VIDEO_FORMAT_Y444:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = info->stride[0];
+ info->stride[2] = info->stride[0];
+ info->offset[0] = 0;
+ info->offset[1] = info->stride[0] * height;
+ info->offset[2] = info->offset[1] * 2;
+ break;
+ case GST_VIDEO_FORMAT_NV12:
+ case GST_VIDEO_FORMAT_NV21:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = info->stride[0];
+ info->offset[0] = 0;
+ info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+ break;
+ case GST_VIDEO_FORMAT_A420:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2);
+ info->stride[2] = info->stride[1];
+ info->stride[3] = info->stride[0];
+ info->offset[0] = 0;
+ info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+ info->offset[2] = info->offset[1] +
+ info->stride[1] * (GST_ROUND_UP_2 (height) / 2);
+ info->offset[3] = info->offset[2] +
+ info->stride[2] * (GST_ROUND_UP_2 (height) / 2);
+ break;
+ case GST_VIDEO_FORMAT_YUV9:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) / 4);
+ info->stride[2] = info->stride[1];
+ info->offset[0] = 0;
+ info->offset[1] = info->stride[0] * height;
+ info->offset[2] = info->offset[1] +
+ info->stride[1] * (GST_ROUND_UP_4 (height) / 4);
+ break;
+ case GST_VIDEO_FORMAT_YVU9:
+ info->stride[0] = GST_ROUND_UP_4 (width);
+ info->stride[1] = GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) / 4);
+ info->stride[2] = info->stride[1];
+ info->offset[0] = 0;
+ info->offset[2] = info->stride[0] * height;
+ info->offset[1] = info->offset[2] +
+ info->stride[1] * (GST_ROUND_UP_4 (height) / 4);
+ break;
+ case GST_VIDEO_FORMAT_UNKNOWN:
+ GST_ERROR ("invalid format");
+ g_warning ("invalid format");
+ break;
+ }
+ return 0;
+}
+
+typedef struct
+{
+ GstVideoFormat format;
+ void (*getline) (guint8 * dest, const GstBlendVideoFormatInfo * src,
+ guint xoff, int j);
+ void (*putline) (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff,
+ int j);
+ void (*matrix) (guint8 * tmpline, guint width);
+} GetPutLine;
+
+
+#define GET_LINE(info, comp, line) \
+ (info)->pixels + info->offset[(comp)] + ((info)->stride[(comp)] * (line))
+
+/* Line conversion to AYUV */
+
+/* Supports YV12 as well */
+static void
+getline_I420 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_I420 (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (src, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2), src->width);
+}
+
+/* Supports YV12 as well */
+static void
+putline_I420 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_I420 (GET_LINE (dest, 0, j) + xoff,
+ GET_LINE (dest, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (dest, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+ line, srcinfo->width / 2);
+}
+
+static void
+getline_YUY2 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_YUY2 (dest, GET_LINE (src, 0, j) +
+ (GST_ROUND_UP_2 (xoff * 4) / 2), src->width / 2);
+}
+
+static void
+putline_YUY2 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_YUY2 (GET_LINE (dest, 0,
+ j) + (GST_ROUND_UP_2 (xoff * 4) / 2), line, srcinfo->width / 2);
+}
+
+
+static void
+getline_AYUV (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ memcpy (dest, GET_LINE (src, 0, j) + (xoff * 4), (src->width - xoff) * 4);
+}
+
+static void
+putline_AYUV (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ memcpy (GET_LINE (dest, 0, j) + (xoff * 4), line, srcinfo->width * 4);
+}
+
+static void
+getline_UYVY (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_UYVY (dest, GET_LINE (src, 0, j) + xoff * 2, src->width / 2);
+}
+
+static void
+putline_UYVY (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_UYVY (GET_LINE (dest, 0, j) +
+ (GST_ROUND_UP_2 (xoff * 4) / 2), line, srcinfo->width / 2);
+}
+
+static void
+getline_v308 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint8 *srcline = GET_LINE (src, 0, j) + GST_ROUND_UP_2 (xoff * 3);
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = srcline[i * 3 + 0];
+ dest[i * 4 + 2] = srcline[i * 3 + 1];
+ dest[i * 4 + 3] = srcline[i * 3 + 2];
+ }
+}
+
+static void
+putline_v308 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 (xoff * 3);
+
+ for (i = 0; i < srcinfo->width; i++) {
+ destline[i * 3 + 0] = line[i * 4 + 1];
+ destline[i * 3 + 1] = line[i * 4 + 2];
+ destline[i * 3 + 2] = line[i * 4 + 3];
+ }
+}
+
+static void
+getline_v210 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint8 *srcline = GET_LINE (src, 0, j) + GST_ROUND_UP_2 (xoff * 4) / 5;
+
+ for (i = 0; i < src->width; i += 6) {
+ guint32 a0, a1, a2, a3;
+ guint16 y0, y1, y2, y3, y4, y5;
+ guint16 u0, u2, u4;
+ guint16 v0, v2, v4;
+
+ a0 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 0);
+ a1 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 4);
+ a2 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 8);
+ a3 = GST_READ_UINT32_LE (srcline + (i / 6) * 16 + 12);
+
+ u0 = ((a0 >> 0) & 0x3ff) >> 2;
+ y0 = ((a0 >> 10) & 0x3ff) >> 2;
+ v0 = ((a0 >> 20) & 0x3ff) >> 2;
+ y1 = ((a1 >> 0) & 0x3ff) >> 2;
+
+ u2 = ((a1 >> 10) & 0x3ff) >> 2;
+ y2 = ((a1 >> 20) & 0x3ff) >> 2;
+ v2 = ((a2 >> 0) & 0x3ff) >> 2;
+ y3 = ((a2 >> 10) & 0x3ff) >> 2;
+
+ u4 = ((a2 >> 20) & 0x3ff) >> 2;
+ y4 = ((a3 >> 0) & 0x3ff) >> 2;
+ v4 = ((a3 >> 10) & 0x3ff) >> 2;
+ y5 = ((a3 >> 20) & 0x3ff) >> 2;
+
+ dest[4 * (i + 0) + 0] = 0xff;
+ dest[4 * (i + 0) + 1] = y0;
+ dest[4 * (i + 0) + 2] = u0;
+ dest[4 * (i + 0) + 3] = v0;
+
+ dest[4 * (i + 1) + 0] = 0xff;
+ dest[4 * (i + 1) + 1] = y1;
+ dest[4 * (i + 1) + 2] = u0;
+ dest[4 * (i + 1) + 3] = v0;
+
+ dest[4 * (i + 2) + 0] = 0xff;
+ dest[4 * (i + 2) + 1] = y2;
+ dest[4 * (i + 2) + 2] = u2;
+ dest[4 * (i + 2) + 3] = v2;
+
+ dest[4 * (i + 3) + 0] = 0xff;
+ dest[4 * (i + 3) + 1] = y3;
+ dest[4 * (i + 3) + 2] = u2;
+ dest[4 * (i + 3) + 3] = v2;
+
+ dest[4 * (i + 4) + 0] = 0xff;
+ dest[4 * (i + 4) + 1] = y4;
+ dest[4 * (i + 4) + 2] = u4;
+ dest[4 * (i + 4) + 3] = v4;
+
+ dest[4 * (i + 5) + 0] = 0xff;
+ dest[4 * (i + 5) + 1] = y5;
+ dest[4 * (i + 5) + 2] = u4;
+ dest[4 * (i + 5) + 3] = v4;
+
+ }
+
+}
+
+static void
+putline_v210 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 (xoff * 4) / 5;
+
+
+ for (i = 0; i < srcinfo->width + 5; i += 6) {
+ guint32 a0, a1, a2, a3;
+ guint16 y0, y1, y2, y3, y4, y5;
+ guint16 u0, u1, u2;
+ guint16 v0, v1, v2;
+
+ y0 = line[4 * (i + 0) + 1] << 2;
+ y1 = line[4 * (i + 1) + 1] << 2;
+ y2 = line[4 * (i + 2) + 1] << 2;
+ y3 = line[4 * (i + 3) + 1] << 2;
+ y4 = line[4 * (i + 4) + 1] << 2;
+ y5 = line[4 * (i + 5) + 1] << 2;
+
+ u0 = (line[4 * (i + 0) + 2] + line[4 * (i + 1) + 2]) << 1;
+ u1 = (line[4 * (i + 2) + 2] + line[4 * (i + 3) + 2]) << 1;
+ u2 = (line[4 * (i + 4) + 2] + line[4 * (i + 5) + 2]) << 1;
+
+ v0 = (line[4 * (i + 0) + 3] + line[4 * (i + 1) + 3]) << 1;
+ v1 = (line[4 * (i + 2) + 3] + line[4 * (i + 3) + 3]) << 1;
+ v2 = (line[4 * (i + 4) + 3] + line[4 * (i + 5) + 3]) << 1;
+
+ a0 = u0 | (y0 << 10) | (v0 << 20);
+ a1 = y1 | (u1 << 10) | (y2 << 20);
+ a2 = v1 | (y3 << 10) | (u2 << 20);
+ a3 = y4 | (v2 << 10) | (y5 << 20);
+
+ GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 0, a0);
+ GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 4, a1);
+ GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 8, a2);
+ GST_WRITE_UINT32_LE (destline + (i / 6) * 16 + 12, a3);
+ }
+}
+
+static void
+getline_v216 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint8 *srcline = GET_LINE (src, 0, j) + GST_ROUND_UP_2 (xoff + 3);
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = GST_READ_UINT16_LE (srcline + i * 4 + 2) >> 8;
+ dest[i * 4 + 2] = GST_READ_UINT16_LE (srcline + (i >> 1) * 8 + 0) >> 8;
+ dest[i * 4 + 3] = GST_READ_UINT16_LE (srcline + (i >> 1) * 8 + 4) >> 8;
+ }
+}
+
+static void
+putline_v216 (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 (xoff + 3);
+
+ for (i = 0; i < srcinfo->width / 2; i++) {
+ GST_WRITE_UINT16_LE (destline + i * 8 + 0, line[(i * 2 + 0) * 4 + 2] << 8);
+ GST_WRITE_UINT16_LE (destline + i * 8 + 2, line[(i * 2 + 0) * 4 + 1] << 8);
+ GST_WRITE_UINT16_LE (destline + i * 8 + 4, line[(i * 2 + 1) * 4 + 3] << 8);
+ GST_WRITE_UINT16_LE (destline + i * 8 + 8, line[(i * 2 + 0) * 4 + 1] << 8);
+ }
+}
+
+static void
+getline_Y41B (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_YUV9 (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j) + (xoff / 4), GET_LINE (src, 2, j) + (xoff / 4),
+ src->width / 2);
+}
+
+static void
+putline_Y41B (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destlineY = GET_LINE (dest, 0, j) + xoff;
+ guint8 *destlineU = GET_LINE (dest, 1, j) + (xoff / 4);
+ guint8 *destlineV = GET_LINE (dest, 2, j) + (xoff / 4);
+
+ for (i = 0; i < srcinfo->width - 3; i += 4) {
+ destlineY[i] = line[i * 4 + 1];
+ destlineY[i + 1] = line[i * 4 + 5];
+ destlineY[i + 2] = line[i * 4 + 9];
+ destlineY[i + 3] = line[i * 4 + 13];
+
+ destlineU[i >> 2] =
+ (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + line[i * 4 +
+ 14] + 2) >> 2;
+ destlineV[i >> 2] =
+ (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + line[i * 4 +
+ 15] + 2) >> 2;
+ }
+
+ if (i == srcinfo->width - 3) {
+ destlineY[i] = line[i * 4 + 1];
+ destlineY[i + 1] = line[i * 4 + 5];
+ destlineY[i + 2] = line[i * 4 + 9];
+
+ destlineU[i >> 2] =
+ (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + 1) / 3;
+ destlineV[i >> 2] =
+ (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + 1) / 3;
+ } else if (i == srcinfo->width - 2) {
+ destlineY[i] = line[i * 4 + 1];
+ destlineY[i + 1] = line[i * 4 + 5];
+
+ destlineU[i >> 2] = (line[i * 4 + 2] + line[i * 4 + 6] + 1) >> 1;
+ destlineV[i >> 2] = (line[i * 4 + 3] + line[i * 4 + 7] + 1) >> 1;
+ } else if (i == srcinfo->width - 1) {
+ destlineY[i + 1] = line[i * 4 + 5];
+
+ destlineU[i >> 2] = line[i * 4 + 2];
+ destlineV[i >> 2] = line[i * 4 + 3];
+ }
+}
+
+static void
+getline_Y42B (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_Y42B (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (src, 2, j) + GST_ROUND_UP_2 (xoff / 2), src->width / 2);
+}
+
+static void
+putline_Y42B (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_Y42B (GET_LINE (dest, 0, j) + xoff,
+ GET_LINE (dest, 1, j) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (dest, 2, j) + GST_ROUND_UP_2 (xoff / 2), line,
+ srcinfo->width / 2);
+}
+
+static void
+getline_Y444 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_Y444 (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j) + xoff, GET_LINE (src, 2, j) + xoff, src->width);
+}
+
+static void
+putline_Y444 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_Y444 (GET_LINE (dest, 0, j) + xoff,
+ GET_LINE (dest, 1, j) + xoff,
+ GET_LINE (dest, 2, j) + xoff, line, srcinfo->width);
+}
+
+static void
+getline_Y800 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_Y800 (dest, GET_LINE (src, 0, j) + xoff, src->width);
+}
+
+static void
+putline_Y800 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_Y800 (GET_LINE (dest, 0, j) + xoff, line, srcinfo->width);
+}
+
+static void
+getline_Y16 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_Y16 (dest, GET_LINE (src, 0, j) + xoff * 2, src->width);
+}
+
+static void
+putline_Y16 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_Y16 (GET_LINE (dest, 0, j) + xoff * 2, line, srcinfo->width);
+}
+
+static void
+getline_NV12 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_NV12 (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j >> 1) + xoff, src->width / 2);
+}
+
+static void
+putline_NV12 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_NV12 (GET_LINE (dest, 0, j) + xoff,
+ GET_LINE (dest, 1, j >> 1) + xoff, line, srcinfo->width / 2);
+}
+
+static void
+getline_NV21 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_NV21 (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j >> 1) + xoff, src->width / 2);
+}
+
+static void
+putline_NV21 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_NV21 (GET_LINE (dest, 0, j) + xoff,
+ GET_LINE (dest, 1, j >> 1) + xoff, line, srcinfo->width / 2);
+}
+
+static void
+getline_UYVP (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint8 *srcline = GET_LINE (src, 0, j)
+ + xoff * 3;
+
+ for (i = 0; i < src->width; i += 2) {
+ guint16 y0, y1;
+ guint16 u0;
+ guint16 v0;
+
+ u0 = (srcline[(i / 2) * 5 + 0] << 2) | (srcline[(i / 2) * 5 + 1] >> 6);
+
+ y0 = ((srcline[(i / 2) * 5 + 1] & 0x3f) << 4) |
+ (srcline[(i / 2) * 5 + 2] >> 4);
+
+ v0 = ((srcline[(i / 2) * 5 + 2] & 0x0f) << 6) |
+ (srcline[(i / 2) * 5 + 3] >> 2);
+
+ y1 = ((srcline[(i / 2) * 5 + 3] & 0x03) << 8) | srcline[(i / 2) * 5 + 4];
+
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = y0 >> 2;
+ dest[i * 4 + 2] = u0 >> 2;
+ dest[i * 4 + 3] = v0 >> 2;
+ dest[i * 4 + 4] = 0xff;
+ dest[i * 4 + 5] = y1 >> 2;
+ dest[i * 4 + 6] = u0 >> 2;
+ dest[i * 4 + 7] = v0 >> 2;
+ }
+}
+
+static void
+putline_UYVP (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destline = GET_LINE (dest, 0, j) + xoff * 3;
+
+ for (i = 0; i < srcinfo->width; i += 2) {
+ guint16 y0, y1;
+ guint16 u0;
+ guint16 v0;
+
+ y0 = line[4 * (i + 0) + 1];
+ y1 = line[4 * (i + 1) + 1];
+ u0 = (line[4 * (i + 0) + 2] + line[4 * (i + 1) + 2] + 1) >> 1;
+ v0 = (line[4 * (i + 0) + 3] + line[4 * (i + 1) + 3] + 1) >> 1;
+
+ destline[(i / 2) * 5 + 0] = u0;
+ destline[(i / 2) * 5 + 1] = y0 >> 2;
+ destline[(i / 2) * 5 + 2] = (y0 << 6) | (v0 >> 4);
+ destline[(i / 2) * 5 + 3] = (v0 << 4) | (y1 >> 2);
+ destline[(i / 2) * 5 + 4] = (y1 << 2);
+ }
+}
+
+static void
+getline_A420 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_A420 (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (src, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (src, 3, j) + GST_ROUND_UP_2 (xoff / 2), src->width);
+}
+
+static void
+putline_A420 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_A420 (GET_LINE (dest, 0, j) + xoff,
+ GET_LINE (dest, 1, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (dest, 2, j >> 1) + GST_ROUND_UP_2 (xoff / 2),
+ GET_LINE (dest, 3, j) + GST_ROUND_UP_2 (xoff / 2), line,
+ srcinfo->width / 2);
+}
+
+static void
+getline_YUV9 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_YUV9 (dest,
+ GET_LINE (src, 0, j) + xoff,
+ GET_LINE (src, 1, j >> 2) + GST_ROUND_UP_4 (xoff / 4),
+ GET_LINE (src, 2, j >> 2) + GST_ROUND_UP_4 (xoff / 4), src->width / 2);
+}
+
+static void
+putline_YUV9 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destY = GET_LINE (dest, 0, j) + xoff;
+ guint8 *destU = GET_LINE (dest, 1, j >> 2) + GST_ROUND_UP_4 (xoff / 4);
+ guint8 *destV = GET_LINE (dest, 2, j >> 2) + GST_ROUND_UP_4 (xoff / 4);
+ guint width = srcinfo->width;
+
+ for (i = 0; i < width - 3; i += 4) {
+ destY[i] = line[i * 4 + 1];
+ destY[i + 1] = line[i * 4 + 5];
+ destY[i + 2] = line[i * 4 + 9];
+ destY[i + 3] = line[i * 4 + 13];
+ if (j % 4 == 0) {
+ destU[i >> 2] =
+ (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + line[i * 4 +
+ 14]) >> 2;
+ destV[i >> 2] =
+ (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + line[i * 4 +
+ 15]) >> 2;
+ }
+ }
+
+ if (i == width - 3) {
+ destY[i] = line[i * 4 + 1];
+ destY[i + 1] = line[i * 4 + 5];
+ destY[i + 2] = line[i * 4 + 9];
+ if (j % 4 == 0) {
+ destU[i >> 2] =
+ (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10]) / 3;
+ destV[i >> 2] =
+ (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11]) / 3;
+ }
+ } else if (i == width - 2) {
+ destY[i] = line[i * 4 + 1];
+ destY[i + 1] = line[i * 4 + 5];
+ if (j % 4 == 0) {
+ destU[i >> 2] = (line[i * 4 + 2] + line[i * 4 + 6]) >> 1;
+ destV[i >> 2] = (line[i * 4 + 3] + line[i * 4 + 7]) >> 1;
+ }
+ } else if (i == width - 1) {
+ destY[i] = line[i * 4 + 1];
+ destU[i >> 2] = line[i * 4 + 2];
+ destV[i >> 2] = line[i * 4 + 3];
+ }
+}
+
+static void
+getline_IYU1 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint8 *srcline =
+ GET_LINE (src, 0, j) + GST_ROUND_UP_2 ((xoff * 3) / 2);
+ guint width = src->width;
+
+ for (i = 0; i < width - 3; i += 4) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 4] = 0xff;
+ dest[i * 4 + 8] = 0xff;
+ dest[i * 4 + 12] = 0xff;
+ dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+ dest[i * 4 + 5] = srcline[(i >> 2) * 6 + 2];
+ dest[i * 4 + 9] = srcline[(i >> 2) * 6 + 4];
+ dest[i * 4 + 13] = srcline[(i >> 2) * 6 + 5];
+ dest[i * 4 + 2] = dest[i * 4 + 6] = dest[i * 4 + 10] = dest[i * 4 + 14] =
+ srcline[(i >> 2) * 6 + 0];
+ dest[i * 4 + 3] = dest[i * 4 + 7] = dest[i * 4 + 11] = dest[i * 4 + 15] =
+ srcline[(i >> 2) * 6 + 3];
+ }
+
+ if (i == width - 3) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 4] = 0xff;
+ dest[i * 4 + 8] = 0xff;
+ dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+ dest[i * 4 + 5] = srcline[(i >> 2) * 6 + 2];
+ dest[i * 4 + 9] = srcline[(i >> 2) * 6 + 4];
+ dest[i * 4 + 2] = dest[i * 4 + 6] = dest[i * 4 + 10] =
+ srcline[(i >> 2) * 6 + 0];
+ dest[i * 4 + 3] = dest[i * 4 + 7] = dest[i * 4 + 11] =
+ srcline[(i >> 2) * 6 + 3];
+ } else if (i == width - 2) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 4] = 0xff;
+ dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+ dest[i * 4 + 5] = srcline[(i >> 2) * 6 + 2];
+ dest[i * 4 + 2] = dest[i * 4 + 6] = srcline[(i >> 2) * 6 + 0];
+ dest[i * 4 + 3] = dest[i * 4 + 7] = srcline[(i >> 2) * 6 + 3];
+ } else if (i == width - 1) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = srcline[(i >> 2) * 6 + 1];
+ dest[i * 4 + 2] = srcline[(i >> 2) * 6 + 0];
+ dest[i * 4 + 3] = srcline[(i >> 2) * 6 + 3];
+ }
+}
+
+static void
+putline_IYU1 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destline = GET_LINE (dest, 0, j) + GST_ROUND_UP_2 ((xoff * 3) / 2);
+ guint width = srcinfo->width;
+
+ for (i = 0; i < width - 3; i += 4) {
+ destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+ destline[(i >> 2) * 6 + 2] = line[i * 4 + 5];
+ destline[(i >> 2) * 6 + 4] = line[i * 4 + 9];
+ destline[(i >> 2) * 6 + 5] = line[i * 4 + 13];
+ destline[(i >> 2) * 6 + 0] =
+ (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10] + line[i * 4 +
+ 14]) >> 2;
+ destline[(i >> 2) * 6 + 3] =
+ (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11] + line[i * 4 +
+ 15]) >> 2;
+ }
+
+ if (i == width - 3) {
+ destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+ destline[(i >> 2) * 6 + 2] = line[i * 4 + 5];
+ destline[(i >> 2) * 6 + 4] = line[i * 4 + 9];
+ destline[(i >> 2) * 6 + 0] =
+ (line[i * 4 + 2] + line[i * 4 + 6] + line[i * 4 + 10]) / 3;
+ destline[(i >> 2) * 6 + 3] =
+ (line[i * 4 + 3] + line[i * 4 + 7] + line[i * 4 + 11]) / 3;
+ } else if (i == width - 2) {
+ destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+ destline[(i >> 2) * 6 + 2] = line[i * 4 + 5];
+ destline[(i >> 2) * 6 + 0] = (line[i * 4 + 2] + line[i * 4 + 6]) >> 1;
+ destline[(i >> 2) * 6 + 3] = (line[i * 4 + 3] + line[i * 4 + 7]) >> 1;
+ } else if (i == width - 1) {
+ destline[(i >> 2) * 6 + 1] = line[i * 4 + 1];
+ destline[(i >> 2) * 6 + 0] = line[i * 4 + 2];
+ destline[(i >> 2) * 6 + 3] = line[i * 4 + 3];
+ }
+}
+
+
+/* Line conversion to ARGB */
+static void
+getline_RGB (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint8 *srcline = GET_LINE (src, 0, j) + xoff * 3;
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = srcline[i * 3 + 0];
+ dest[i * 4 + 2] = srcline[i * 3 + 1];
+ dest[i * 4 + 3] = srcline[i * 3 + 2];
+ }
+}
+
+static void
+putline_RGB (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destline = GET_LINE (dest, 0, j) + xoff * 3;
+
+ for (i = 0; i < srcinfo->width; i++) {
+ destline[i * 3 + 0] = line[i * 4 + 1];
+ destline[i * 3 + 1] = line[i * 4 + 2];
+ destline[i * 3 + 2] = line[i * 4 + 3];
+ }
+}
+
+static void
+getline_BGR (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint8 *srcline = GET_LINE (src, 0, j) + xoff * 3;
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = srcline[i * 3 + 2];
+ dest[i * 4 + 2] = srcline[i * 3 + 1];
+ dest[i * 4 + 3] = srcline[i * 3 + 0];
+ }
+}
+
+static void
+putline_BGR (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint8 *destline = GET_LINE (dest, 0, j) + xoff * 3;
+
+ for (i = 0; i < srcinfo->width; i++) {
+ destline[i * 3 + 0] = line[i * 4 + 3];
+ destline[i * 3 + 1] = line[i * 4 + 2];
+ destline[i * 3 + 2] = line[i * 4 + 1];
+ }
+}
+
+static void
+getline_RGBA (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_RGBA (dest, GET_LINE (src, 0, j) + (4 * xoff), src->width);
+}
+
+static void
+putline_RGBA (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_RGBA (GET_LINE (dest, 0, j) + (4 * xoff),
+ line, srcinfo->width);
+}
+
+static void
+getline_ARGB (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+
+ memcpy (dest, GET_LINE (src, 0, j), (src->width - xoff) * 4);
+}
+
+static void
+putline_ARGB (GstBlendVideoFormatInfo * dest, GstBlendVideoFormatInfo * srcinfo,
+ const guint8 * line, guint xoff, int j)
+{
+ memcpy (GET_LINE (dest, 0, j) + (xoff * 4), line, srcinfo->width * 4);
+}
+
+static void
+getline_RGB16 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+ + (xoff * 3);
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = ((srcline[i] >> 11) & 0x1f) << 3;
+ dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x3f) << 2;
+ dest[i * 4 + 3] = ((srcline[i]) & 0x1f) << 3;
+ }
+}
+
+static void
+putline_RGB16 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+ for (i = 0; i < srcinfo->width; i++) {
+ destline[i] = ((line[i * 4 + 1] >> 3) << 11) | ((line[i * 4 +
+ 2] >> 2) << 5) | (line[i * 4 + 3] >> 3);
+ }
+}
+
+static void
+getline_RGB15 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+ + (xoff * 3);
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 1] = ((srcline[i] >> 10) & 0x1f) << 3;
+ dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x1f) << 3;
+ dest[i * 4 + 3] = ((srcline[i]) & 0x1f) << 3;
+ }
+}
+
+static void
+putline_RGB15 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+ for (i = 0; i < srcinfo->width; i++) {
+ destline[i] = ((line[i * 4 + 1] >> 3) << 10) | ((line[i * 4 +
+ 2] >> 3) << 5) | (line[i * 4 + 3] >> 3);
+ }
+}
+
+static void
+getline_BGR15 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+ + (xoff * 3);
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 3] = ((srcline[i] >> 10) & 0x1f) << 3;
+ dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x1f) << 3;
+ dest[i * 4 + 1] = ((srcline[i]) & 0x1f) << 3;
+ }
+}
+
+static void
+putline_BGR15 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+ for (i = 0; i < srcinfo->width; i++) {
+ destline[i] = ((line[i * 4 + 3] >> 3) << 10) | ((line[i * 4 +
+ 2] >> 3) << 5) | (line[i * 4 + 1] >> 3);
+ }
+}
+
+static void
+getline_BGR16 (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ int i;
+ const guint16 *srcline = (const guint16 *) GET_LINE (src, 0, j)
+ + (xoff * 3);
+
+ for (i = 0; i < src->width; i++) {
+ dest[i * 4 + 0] = 0xff;
+ dest[i * 4 + 3] = ((srcline[i] >> 11) & 0x1f) << 3;
+ dest[i * 4 + 2] = ((srcline[i] >> 5) & 0x3f) << 2;
+ dest[i * 4 + 1] = ((srcline[i]) & 0x1f) << 3;
+ }
+}
+
+static void
+putline_BGR16 (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ int i;
+ guint16 *destline = (guint16 *) GET_LINE (dest, 0, j) + (xoff * 3);
+
+ for (i = 0; i < srcinfo->width; i++) {
+ destline[i] = ((line[i * 4 + 3] >> 3) << 11) | ((line[i * 4 +
+ 2] >> 2) << 5) | (line[i * 4 + 1] >> 3);
+ }
+}
+
+static void
+getline_BGRA (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_BGRA (dest, GET_LINE (src, 0, j) + xoff * 4, src->width);
+}
+
+static void
+putline_BGRA (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_BGRA (GET_LINE (dest, 0, j) + xoff * 4, line, srcinfo->width);
+}
+
+static void
+getline_ABGR (guint8 * dest, const GstBlendVideoFormatInfo * src, guint xoff,
+ int j)
+{
+ cogorc_getline_ABGR (dest, GET_LINE (src, 0, j) + (xoff * 4), src->width);
+}
+
+static void
+putline_ABGR (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * srcinfo, const guint8 * line, guint xoff, int j)
+{
+ cogorc_putline_ABGR (GET_LINE (dest, 0, j) + (xoff * 4),
+ line, srcinfo->width);
+}
+
+static const GetPutLine lines[] = {
+ /* YUV lines conversion */
+ {GST_VIDEO_FORMAT_I420, getline_I420, putline_I420},
+ {GST_VIDEO_FORMAT_YV12, getline_I420, putline_I420},
+ {GST_VIDEO_FORMAT_AYUV, getline_AYUV, putline_AYUV},
+ {GST_VIDEO_FORMAT_YUY2, getline_YUY2, putline_YUY2},
+ {GST_VIDEO_FORMAT_UYVY, getline_UYVY, putline_UYVY},
+ {GST_VIDEO_FORMAT_v308, getline_v308, putline_v308},
+ {GST_VIDEO_FORMAT_v210, getline_v210, putline_v210},
+ {GST_VIDEO_FORMAT_v216, getline_v216, putline_v216},
+ {GST_VIDEO_FORMAT_Y41B, getline_Y41B, putline_Y41B},
+ {GST_VIDEO_FORMAT_Y42B, getline_Y42B, putline_Y42B},
+ {GST_VIDEO_FORMAT_Y444, getline_Y444, putline_Y444},
+ {GST_VIDEO_FORMAT_Y800, getline_Y800, putline_Y800},
+ {GST_VIDEO_FORMAT_Y16, getline_Y16, putline_Y16},
+ {GST_VIDEO_FORMAT_NV12, getline_NV12, putline_NV12},
+ {GST_VIDEO_FORMAT_NV21, getline_NV21, putline_NV21},
+ {GST_VIDEO_FORMAT_UYVP, getline_UYVP, putline_UYVP},
+ {GST_VIDEO_FORMAT_A420, getline_A420, putline_A420},
+ {GST_VIDEO_FORMAT_YUV9, getline_YUV9, putline_YUV9},
+ {GST_VIDEO_FORMAT_IYU1, getline_IYU1, putline_IYU1},
+
+ /* ARGB lines conversion */
+ {GST_VIDEO_FORMAT_RGB, getline_RGB, putline_RGB},
+ {GST_VIDEO_FORMAT_BGR, getline_BGR, putline_BGR},
+ {GST_VIDEO_FORMAT_RGBx, getline_RGBA, putline_RGBA},
+ {GST_VIDEO_FORMAT_RGBA, getline_RGBA, putline_RGBA},
+ {GST_VIDEO_FORMAT_ARGB, getline_ARGB, putline_ARGB},
+ {GST_VIDEO_FORMAT_RGB16, getline_RGB16, putline_RGB16},
+ {GST_VIDEO_FORMAT_BGR16, getline_BGR16, putline_BGR16},
+ {GST_VIDEO_FORMAT_BGR15, getline_BGR15, putline_BGR15},
+ {GST_VIDEO_FORMAT_RGB15, getline_RGB15, putline_RGB15},
+ {GST_VIDEO_FORMAT_BGRA, getline_BGRA, putline_BGRA},
+ {GST_VIDEO_FORMAT_ABGR, getline_ABGR, putline_ABGR},
+ {GST_VIDEO_FORMAT_BGRx, getline_BGRA, putline_BGRA}
+};
+
+static void
+matrix_identity (guint8 * tmpline, guint width)
+{
+}
+
+static void
+matrix_rgb_to_yuv (guint8 * tmpline, guint width)
+{
+ int i;
+ int r, g, b;
+ int y, u, v;
+
+ for (i = 0; i < width; i++) {
+ r = tmpline[i * 4 + 1];
+ g = tmpline[i * 4 + 2];
+ b = tmpline[i * 4 + 3];
+
+ y = (47 * r + 157 * g + 16 * b + 4096) >> 8;
+ u = (-26 * r - 87 * g + 112 * b + 32768) >> 8;
+ v = (112 * r - 102 * g - 10 * b + 32768) >> 8;
+
+ tmpline[i * 4 + 1] = CLAMP (y, 0, 255);
+ tmpline[i * 4 + 2] = CLAMP (u, 0, 255);
+ tmpline[i * 4 + 3] = CLAMP (v, 0, 255);
+ }
+}
+
+static void
+matrix_yuv_to_rgb (guint8 * tmpline, guint width)
+{
+ int i;
+ int r, g, b;
+ int y, u, v;
+
+ for (i = 0; i < width; i++) {
+ y = tmpline[i * 4 + 1];
+ u = tmpline[i * 4 + 2];
+ v = tmpline[i * 4 + 3];
+
+ r = (298 * y + 459 * v - 63514) >> 8;
+ g = (298 * y - 55 * u - 136 * v + 19681) >> 8;
+ b = (298 * y + 541 * u - 73988) >> 8;
+
+ tmpline[i * 4 + 1] = CLAMP (r, 0, 255);
+ tmpline[i * 4 + 2] = CLAMP (g, 0, 255);
+ tmpline[i * 4 + 3] = CLAMP (b, 0, 255);
+ }
+}
+
+static gboolean
+lookup_getput (GetPutLine * getput, GstVideoFormat fmt)
+{
+ int i;
+
+ getput->getline = NULL;
+ getput->putline = NULL;
+ getput->matrix = matrix_identity;
+
+ for (i = 0; i < sizeof (lines) / sizeof (lines[0]); i++) {
+ if (lines[i].format == fmt) {
+ getput->getline = lines[i].getline;
+ getput->putline = lines[i].putline;
+
+ return TRUE;
+ }
+ }
+ GST_WARNING ("Conversion from %i not supported", fmt);
+
+ return FALSE;
+}
+
+#define BLEND(ret, alpha, v0, v1) \
+{ \
+ ret = (v0 * alpha + v1 * (255 - alpha)) / 255; \
+}
+
+void
+video_blend_scale_linear_RGBA (GstBlendVideoFormatInfo * src,
+ gint dest_height, gint dest_width)
+{
+ int acc;
+ int y_increment;
+ int x_increment;
+ int y1;
+ int i;
+ int j;
+ int x;
+ int dest_size;
+ guint dest_stride = dest_width * 4;
+ guint src_stride = src->width * 4;
+
+ guint8 *tmpbuf = g_malloc (dest_width * 8 * 4);
+ guint8 *dest_pixels =
+ g_malloc (gst_video_format_get_size (src->fmt, dest_height,
+ dest_width));
+
+ if (dest_height == 1)
+ y_increment = 0;
+ else
+ y_increment = ((src->height - 1) << 16) / (dest_height - 1) - 1;
+
+ if (dest_width == 1)
+ x_increment = 0;
+ else
+ x_increment = ((src->width - 1) << 16) / (dest_width - 1) - 1;
+
+ dest_size = dest_width * 4;
+
+#define LINE(x) ((tmpbuf) + (dest_size)*((x)&1))
+
+ acc = 0;
+ orc_resample_bilinear_u32 (LINE (0), src->pixels, 0, x_increment, dest_width);
+ y1 = 0;
+ for (i = 0; i < dest_height; i++) {
+ j = acc >> 16;
+ x = acc & 0xffff;
+
+ if (x == 0) {
+ memcpy (dest_pixels + i * dest_stride, LINE (j), dest_size);
+ } else {
+ if (j > y1) {
+ orc_resample_bilinear_u32 (LINE (j),
+ src->pixels + j * src_stride, 0, x_increment, dest_width);
+ y1++;
+ }
+ if (j >= y1) {
+ orc_resample_bilinear_u32 (LINE (j + 1),
+ src->pixels + (j + 1) * src_stride, 0, x_increment, dest_width);
+ y1++;
+ }
+ orc_merge_linear_u8 (dest_pixels + i * dest_stride,
+ LINE (j), LINE (j + 1), (x >> 8), dest_width * 4);
+ }
+
+ acc += y_increment;
+ }
+
+ /* Update src, our reference to the old src->pixels is lost */
+ video_blend_format_info_init (src, dest_pixels, dest_height, dest_width,
+ src->fmt);
+
+ g_free (tmpbuf);
+}
+
+/* video_blend:
+ * @dest: The #GstBlendVideoFormatInfo where to blend @src in
+ * @src: the #GstBlendVideoFormatInfo that we want to blend into
+ * @dest
+ * @x: The x offset in pixel where the @src image should be blended
+ * @y: the y offset in pixel where the @src image should be blended
+ *
+ * Lets you blend the @src image into the @dest image
+ */
+gboolean
+video_blend (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * src, guint x, guint y)
+{
+ guint i, j;
+ guint8 alpha;
+ GetPutLine getputdest, getputsrc;
+
+ gint src_stride = src->width * 4;
+ guint8 *tmpdestline = g_malloc (sizeof (guint8) * (dest->width + 8) * 4);
+ guint8 *tmpsrcline = g_malloc (sizeof (guint8) * (dest->width + 8) * 4);
+
+ ensure_debug_category ();
+
+
+ if (!lookup_getput (&getputdest, dest->fmt))
+ goto failed;
+
+ if (!lookup_getput (&getputsrc, src->fmt))
+ goto failed;
+
+ if (gst_video_format_is_rgb (src->fmt) != gst_video_format_is_rgb (dest->fmt))
+ getputsrc.matrix = gst_video_format_is_rgb (src->fmt) ?
+ matrix_rgb_to_yuv : matrix_yuv_to_rgb;
+
+ /* adjust src pointers for negative sizes */
+ if (x < 0) {
+ src += -x * 4;
+ src->width -= -x;
+ x = 0;
+ }
+
+ if (y < 0) {
+ src += -y * src_stride;
+ src->height -= -y;
+ y = 0;
+ }
+
+ /* adjust width/height if the src is bigger than dest */
+ if (x + src->width > dest->width)
+ src->width = dest->width - x;
+
+ if (y + src->height > dest->height)
+ src->height = dest->height - y;
+
+ /* Mainloop doing the needed conversions, and blending */
+ for (i = y; i < y + src->height; i++) {
+
+ getputdest.getline (tmpdestline, dest, x, i);
+ getputsrc.getline (tmpsrcline, src, 0, (i - y));
+
+ getputsrc.matrix (tmpsrcline, src->width);
+
+ /* Here dest and src are both either in AYUV or ARGB
+ * TODO: Make the orc version working properly*/
+ for (j = 0; j < src->width * 4; j += 4) {
+ alpha = tmpsrcline[j];
+
+ BLEND (tmpdestline[j + 1], alpha, tmpsrcline[j + 1], tmpdestline[j + 1]);
+ BLEND (tmpdestline[j + 2], alpha, tmpsrcline[j + 2], tmpdestline[j + 2]);
+ BLEND (tmpdestline[j + 3], alpha, tmpsrcline[j + 3], tmpdestline[j + 3]);
+ }
+
+ /* FIXME
+ * #if G_BYTE_ORDER == LITTLE_ENDIAN
+ * orc_blend_little (tmpdestline, tmpsrcline, dest->width);
+ * #else
+ * orc_blend_big (tmpdestline, tmpsrcline, src->width);
+ * #endif
+ */
+
+ getputdest.putline (dest, src, tmpdestline, x, i);
+
+ }
+
+ g_free (tmpdestline);
+ g_free (tmpsrcline);
+
+ return TRUE;
+
+failed:
+ GST_WARNING ("Could not do the blending");
+ g_free (tmpdestline);
+ g_free (tmpsrcline);
+
+ return FALSE;
+}
+
+/* video_blend_format_info_init:
+ * @info: The #GstBlendVideoFormatInfo to initialize
+ * @pixels: The pixels data in @fmt format
+ * @height: The height of the image
+ * @width: the width of the image
+ * @fmt: The #GstVideoFormat of the image
+ *
+ * Initializes a GstBlendVideoFormatInfo.
+ * This function can be called on already initialized instances.
+ */
+void
+video_blend_format_info_init (GstBlendVideoFormatInfo * info,
+ guint8 * pixels, guint height, guint width, GstVideoFormat fmt)
+{
+ guint nb_component = gst_video_format_has_alpha (fmt) ? 4 : 3;
+
+ ensure_debug_category ();
+
+ GST_DEBUG
+ ("Initializing video bleding info, height %i, width %i, fmt %i nb_component %i",
+ height, width, fmt, nb_component);
+
+ info->width = width;
+ info->height = height;
+ info->pixels = pixels;
+ info->fmt = fmt;
+ info->size = gst_video_format_get_size (fmt, height, width);
+
+ fill_planes (info);
+}
--- /dev/null
+/* Gstreamer video blending utility functions
+ *
+ * Copyright (C) <2011> Intel Corporation
+ * Copyright (C) <2011> Collabora Ltd.
+ * Copyright (C) <2011> Thibault Saunier <thibault.saunier@collabora.com>
+ *
+ * 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_VIDEO_BLEND__
+#define __GST_VIDEO_BLEND__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+#define MAX_VIDEO_PLANES 4
+
+typedef struct _GstBlendVideoFormatInfo GstBlendVideoFormatInfo;
+
+/* GstBlendVideoFormatInfo:
+ * @fmt: The #GstVideoFormat describing the video format
+ * @width: The width of the video
+ * @height: The height of the video
+ * @pixels: The buffer containing the pixels of the video
+ * @size: The size in byte of @pixels
+ * @offset: The offsets of the different component of the video
+ * @stride: The stride of the different component of the video
+ *
+ * Information describing image properties containing necessary
+ * fields to do video blending.
+ */
+struct _GstBlendVideoFormatInfo
+{
+ GstVideoFormat fmt;
+
+ gint width;
+ gint height;
+
+ guint8 * pixels;
+ gsize size;
+
+ /* YUV components: Y=0, U=1, V=2, A=3
+ * RGB components: R=0, G=1, B=2, A=3 */
+ gint offset[MAX_VIDEO_PLANES];
+ gint stride[MAX_VIDEO_PLANES];
+};
+
+void video_blend_format_info_init (GstBlendVideoFormatInfo * info,
+ guint8 *pixels, guint height,
+ guint width, GstVideoFormat fmt);
+
+void video_blend_scale_linear_RGBA (GstBlendVideoFormatInfo * src,
+ gint dest_height, gint dest_width);
+
+gboolean video_blend (GstBlendVideoFormatInfo * dest,
+ GstBlendVideoFormatInfo * src,
+ guint x, guint y);
+
+#endif
--- /dev/null
+/* GStreamer Video Overlay Composition
+ * Copyright (C) 2011 Intel Corporation
+ * Copyright (C) 2011 Collabora Ltd.
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * 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:gstvideooverlaycomposition
+ * @short_description: Video Buffer Overlay Compositions (Subtitles, Logos)
+ *
+ * <refsect2>
+ * <para>
+ * Functions to create and handle overlay compositions on video buffers.
+ * </para>
+ * <para>
+ * An overlay composition describes one or more overlay rectangles to be
+ * blended on top of a video buffer.
+ * </para>
+ * <para>
+ * This API serves two main purposes:
+ * <itemizedlist>
+ * <listitem>
+ * it can be used to attach overlay information (subtitles or logos)
+ * to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
+ * blending of the overlay can then be done by e.g. the video sink that
+ * processes these non-raw buffers.
+ * </listitem>
+ * <listitem>
+ * it can also be used to blend overlay rectangles on top of raw video
+ * buffers, thus consolidating blending functionality for raw video in
+ * one place.
+ * </listitem>
+ * Together, this allows existing overlay elements to easily handle raw
+ * and non-raw video as input in without major changes (once the overlays
+ * have been put into a #GstOverlayComposition object anyway) - for raw
+ * video the overlay can just use the blending function to blend the data
+ * on top of the video, and for surface buffers it can just attach them to
+ * the buffer and let the sink render the overlays.
+ * </itemizedlist>
+ * </para>
+ * </refsect2>
+ *
+ * Since: 0.10.36
+ */
+
+/* TODO:
+ * - provide accessors for seq_num and other fields (as needed)
+ * - allow overlay to set/get original pango markup string on/from rectangle
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "video-overlay-composition.h"
+#include "video-blend.h"
+
+struct _GstVideoOverlayComposition
+{
+ GstMiniObject parent;
+
+ guint num_rectangles;
+ GstVideoOverlayRectangle **rectangles;
+
+ /* lowest rectangle sequence number still used by the upstream
+ * overlay element. This way a renderer maintaining some kind of
+ * rectangles <-> surface cache can know when to free cached
+ * surfaces/rectangles. */
+ guint min_seq_num_used;
+
+ /* sequence number for the composition (same series as rectangles) */
+ guint seq_num;
+};
+
+struct _GstVideoOverlayCompositionClass
+{
+ GstMiniObjectClass parent_class;
+};
+
+struct _GstVideoOverlayRectangle
+{
+ GstMiniObject parent;
+
+ /* Position on video frame and dimension of output rectangle in
+ * output frame terms (already adjusted for the PAR of the output
+ * frame). x/y can be negative (overlay will be clipped then) */
+ gint x, y;
+ guint render_width, render_height;
+
+ /* Dimensions of overlay pixels */
+ guint width, height, stride;
+
+ /* The format of the data in pixels */
+ GstVideoFormat format;
+
+ /* Refcounted blob of memory, no caps or timestamps */
+ GstBuffer *pixels;
+
+ /* FIXME: how to express source like text or pango markup?
+ * (just add source type enum + source buffer with data)
+ *
+ * FOR 0.10: always send pixel blobs, but attach source data in
+ * addition (reason: if downstream changes, we can't renegotiate
+ * that properly, if we just do a query of supported formats from
+ * the start). Sink will just ignore pixels and use pango markup
+ * from source data if it supports that.
+ *
+ * FOR 0.11: overlay should query formats (pango markup, pixels)
+ * supported by downstream and then only send that. We can
+ * renegotiate via the reconfigure event.
+ */
+
+ /* sequence number: useful for backends/renderers/sinks that want
+ * to maintain a cache of rectangles <-> surfaces. The value of
+ * the min_seq_num_used in the composition tells the renderer which
+ * rectangles have expired. */
+ guint seq_num;
+
+ /* FIXME: we may also need a (private) way to cache converted/scaled
+ * pixel blobs */
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+ GStaticMutex lock;
+#else
+ GMutex lock;
+#endif
+
+ GList *scaled_rectangles;
+};
+
+struct _GstVideoOverlayRectangleClass
+{
+ GstMiniObjectClass parent_class;
+};
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+#define GST_RECTANGLE_LOCK(rect) g_static_mutex_lock(&rect->lock)
+#define GST_RECTANGLE_UNLOCK(rect) g_static_mutex_unlock(&rect->lock)
+#else
+#define GST_RECTANGLE_LOCK(rect) g_mutex_lock(&rect->lock)
+#define GST_RECTANGLE_UNLOCK(rect) g_mutex_unlock(&rect->lock)
+#endif
+
+static void gst_video_overlay_composition_class_init (GstMiniObjectClass * k);
+static void gst_video_overlay_composition_finalize (GstMiniObject * comp);
+static void gst_video_overlay_rectangle_class_init (GstMiniObjectClass * klass);
+static void gst_video_overlay_rectangle_finalize (GstMiniObject * rect);
+
+/* --------------------------- utility functions --------------------------- */
+
+#ifndef GST_DISABLE_GST_DEBUG
+
+#define GST_CAT_DEFAULT ensure_debug_category()
+
+static GstDebugCategory *
+ensure_debug_category (void)
+{
+ static gsize cat_gonce = 0;
+
+ if (g_once_init_enter (&cat_gonce)) {
+ gsize cat_done;
+
+ cat_done = (gsize) _gst_debug_category_new ("video-composition", 0,
+ "video overlay composition");
+
+ g_once_init_leave (&cat_gonce, cat_done);
+ }
+
+ return (GstDebugCategory *) cat_gonce;
+}
+
+#else
+
+#define ensure_debug_category() /* NOOP */
+
+#endif /* GST_DISABLE_GST_DEBUG */
+
+static guint
+gst_video_overlay_get_seqnum (void)
+{
+ static gint seqnum; /* 0 */
+
+#if GLIB_CHECK_VERSION(2,29,5)
+ return (guint) g_atomic_int_add (&seqnum, 1);
+#else
+ return (guint) g_atomic_int_exchange_and_add (&seqnum, 1);
+#endif
+}
+
+#define GST_OVERLAY_COMPOSITION_QUARK gst_overlay_composition_quark_get()
+static GQuark
+gst_overlay_composition_quark_get (void)
+{
+ static gsize quark_gonce = 0;
+
+ if (g_once_init_enter (&quark_gonce)) {
+ gsize quark;
+
+ quark = (gsize) g_quark_from_static_string ("GstVideoOverlayComposition");
+
+ g_once_init_leave (&quark_gonce, quark);
+ }
+
+ return (GQuark) quark_gonce;
+}
+
+#define COMPOSITION_QUARK composition_quark_get()
+static GQuark
+composition_quark_get (void)
+{
+ static gsize quark_gonce = 0;
+
+ if (g_once_init_enter (&quark_gonce)) {
+ gsize quark;
+
+ quark = (gsize) g_quark_from_static_string ("composition");
+
+ g_once_init_leave (&quark_gonce, quark);
+ }
+
+ return (GQuark) quark_gonce;
+}
+
+/**
+ * gst_video_buffer_set_overlay_composition:
+ * @buf: a #GstBuffer
+ * @comp: (allow-none): a #GstVideoOverlayComposition, or NULL to clear a
+ * previously-set composition
+ *
+ * Sets an overlay composition on a buffer. The buffer will obtain its own
+ * reference to the composition, meaning this function does not take ownership
+ * of @comp.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_buffer_set_overlay_composition (GstBuffer * buf,
+ GstVideoOverlayComposition * comp)
+{
+ gst_buffer_set_qdata (buf, GST_OVERLAY_COMPOSITION_QUARK,
+ gst_structure_id_new (GST_OVERLAY_COMPOSITION_QUARK,
+ COMPOSITION_QUARK, GST_TYPE_VIDEO_OVERLAY_COMPOSITION, comp, NULL));
+}
+
+/**
+ * gst_video_buffer_get_overlay_composition:
+ * @buf: a #GstBuffer
+ *
+ * Get the overlay composition that has previously been attached to a buffer
+ * with gst_video_buffer_get_overlay_composition(), usually by another element
+ * upstream.
+ *
+ * Returns: (transfer none): the #GstVideoOverlayComposition attached to
+ * this buffer, or NULL. Does not return a reference to the composition,
+ * caller must obtain her own ref via gst_video_overlay_composition_ref()
+ * if needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_buffer_get_overlay_composition (GstBuffer * buf)
+{
+ const GstStructure *s;
+ const GValue *val;
+
+ s = gst_buffer_get_qdata (buf, GST_OVERLAY_COMPOSITION_QUARK);
+ if (s == NULL)
+ return NULL;
+
+ val = gst_structure_id_get_value (s, COMPOSITION_QUARK);
+ if (val == NULL)
+ return NULL;
+
+ return GST_VIDEO_OVERLAY_COMPOSITION (gst_value_get_mini_object (val));
+}
+
+/* ------------------------------ composition ------------------------------ */
+
+#define RECTANGLE_ARRAY_STEP 4 /* premature optimization */
+
+GType
+gst_video_overlay_composition_get_type (void)
+{
+ static volatile gsize type_id = 0;
+
+ if (g_once_init_enter (&type_id)) {
+ GType new_type_id = g_type_register_static_simple (GST_TYPE_MINI_OBJECT,
+ g_intern_static_string ("GstVideoOverlayComposition"),
+ sizeof (GstVideoOverlayCompositionClass),
+ (GClassInitFunc) gst_video_overlay_composition_class_init,
+ sizeof (GstVideoOverlayComposition),
+ NULL,
+ (GTypeFlags) 0);
+
+ g_once_init_leave (&type_id, new_type_id);
+ }
+
+ return type_id;
+}
+
+static void
+gst_video_overlay_composition_finalize (GstMiniObject * mini_obj)
+{
+ GstVideoOverlayComposition *comp = (GstVideoOverlayComposition *) mini_obj;
+ guint num;
+
+ num = comp->num_rectangles;
+
+ while (num > 0) {
+ gst_video_overlay_rectangle_unref (comp->rectangles[num - 1]);
+ --num;
+ }
+
+ g_free (comp->rectangles);
+ comp->rectangles = NULL;
+ comp->num_rectangles = 0;
+
+ /* not chaining up to GstMiniObject's finalize for now, we know it's empty */
+}
+
+static void
+gst_video_overlay_composition_class_init (GstMiniObjectClass * klass)
+{
+ klass->finalize = gst_video_overlay_composition_finalize;
+ klass->copy = (GstMiniObjectCopyFunction) gst_video_overlay_composition_copy;
+}
+
+/**
+ * gst_video_overlay_composition_new:
+ * @rectangle: (transfer none): a #GstVideoOverlayRectangle to add to the
+ * composition
+ *
+ * Creates a new video overlay composition object to hold one or more
+ * overlay rectangles.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayComposition. Unref with
+ * gst_video_overlay_composition_unref() when no longer needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_overlay_composition_new (GstVideoOverlayRectangle * rectangle)
+{
+ GstVideoOverlayComposition *comp;
+
+
+ /* FIXME: should we allow empty compositions? Could also be expressed as
+ * buffer without a composition on it. Maybe there are cases where doing
+ * an empty new + _add() in a loop is easier? */
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+
+ comp = (GstVideoOverlayComposition *)
+ gst_mini_object_new (GST_TYPE_VIDEO_OVERLAY_COMPOSITION);
+
+ comp->rectangles = g_new0 (GstVideoOverlayRectangle *, RECTANGLE_ARRAY_STEP);
+ comp->rectangles[0] = gst_video_overlay_rectangle_ref (rectangle);
+ comp->num_rectangles = 1;
+
+ comp->seq_num = gst_video_overlay_get_seqnum ();
+
+ /* since the rectangle was created earlier, its seqnum is smaller than ours */
+ comp->min_seq_num_used = rectangle->seq_num;
+
+ GST_LOG ("new composition %p: seq_num %u with rectangle %p", comp,
+ comp->seq_num, rectangle);
+
+ return comp;
+}
+
+/**
+ * gst_video_overlay_composition_add_rectangle:
+ * @comp: a #GstVideoOverlayComposition
+ * @rectangle: (transfer none): a #GstVideoOverlayRectangle to add to the
+ * composition
+ *
+ * Adds an overlay rectangle to an existing overlay composition object. This
+ * must be done right after creating the overlay composition.
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_overlay_composition_add_rectangle (GstVideoOverlayComposition * comp,
+ GstVideoOverlayRectangle * rectangle)
+{
+ g_return_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp));
+ g_return_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle));
+ g_return_if_fail (GST_MINI_OBJECT_REFCOUNT_VALUE (comp) == 1);
+
+ if (comp->num_rectangles % RECTANGLE_ARRAY_STEP == 0) {
+ comp->rectangles =
+ g_renew (GstVideoOverlayRectangle *, comp->rectangles,
+ comp->num_rectangles + RECTANGLE_ARRAY_STEP);
+ }
+
+ comp->rectangles[comp->num_rectangles] =
+ gst_video_overlay_rectangle_ref (rectangle);
+ comp->num_rectangles += 1;
+
+ comp->min_seq_num_used = MIN (comp->min_seq_num_used, rectangle->seq_num);
+
+ GST_LOG ("composition %p: added rectangle %p", comp, rectangle);
+}
+
+/**
+ * gst_video_overlay_composition_n_rectangles:
+ * @comp: a #GstVideoOverlayComposition
+ *
+ * Returns the number of #GstVideoOverlayRectangle<!-- -->s contained in @comp.
+ *
+ * Returns: the number of rectangles
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_video_overlay_composition_n_rectangles (GstVideoOverlayComposition * comp)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), 0);
+
+ return comp->num_rectangles;
+}
+
+/**
+ * gst_video_overlay_composition_get_rectangle:
+ * @comp: a #GstVideoOverlayComposition
+ * @n: number of the rectangle to get
+ *
+ * Returns the @n-th #GstVideoOverlayRectangle contained in @comp.
+ *
+ * Returns: (transfer none): the @n-th rectangle, or NULL if @n is out of
+ * bounds. Will not return a new reference, the caller will need to
+ * obtain her own reference using gst_video_overlay_rectangle_ref()
+ * if needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayRectangle *
+gst_video_overlay_composition_get_rectangle (GstVideoOverlayComposition * comp,
+ guint n)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), NULL);
+
+ if (n >= comp->num_rectangles)
+ return NULL;
+
+ return comp->rectangles[n];
+}
+
+static gboolean
+gst_video_overlay_rectangle_needs_scaling (GstVideoOverlayRectangle * r)
+{
+ return (r->width != r->render_width || r->height != r->render_height);
+}
+
+/**
+ * gst_video_overlay_composition_blend:
+ * @comp: a #GstVideoOverlayComposition
+ * @video_buf: a #GstBuffer containing raw video data in a supported format
+ *
+ * Blends the overlay rectangles in @comp on top of the raw video data
+ * contained in @video_buf. The data in @video_buf must be writable. If
+ * needed, use gst_buffer_make_writable() before calling this function to
+ * ensure a buffer is writable. @video_buf must also have valid raw video
+ * caps set on it.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_overlay_composition_blend (GstVideoOverlayComposition * comp,
+ GstBuffer * video_buf)
+{
+ GstBlendVideoFormatInfo video_info, rectangle_info;
+ GstVideoFormat fmt;
+ gboolean ret = TRUE;
+ guint n, num;
+ int w, h;
+
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), FALSE);
+ g_return_val_if_fail (GST_IS_BUFFER (video_buf), FALSE);
+ g_return_val_if_fail (gst_buffer_is_writable (video_buf), FALSE);
+ g_return_val_if_fail (GST_BUFFER_CAPS (video_buf) != NULL, FALSE);
+
+ if (!gst_video_format_parse_caps (GST_BUFFER_CAPS (video_buf), &fmt, &w, &h)) {
+ gchar *str = gst_caps_to_string (GST_BUFFER_CAPS (video_buf));
+ g_warning ("%s: could not parse video buffer caps '%s'", GST_FUNCTION, str);
+ g_free (str);
+ return FALSE;
+ }
+
+ video_blend_format_info_init (&video_info, GST_BUFFER_DATA (video_buf),
+ h, w, fmt);
+
+ num = comp->num_rectangles;
+ GST_LOG ("Blending composition %p with %u rectangles onto video buffer %p "
+ "(%ux%u, format %u)", comp, num, video_buf, w, h, fmt);
+
+ for (n = 0; n < num; ++n) {
+ GstVideoOverlayRectangle *rect;
+ gboolean needs_scaling;
+
+ rect = comp->rectangles[n];
+
+ GST_LOG (" rectangle %u %p: %ux%u, format %u", n, rect, rect->height,
+ rect->width, rect->format);
+
+ video_blend_format_info_init (&rectangle_info,
+ GST_BUFFER_DATA (rect->pixels), rect->height, rect->width,
+ rect->format);
+
+ needs_scaling = gst_video_overlay_rectangle_needs_scaling (rect);
+ if (needs_scaling) {
+ video_blend_scale_linear_RGBA (&rectangle_info, rect->render_height,
+ rect->render_width);
+ }
+
+ ret = video_blend (&video_info, &rectangle_info, rect->x, rect->y);
+ if (!ret) {
+ GST_WARNING ("Could not blend overlay rectangle onto video buffer");
+ }
+
+ /* FIXME: should cache scaled pixels in the rectangle struct */
+ if (needs_scaling)
+ g_free (rectangle_info.pixels);
+ }
+
+ return ret;
+}
+
+/**
+ * gst_video_overlay_composition_copy:
+ * @comp: (transfer none): a #GstVideoOverlayComposition to copy
+ *
+ * Makes a copy of @comp and all contained rectangles, so that it is possible
+ * to modify the composition and contained rectangles (e.g. add additional
+ * rectangles or change the render co-ordinates or render dimension). The
+ * actual overlay pixel data buffers contained in the rectangles are not
+ * copied.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayComposition equivalent
+ * to @comp.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_overlay_composition_copy (GstVideoOverlayComposition * comp)
+{
+ GstVideoOverlayComposition *copy;
+ GstVideoOverlayRectangle *rect;
+ guint n;
+
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), NULL);
+
+ if (G_LIKELY (comp->num_rectangles == 0))
+ return gst_video_overlay_composition_new (NULL);
+
+ rect = gst_video_overlay_rectangle_copy (comp->rectangles[0]);
+ copy = gst_video_overlay_composition_new (rect);
+ gst_video_overlay_rectangle_unref (rect);
+
+ for (n = 1; n < comp->num_rectangles; ++n) {
+ rect = gst_video_overlay_rectangle_copy (comp->rectangles[n]);
+ gst_video_overlay_composition_add_rectangle (copy, rect);
+ gst_video_overlay_rectangle_unref (rect);
+ }
+
+ return copy;
+}
+
+/**
+ * gst_video_overlay_composition_make_writable:
+ * @comp: (transfer full): a #GstVideoOverlayComposition to copy
+ *
+ * Takes ownership of @comp and returns a version of @comp that is writable
+ * (i.e. can be modified). Will either return @comp right away, or create a
+ * new writable copy of @comp and unref @comp itself. All the contained
+ * rectangles will also be copied, but the actual overlay pixel data buffers
+ * contained in the rectangles are not copied.
+ *
+ * Returns: (transfer full): a writable #GstVideoOverlayComposition
+ * equivalent to @comp.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayComposition *
+gst_video_overlay_composition_make_writable (GstVideoOverlayComposition * comp)
+{
+ GstVideoOverlayComposition *writable_comp;
+
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), NULL);
+
+ if (GST_MINI_OBJECT_REFCOUNT_VALUE (comp) == 1) {
+ guint n;
+
+ for (n = 0; n < comp->num_rectangles; ++n) {
+ if (GST_MINI_OBJECT_REFCOUNT_VALUE (comp->rectangles[n]) != 1)
+ goto copy;
+ }
+ return comp;
+ }
+
+copy:
+
+ writable_comp = gst_video_overlay_composition_copy (comp);
+ gst_video_overlay_composition_unref (comp);
+
+ return writable_comp;
+}
+
+/**
+ * gst_video_overlay_composition_get_seqnum:
+ * @comp: a #GstVideoOverlayComposition
+ *
+ * Returns the sequence number of this composition. Sequence numbers are
+ * monotonically increasing and unique for overlay compositions and rectangles
+ * (meaning there will never be a rectangle with the same sequence number as
+ * a composition).
+ *
+ * Returns: the sequence number of @comp
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_video_overlay_composition_get_seqnum (GstVideoOverlayComposition * comp)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_COMPOSITION (comp), 0);
+
+ return comp->seq_num;
+}
+
+/* ------------------------------ rectangles ------------------------------ -*/
+
+static void gst_video_overlay_rectangle_instance_init (GstMiniObject * miniobj);
+
+GType
+gst_video_overlay_rectangle_get_type (void)
+{
+ static volatile gsize type_id = 0;
+
+ if (g_once_init_enter (&type_id)) {
+ GType new_type_id = g_type_register_static_simple (GST_TYPE_MINI_OBJECT,
+ g_intern_static_string ("GstVideoOverlayRectangle"),
+ sizeof (GstVideoOverlayRectangleClass),
+ (GClassInitFunc) gst_video_overlay_rectangle_class_init,
+ sizeof (GstVideoOverlayRectangle),
+ (GInstanceInitFunc) gst_video_overlay_rectangle_instance_init,
+ (GTypeFlags) 0);
+
+ g_once_init_leave (&type_id, new_type_id);
+ }
+
+ return type_id;
+}
+
+static void
+gst_video_overlay_rectangle_finalize (GstMiniObject * mini_obj)
+{
+ GstVideoOverlayRectangle *rect = (GstVideoOverlayRectangle *) mini_obj;
+
+ gst_buffer_replace (&rect->pixels, NULL);
+
+ while (rect->scaled_rectangles != NULL) {
+ GstVideoOverlayRectangle *scaled_rect = rect->scaled_rectangles->data;
+
+ gst_video_overlay_rectangle_unref (scaled_rect);
+
+ rect->scaled_rectangles =
+ g_list_delete_link (rect->scaled_rectangles, rect->scaled_rectangles);
+ }
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+ g_static_mutex_free (&rect->lock);
+#else
+ g_mutex_clear (&rect->lock);
+#endif
+ /* not chaining up to GstMiniObject's finalize for now, we know it's empty */
+}
+
+static void
+gst_video_overlay_rectangle_class_init (GstMiniObjectClass * klass)
+{
+ klass->finalize = gst_video_overlay_rectangle_finalize;
+ klass->copy = (GstMiniObjectCopyFunction) gst_video_overlay_rectangle_copy;
+}
+
+static void
+gst_video_overlay_rectangle_instance_init (GstMiniObject * mini_obj)
+{
+ GstVideoOverlayRectangle *rect = (GstVideoOverlayRectangle *) mini_obj;
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
+ g_static_mutex_init (&rect->lock);
+#else
+ g_mutex_init (&rect->lock);
+#endif
+}
+
+/**
+ * gst_video_overlay_rectangle_new_argb:
+ * @pixels: (transfer none): a #GstBuffer pointing to the pixel memory
+ * @width: the width of the rectangle in @pixels
+ * @height: the height of the rectangle in @pixels
+ * @stride: the stride of the rectangle in @pixels in bytes (>= 4*width)
+ * @x: the X co-ordinate on the video where the top-left corner of this
+ * overlay rectangle should be rendered to
+ * @y: the Y co-ordinate on the video where the top-left corner of this
+ * overlay rectangle should be rendered to
+ * @render_width: the render width of this rectangle on the video
+ * @render_height: the render height of this rectangle on the video
+ * @flags: flags (currently unused)
+ *
+ * Creates a new video overlay rectangle with ARGB pixel data. The layout
+ * of the components in memory is B-G-R-A on little-endian platforms
+ * (corresponding to #GST_VIDEO_FORMAT_BGRA) and A-R-G-B on big-endian
+ * platforms (corresponding to #GST_VIDEO_FORMAT_ARGB). In other words,
+ * pixels are treated as 32-bit words and the lowest 8 bits then contain
+ * the blue component value and the highest 8 bits contain the alpha
+ * component value. The RGB values are non-premultiplied. This is the
+ * format that is used by most hardware, and also many rendering libraries
+ * such as Cairo, for example.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayRectangle. Unref with
+ * gst_video_overlay_rectangle_unref() when no longer needed.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_new_argb (GstBuffer * pixels,
+ guint width, guint height, guint stride, gint render_x, gint render_y,
+ guint render_width, guint render_height, GstVideoOverlayFormatFlags flags)
+{
+ GstVideoOverlayRectangle *rect;
+
+ g_return_val_if_fail (GST_IS_BUFFER (pixels), NULL);
+ /* technically ((height-1)*stride)+width might be okay too */
+ g_return_val_if_fail (GST_BUFFER_SIZE (pixels) >= height * stride, NULL);
+ g_return_val_if_fail (stride >= (4 * width), NULL);
+ g_return_val_if_fail (height > 0 && width > 0, NULL);
+ g_return_val_if_fail (render_height > 0 && render_width > 0, NULL);
+ g_return_val_if_fail (flags == 0, NULL);
+
+ rect = (GstVideoOverlayRectangle *)
+ gst_mini_object_new (GST_TYPE_VIDEO_OVERLAY_RECTANGLE);
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+ rect->format = GST_VIDEO_FORMAT_BGRA;
+#else
+ rect->format = GST_VIDEO_FORMAT_ARGB;
+#endif
+ rect->pixels = gst_buffer_ref (pixels);
+
+ rect->width = width;
+ rect->height = height;
+ rect->stride = stride;
+
+ rect->x = render_x;
+ rect->y = render_y;
+ rect->render_width = render_width;
+ rect->render_height = render_height;
+
+ rect->seq_num = gst_video_overlay_get_seqnum ();
+
+ GST_LOG ("new rectangle %p: %ux%u => %ux%u @ %u,%u, seq_num %u, format %u, "
+ "pixels %p", rect, width, height, render_width, render_height, render_x,
+ render_y, rect->seq_num, rect->format, pixels);
+
+ return rect;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_render_rectangle:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @render_x: (out) (allow-none): address where to store the X render offset
+ * @render_y: (out) (allow-none): address where to store the Y render offset
+ * @render_width: (out) (allow-none): address where to store the render width
+ * @render_height: (out) (allow-none): address where to store the render height
+ *
+ * Retrieves the render position and render dimension of the overlay
+ * rectangle on the video.
+ *
+ * Returns: TRUE if valid render dimensions were retrieved.
+ *
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_overlay_rectangle_get_render_rectangle (GstVideoOverlayRectangle *
+ rectangle, gint * render_x, gint * render_y, guint * render_width,
+ guint * render_height)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), FALSE);
+
+ if (render_x)
+ *render_x = rectangle->x;
+ if (render_y)
+ *render_y = rectangle->y;
+ if (render_width)
+ *render_width = rectangle->render_width;
+ if (render_height)
+ *render_height = rectangle->render_height;
+
+ return TRUE;
+}
+
+/**
+ * gst_video_overlay_rectangle_set_render_rectangle:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @render_x: render X position of rectangle on video
+ * @render_y: render Y position of rectangle on video
+ * @render_width: render width of rectangle
+ * @render_height: render height of rectangle
+ *
+ * Sets the render position and dimensions of the rectangle on the video.
+ * This function is mainly for elements that modify the size of the video
+ * in some way (e.g. through scaling or cropping) and need to adjust the
+ * details of any overlays to match the operation that changed the size.
+ *
+ * @rectangle must be writable, meaning its refcount must be 1. You can
+ * make the rectangles inside a #GstVideoOverlayComposition writable using
+ * gst_video_overlay_composition_make_writable() or
+ * gst_video_overlay_composition_copy().
+ *
+ * Since: 0.10.36
+ */
+void
+gst_video_overlay_rectangle_set_render_rectangle (GstVideoOverlayRectangle *
+ rectangle, gint render_x, gint render_y, guint render_width,
+ guint render_height)
+{
+ g_return_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle));
+ g_return_if_fail (GST_MINI_OBJECT_REFCOUNT_VALUE (rectangle) == 1);
+
+ rectangle->x = render_x;
+ rectangle->y = render_y;
+ rectangle->render_width = render_width;
+ rectangle->render_height = render_height;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_pixels_argb:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @stride: (out) (allow-none): address of guint variable where to store the
+ * row stride of the ARGB pixel data in the buffer
+ * @flags: flags (unused)
+ *
+ * Returns: (transfer none): a #GstBuffer holding the ARGB pixel data with
+ * row stride @stride and width and height of the render dimensions as per
+ * gst_video_overlay_rectangle_get_render_rectangle(). This function does
+ * not return a reference, the caller should obtain a reference of her own
+ * with gst_buffer_ref() if needed.
+ *
+ * Since: 0.10.36
+ */
+GstBuffer *
+gst_video_overlay_rectangle_get_pixels_argb (GstVideoOverlayRectangle *
+ rectangle, guint * stride, GstVideoOverlayFormatFlags flags)
+{
+ GstVideoOverlayRectangle *scaled_rect = NULL;
+ GstBlendVideoFormatInfo info;
+ GstBuffer *buf;
+ GList *l;
+
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+ g_return_val_if_fail (flags == 0, NULL);
+ g_return_val_if_fail (stride != NULL, NULL);
+
+ /* This assumes we don't need to adjust the format */
+ if (rectangle->render_width == rectangle->width &&
+ rectangle->render_height == rectangle->height) {
+ *stride = rectangle->stride;
+ return rectangle->pixels;
+ }
+
+ /* see if we've got one cached already */
+ GST_RECTANGLE_LOCK (rectangle);
+ for (l = rectangle->scaled_rectangles; l != NULL; l = l->next) {
+ GstVideoOverlayRectangle *r = l->data;
+
+ if (r->width == rectangle->render_width &&
+ r->height == rectangle->render_height) {
+ /* we'll keep these rectangles around until finalize, so it's ok not
+ * to take our own ref here */
+ scaled_rect = r;
+ break;
+ }
+ }
+ GST_RECTANGLE_UNLOCK (rectangle);
+
+ if (scaled_rect != NULL)
+ goto done;
+
+ /* not cached yet, do the scaling and put the result into our cache */
+ video_blend_format_info_init (&info, GST_BUFFER_DATA (rectangle->pixels),
+ rectangle->height, rectangle->width, rectangle->format);
+
+ video_blend_scale_linear_RGBA (&info, rectangle->render_height,
+ rectangle->render_width);
+
+ buf = gst_buffer_new ();
+ GST_BUFFER_DATA (buf) = info.pixels;
+ GST_BUFFER_MALLOCDATA (buf) = info.pixels;
+ GST_BUFFER_SIZE (buf) = info.size;
+
+ scaled_rect = gst_video_overlay_rectangle_new_argb (buf,
+ rectangle->render_width, rectangle->render_height, info.stride[0],
+ 0, 0, rectangle->render_width, rectangle->render_height, 0);
+
+ gst_buffer_unref (buf);
+
+ GST_RECTANGLE_LOCK (rectangle);
+ rectangle->scaled_rectangles =
+ g_list_prepend (rectangle->scaled_rectangles, scaled_rect);
+ GST_RECTANGLE_UNLOCK (rectangle);
+
+done:
+
+ *stride = scaled_rect->stride;
+ return scaled_rect->pixels;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_pixels_unscaled_argb:
+ * @rectangle: a #GstVideoOverlayRectangle
+ * @width: (out): address where to store the width of the unscaled
+ * rectangle in pixels
+ * @width: (out): address where to store the height of the unscaled
+ * rectangle in pixels
+ * @stride: (out): address of guint variable where to store the row
+ * stride of the ARGB pixel data in the buffer
+ * @flags: flags for future use (unused)
+ *
+ * Retrieves the pixel data as it is. This is useful if the caller can
+ * do the scaling itself when handling the overlaying. The rectangle will
+ * need to be scaled to the render dimensions, which can be retrieved using
+ * gst_video_overlay_rectangle_get_render_rectangle().
+ *
+ * Returns: (transfer none): a #GstBuffer holding the ARGB pixel data with
+ * row stride @stride. This function does not return a reference, the caller
+ * should obtain a reference of her own with gst_buffer_ref() if needed.
+ *
+ * Since: 0.10.36
+ */
+GstBuffer *
+gst_video_overlay_rectangle_get_pixels_unscaled_argb (GstVideoOverlayRectangle *
+ rectangle, guint * width, guint * height, guint * stride,
+ GstVideoOverlayFormatFlags flags)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+ g_return_val_if_fail (width != NULL, NULL);
+ g_return_val_if_fail (height != NULL, NULL);
+ g_return_val_if_fail (stride != NULL, NULL);
+ g_return_val_if_fail (flags == 0, NULL);
+
+ *width = rectangle->width;
+ *height = rectangle->height;
+ *stride = rectangle->stride;
+
+ return rectangle->pixels;
+}
+
+/**
+ * gst_video_overlay_rectangle_copy:
+ * @rectangle: (transfer none): a #GstVideoOverlayRectangle to copy
+ *
+ * Makes a copy of @rectangle, so that it is possible to modify it
+ * (e.g. to change the render co-ordinates or render dimension). The
+ * actual overlay pixel data buffers contained in the rectangle are not
+ * copied.
+ *
+ * Returns: (transfer full): a new #GstVideoOverlayRectangle equivalent
+ * to @rectangle.
+ *
+ * Since: 0.10.36
+ */
+GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_copy (GstVideoOverlayRectangle * rectangle)
+{
+ GstVideoOverlayRectangle *copy;
+
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), NULL);
+
+ copy = gst_video_overlay_rectangle_new_argb (rectangle->pixels,
+ rectangle->width, rectangle->height, rectangle->stride,
+ rectangle->x, rectangle->y,
+ rectangle->render_width, rectangle->render_height, 0);
+
+ return copy;
+}
+
+/**
+ * gst_video_overlay_rectangle_get_seqnum:
+ * @rectangle: a #GstVideoOverlayRectangle
+ *
+ * Returns the sequence number of this rectangle. Sequence numbers are
+ * monotonically increasing and unique for overlay compositions and rectangles
+ * (meaning there will never be a rectangle with the same sequence number as
+ * a composition).
+ *
+ * Returns: the sequence number of @rectangle
+ *
+ * Since: 0.10.36
+ */
+guint
+gst_video_overlay_rectangle_get_seqnum (GstVideoOverlayRectangle * rectangle)
+{
+ g_return_val_if_fail (GST_IS_VIDEO_OVERLAY_RECTANGLE (rectangle), 0);
+
+ return rectangle->seq_num;
+}
--- /dev/null
+/* GStreamer Video Overlay Composition
+ * Copyright (C) 2011 Intel Corporation
+ * Copyright (C) 2011 Collabora Ltd.
+ * Copyright (C) 2011 Tim-Philipp Müller <tim centricular net>
+ *
+ * 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_VIDEO_OVERLAY_COMPOSITION_H__
+#define __GST_VIDEO_OVERLAY_COMPOSITION_H__
+
+#include <gst/gst.h>
+#include <gst/video/video.h>
+
+G_BEGIN_DECLS
+
+/**
+ * GstVideoOverlayRectangle:
+ *
+ * An opaque video overlay rectangle object. A rectangle contains a single
+ * overlay rectangle which can be added to a composition.
+ *
+ * Since: 0.10.36
+ */
+#define GST_TYPE_VIDEO_OVERLAY_RECTANGLE \
+ (gst_video_overlay_rectangle_get_type ())
+#define GST_VIDEO_OVERLAY_RECTANGLE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VIDEO_OVERLAY_RECTANGLE, GstVideoOverlayRectangle))
+#define GST_IS_VIDEO_OVERLAY_RECTANGLE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_OVERLAY_RECTANGLE))
+
+typedef struct _GstVideoOverlayRectangle GstVideoOverlayRectangle;
+typedef struct _GstVideoOverlayRectangleClass GstVideoOverlayRectangleClass;
+
+/**
+ * gst_video_overlay_rectangle_ref:
+ * @comp: a a #GstVideoOverlayRectangle.
+ *
+ * Increases the refcount of the given rectangle by one.
+ *
+ * Note that the refcount affects the writeability
+ * of @comp, use gst_video_overlay_rectangle_copy() to ensure a rectangle can
+ * be modified (there is no gst_video_overlay_rectangle_make_writable() because
+ * it is unlikely that someone will hold the single reference to the rectangle
+ * and not know that that's the case).
+ *
+ * Returns: (transfer full): @comp
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_ref (GstVideoOverlayRectangle * comp);
+#endif
+
+static inline GstVideoOverlayRectangle *
+gst_video_overlay_rectangle_ref (GstVideoOverlayRectangle * comp)
+{
+ return (GstVideoOverlayRectangle *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (comp));
+}
+
+/**
+ * gst_video_overlay_rectangle_unref:
+ * @comp: (transfer full): a #GstVideoOverlayRectangle.
+ *
+ * Decreases the refcount of the rectangle. If the refcount reaches 0, the
+ * rectangle will be freed.
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void
+gst_video_overlay_rectangle_unref (GstVideoOverlayRectangle * comp);
+#endif
+
+static inline void
+gst_video_overlay_rectangle_unref (GstVideoOverlayRectangle * comp)
+{
+ gst_mini_object_unref (GST_MINI_OBJECT_CAST (comp));
+}
+
+/**
+ * GstVideoOverlayFormatFlags:
+ * @GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE: no flags
+ *
+ * Overlay format flags.
+ *
+ * Since: 0.10.36
+ */
+typedef enum {
+ GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE = 0
+} GstVideoOverlayFormatFlags;
+
+GType gst_video_overlay_rectangle_get_type (void);
+
+GstVideoOverlayRectangle * gst_video_overlay_rectangle_new_argb (GstBuffer * pixels,
+ guint width, guint height, guint stride,
+ gint render_x, gint render_y,
+ guint render_width, guint render_height,
+ GstVideoOverlayFormatFlags flags);
+
+GstVideoOverlayRectangle * gst_video_overlay_rectangle_copy (GstVideoOverlayRectangle * rectangle);
+
+guint gst_video_overlay_rectangle_get_seqnum (GstVideoOverlayRectangle * rectangle);
+
+void gst_video_overlay_rectangle_set_render_rectangle (GstVideoOverlayRectangle * rectangle,
+ gint render_x,
+ gint render_y,
+ guint render_width,
+ guint render_height);
+
+gboolean gst_video_overlay_rectangle_get_render_rectangle (GstVideoOverlayRectangle * rectangle,
+ gint * render_x,
+ gint * render_y,
+ guint * render_width,
+ guint * render_height);
+
+GstBuffer * gst_video_overlay_rectangle_get_pixels_argb (GstVideoOverlayRectangle * rectangle,
+ guint * stride,
+ GstVideoOverlayFormatFlags flags);
+
+GstBuffer * gst_video_overlay_rectangle_get_pixels_unscaled_argb (GstVideoOverlayRectangle * rectangle,
+ guint * width,
+ guint * height,
+ guint * stride,
+ GstVideoOverlayFormatFlags flags);
+
+/**
+ * GstVideoOverlayComposition:
+ *
+ * An opaque video overlay composition object. A composition contains
+ * multiple overlay rectangles.
+ *
+ * Since: 0.10.36
+ */
+#define GST_TYPE_VIDEO_OVERLAY_COMPOSITION \
+ (gst_video_overlay_composition_get_type ())
+#define GST_VIDEO_OVERLAY_COMPOSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_VIDEO_OVERLAY_COMPOSITION, GstVideoOverlayComposition))
+#define GST_IS_VIDEO_OVERLAY_COMPOSITION(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_OVERLAY_COMPOSITION))
+
+typedef struct _GstVideoOverlayComposition GstVideoOverlayComposition;
+typedef struct _GstVideoOverlayCompositionClass GstVideoOverlayCompositionClass;
+
+/**
+ * gst_video_overlay_composition_ref:
+ * @comp: a a #GstVideoOverlayComposition.
+ *
+ * Increases the refcount of the given composition by one.
+ *
+ * Note that the refcount affects the writeability
+ * of @comp, use gst_video_overlay_composition_make_writable() to ensure
+ * a composition and its rectangles can be modified.
+ *
+ * Returns: (transfer full): @comp
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstVideoOverlayComposition *
+gst_video_overlay_composition_ref (GstVideoOverlayComposition * comp);
+#endif
+
+static inline GstVideoOverlayComposition *
+gst_video_overlay_composition_ref (GstVideoOverlayComposition * comp)
+{
+ return (GstVideoOverlayComposition *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (comp));
+}
+
+/**
+ * gst_video_overlay_composition_unref:
+ * @comp: (transfer full): a #GstVideoOverlayComposition.
+ *
+ * Decreases the refcount of the composition. If the refcount reaches 0, the
+ * composition will be freed.
+ *
+ * Since: 0.10.36
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void
+gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp);
+#endif
+
+static inline void
+gst_video_overlay_composition_unref (GstVideoOverlayComposition * comp)
+{
+ gst_mini_object_unref (GST_MINI_OBJECT_CAST (comp));
+}
+
+GType gst_video_overlay_composition_get_type (void);
+
+GstVideoOverlayComposition * gst_video_overlay_composition_copy (GstVideoOverlayComposition * comp);
+
+GstVideoOverlayComposition * gst_video_overlay_composition_make_writable (GstVideoOverlayComposition * comp);
+
+GstVideoOverlayComposition * gst_video_overlay_composition_new (GstVideoOverlayRectangle * rectangle);
+
+void gst_video_overlay_composition_add_rectangle (GstVideoOverlayComposition * comp,
+ GstVideoOverlayRectangle * rectangle);
+
+guint gst_video_overlay_composition_n_rectangles (GstVideoOverlayComposition * comp);
+
+GstVideoOverlayRectangle * gst_video_overlay_composition_get_rectangle (GstVideoOverlayComposition * comp, guint n);
+
+guint gst_video_overlay_composition_get_seqnum (GstVideoOverlayComposition * comp);
+
+/* blend composition onto raw video buffer */
+
+gboolean gst_video_overlay_composition_blend (GstVideoOverlayComposition * comp,
+ GstBuffer * video_buf);
+
+/* attach/retrieve composition from buffers */
+
+void gst_video_buffer_set_overlay_composition (GstBuffer * buf,
+ GstVideoOverlayComposition * comp);
+
+GstVideoOverlayComposition * gst_video_buffer_get_overlay_composition (GstBuffer * buf);
+
+G_END_DECLS
+
+#endif /* __GST_VIDEO_OVERLAY_COMPOSITION_H__ */
*
* <refsect2>
* <para>
- * This library contains some helper functions and includes the
+ * This library contains some helper functions and includes the
* videosink and videofilter base classes.
* </para>
* </refsect2>
*
* A convenience function to retrieve a GValue holding the framerate
* from the caps on a pad.
- *
+ *
* The pad needs to have negotiated caps containing a framerate property.
*
* Returns: NULL if the pad has no configured caps or the configured caps
*
* Inspect the caps of the provided pad and retrieve the width and height of
* the video frames it is configured for.
- *
+ *
* The pad needs to have negotiated caps containing width and height properties.
*
* Returns: TRUE if the width and height could be retrieved.
* @display_par_n: Numerator of the pixel aspect ratio of the display device
* @display_par_d: Denominator of the pixel aspect ratio of the display device
*
- * Given the Pixel Aspect Ratio and size of an input video frame, and the
- * pixel aspect ratio of the intended display device, calculates the actual
+ * Given the Pixel Aspect Ratio and size of an input video frame, and the
+ * pixel aspect ratio of the intended display device, calculates the actual
* display ratio the video will be rendered with.
*
- * Returns: A boolean indicating success and a calculated Display Ratio in the
- * dar_n and dar_d parameters.
- * The return value is FALSE in the case of integer overflow or other error.
+ * Returns: A boolean indicating success and a calculated Display Ratio in the
+ * dar_n and dar_d parameters.
+ * The return value is FALSE in the case of integer overflow or other error.
*
* Since: 0.10.7
*/
* halfway-sited vertically), "jpeg" for JPEG and Theora style
* chroma siting (halfway-sited both horizontally and vertically).
* Other chroma site values are possible, but uncommon.
- *
+ *
* When no chroma site is specified in the caps, it should be assumed
* to be "mpeg2".
*
* Determines the #GstVideoFormat of @caps and places it in the location
* pointed to by @format. Extracts the size of the video and places it
* in the location pointed to by @width and @height. If @caps does not
- * represent one of the raw video formats listed in #GstVideoFormat, the
- * function will fail and return FALSE.
+ * represent a video format or does not contain height and width, the
+ * function will fail and return FALSE. If @caps does not represent a raw
+ * video format listed in #GstVideoFormat, but still contains video caps,
+ * this function will return TRUE and set @format to #GST_VIDEO_FORMAT_UNKNOWN.
*
* Since: 0.10.16
*
* Returns: TRUE if @caps was parsed correctly.
*/
gboolean
-gst_video_format_parse_caps (GstCaps * caps, GstVideoFormat * format,
+gst_video_format_parse_caps (const GstCaps * caps, GstVideoFormat * format,
int *width, int *height)
{
GstStructure *structure;
} else {
ok = FALSE;
}
+ } else if (g_str_has_prefix (gst_structure_get_name (structure), "video/")) {
+ *format = GST_VIDEO_FORMAT_UNKNOWN;
} else {
ok = FALSE;
}
blue_mask = GST_VIDEO_COMP1_MASK_15_INT;
break;
default:
- return NULL;
+ g_assert_not_reached ();
}
} else if (bpp != 8) {
- return NULL;
+ g_assert_not_reached ();
}
caps = gst_caps_new_simple ("video/x-raw-rgb",
gst_value_list_append_value (&value, &v);
g_value_set_boolean (&v, FALSE);
gst_value_list_append_value (&value, &v);
+ g_value_unset (&v);
- gst_structure_set_value (structure, "interlaced", &value);
-
- g_value_reset (&value);
- g_value_reset (&v);
+ gst_structure_take_value (structure, "interlaced", &value);
}
return caps;
* @blue_mask: blue bit mask
*
* Converts red, green, blue bit masks into the corresponding
- * #GstVideoFormat.
+ * #GstVideoFormat.
*
* Since: 0.10.16
*
/**
* gst_video_format_has_alpha:
* @format: a #GstVideoFormat
- *
+ *
* Returns TRUE or FALSE depending on if the video format provides an
* alpha channel.
*
/**
* gst_video_format_get_component_depth:
* @format: a #GstVideoFormat
- *
+ * @component: the video component (e.g. 0 for 'R' in RGB)
+ *
* Returns the number of bits used to encode an individual pixel of
- * a given component. Typically this is 8, although higher and lower
+ * a given @component. Typically this is 8, although higher and lower
* values are possible for some formats.
*
* Since: 0.10.33
GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) *
(GST_ROUND_UP_2 (height) / 2);
}
- return 0;
+ break;
case GST_VIDEO_FORMAT_YV12: /* same as I420, but components 1+2 swapped */
if (component == 0)
return 0;
GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) *
(GST_ROUND_UP_2 (height) / 2);
}
- return 0;
+ break;
case GST_VIDEO_FORMAT_YUY2:
if (component == 0)
return 0;
return 1;
if (component == 2)
return 3;
- return 0;
+ break;
case GST_VIDEO_FORMAT_YVYU:
if (component == 0)
return 0;
return 3;
if (component == 2)
return 1;
- return 0;
+ break;
case GST_VIDEO_FORMAT_UYVY:
if (component == 0)
return 1;
return 0;
if (component == 2)
return 2;
- return 0;
+ break;
case GST_VIDEO_FORMAT_AYUV:
if (component == 0)
return 1;
return 3;
if (component == 3)
return 0;
- return 0;
+ break;
case GST_VIDEO_FORMAT_RGBx:
case GST_VIDEO_FORMAT_RGBA:
if (component == 0)
return 2;
if (component == 3)
return 3;
- return 0;
+ break;
case GST_VIDEO_FORMAT_BGRx:
case GST_VIDEO_FORMAT_BGRA:
if (component == 0)
return 0;
if (component == 3)
return 3;
- return 0;
+ break;
case GST_VIDEO_FORMAT_xRGB:
case GST_VIDEO_FORMAT_ARGB:
if (component == 0)
return 3;
if (component == 3)
return 0;
- return 0;
+ break;
case GST_VIDEO_FORMAT_xBGR:
case GST_VIDEO_FORMAT_ABGR:
if (component == 0)
return 1;
if (component == 3)
return 0;
- return 0;
+ break;
case GST_VIDEO_FORMAT_RGB:
case GST_VIDEO_FORMAT_v308:
if (component == 0)
return 1;
if (component == 2)
return 2;
- return 0;
+ break;
case GST_VIDEO_FORMAT_BGR:
if (component == 0)
return 2;
return 1;
if (component == 2)
return 0;
- return 0;
+ break;
case GST_VIDEO_FORMAT_Y41B:
if (component == 0)
return 0;
if (component == 2)
return (GST_ROUND_UP_4 (width) +
(GST_ROUND_UP_16 (width) / 4)) * height;
- return 0;
+ break;
case GST_VIDEO_FORMAT_Y42B:
if (component == 0)
return 0;
return GST_ROUND_UP_4 (width) * height;
if (component == 2)
return (GST_ROUND_UP_4 (width) + (GST_ROUND_UP_8 (width) / 2)) * height;
- return 0;
+ break;
case GST_VIDEO_FORMAT_Y444:
return GST_ROUND_UP_4 (width) * height * component;
case GST_VIDEO_FORMAT_v210:
return 2;
if (component == 2)
return 6;
- return 0;
+ break;
case GST_VIDEO_FORMAT_NV12:
if (component == 0)
return 0;
return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height);
if (component == 2)
return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height) + 1;
+ break;
case GST_VIDEO_FORMAT_NV21:
if (component == 0)
return 0;
return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height) + 1;
if (component == 2)
return GST_ROUND_UP_4 (width) * GST_ROUND_UP_2 (height);
+ break;
case GST_VIDEO_FORMAT_GRAY8:
case GST_VIDEO_FORMAT_GRAY16_BE:
case GST_VIDEO_FORMAT_GRAY16_LE:
2 * GST_ROUND_UP_4 (GST_ROUND_UP_2 (width) / 2) *
(GST_ROUND_UP_2 (height) / 2);
}
+ break;
case GST_VIDEO_FORMAT_RGB8_PALETTED:
return 0;
case GST_VIDEO_FORMAT_YUV9:
GST_ROUND_UP_4 (GST_ROUND_UP_4 (width) / 4) *
(GST_ROUND_UP_4 (height) / 4);
}
- return 0;
+ break;
case GST_VIDEO_FORMAT_YVU9:
if (component == 0)
return 0;
}
if (component == 2)
return GST_ROUND_UP_4 (width) * height;
- return 0;
+ break;
case GST_VIDEO_FORMAT_IYU1:
if (component == 0)
return 1;
return 0;
if (component == 2)
return 4;
+ break;
case GST_VIDEO_FORMAT_ARGB64:
case GST_VIDEO_FORMAT_AYUV64:
if (component == 0)
return 6;
if (component == 3)
return 0;
- return 0;
+ break;
default:
- return 0;
+ break;
}
+ GST_WARNING ("unhandled format %d or component %d", format, component);
+ return 0;
}
/**
}
/**
+ * gst_video_get_size_from_caps:
+ * @caps: a pointer to #GstCaps
+ * @size: a pointer to a gint that will be assigned the size (in bytes) of a video frame with the given caps
+ *
+ * Calculates the total number of bytes in the raw video format for the given
+ * caps. This number should be used when allocating a buffer for raw video.
+ *
+ * Since: 0.10.36
+ *
+ * Returns: %TRUE if the size could be calculated from the caps
+ */
+gboolean
+gst_video_get_size_from_caps (const GstCaps * caps, gint * size)
+{
+ GstVideoFormat format = 0;
+ gint width = 0, height = 0;
+
+ g_return_val_if_fail (gst_caps_is_fixed (caps), FALSE);
+ g_return_val_if_fail (size != NULL, FALSE);
+
+ if (gst_video_format_parse_caps (caps, &format, &width, &height) == FALSE) {
+ GST_WARNING ("Could not parse caps: %" GST_PTR_FORMAT, caps);
+ return FALSE;
+ }
+
+ *size = gst_video_format_get_size (format, width, height);
+ return TRUE;
+}
+
+/**
* gst_video_format_convert:
* @format: a #GstVideoFormat
* @width: the width of video
return p;
}
+
+#define GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME "GstForceKeyUnit"
+
+/**
+ * gst_video_event_new_downstream_force_key_unit:
+ * @timestamp: the timestamp of the buffer that starts a new key unit
+ * @stream_time: the stream_time of the buffer that starts a new key unit
+ * @running_time: the running_time of the buffer that starts a new key unit
+ * @all_headers: %TRUE to produce headers when starting a new key unit
+ * @count: integer that can be used to number key units
+ *
+ * Creates a new downstream force key unit event. A downstream force key unit
+ * event can be sent down the pipeline to request downstream elements to produce
+ * a key unit. A downstream force key unit event must also be sent when handling
+ * an upstream force key unit event to notify downstream that the latter has been
+ * handled.
+ *
+ * To parse an event created by gst_video_event_new_downstream_force_key_unit() use
+ * gst_video_event_parse_downstream_force_key_unit().
+ *
+ * Returns: The new GstEvent
+ * Since: 0.10.36
+ */
+GstEvent *
+gst_video_event_new_downstream_force_key_unit (GstClockTime timestamp,
+ GstClockTime stream_time, GstClockTime running_time, gboolean all_headers,
+ guint count)
+{
+ GstEvent *force_key_unit_event;
+ GstStructure *s;
+
+ s = gst_structure_new (GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME,
+ "timestamp", G_TYPE_UINT64, timestamp,
+ "stream-time", G_TYPE_UINT64, stream_time,
+ "running-time", G_TYPE_UINT64, running_time,
+ "all-headers", G_TYPE_BOOLEAN, all_headers,
+ "count", G_TYPE_UINT, count, NULL);
+ force_key_unit_event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s);
+
+ return force_key_unit_event;
+}
+
+/**
+ * gst_video_event_new_upstream_force_key_unit:
+ * @running_time: the running_time at which a new key unit should be produced
+ * @all_headers: %TRUE to produce headers when starting a new key unit
+ * @count: integer that can be used to number key units
+ *
+ * Creates a new upstream force key unit event. An upstream force key unit event
+ * can be sent to request upstream elements to produce a key unit.
+ *
+ * @running_time can be set to request a new key unit at a specific
+ * running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
+ * new key unit as soon as possible.
+ *
+ * To parse an event created by gst_video_event_new_downstream_force_key_unit() use
+ * gst_video_event_parse_downstream_force_key_unit().
+ *
+ * Returns: The new GstEvent
+ * Since: 0.10.36
+ */
+GstEvent *
+gst_video_event_new_upstream_force_key_unit (GstClockTime running_time,
+ gboolean all_headers, guint count)
+{
+ GstEvent *force_key_unit_event;
+ GstStructure *s;
+
+ s = gst_structure_new (GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME,
+ "running-time", GST_TYPE_CLOCK_TIME, running_time,
+ "all-headers", G_TYPE_BOOLEAN, all_headers,
+ "count", G_TYPE_UINT, count, NULL);
+ force_key_unit_event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, s);
+
+ return force_key_unit_event;
+}
+
+/**
+ * gst_video_event_is_force_key_unit:
+ * @event: A #GstEvent to check
+ *
+ * Checks if an event is a force key unit event. Returns true for both upstream
+ * and downstream force key unit events.
+ *
+ * Returns: %TRUE if the event is a valid force key unit event
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_event_is_force_key_unit (GstEvent * event)
+{
+ const GstStructure *s;
+
+ g_return_val_if_fail (event != NULL, FALSE);
+
+ if (GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_DOWNSTREAM &&
+ GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_UPSTREAM)
+ return FALSE; /* Not a force key unit event */
+
+ s = gst_event_get_structure (event);
+ if (s == NULL
+ || !gst_structure_has_name (s, GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME))
+ return FALSE;
+
+ return TRUE;
+}
+
+/**
+ * gst_video_event_parse_downstream_force_key_unit:
+ * @event: A #GstEvent to parse
+ * @timestamp: (out): A pointer to the timestamp in the event
+ * @stream_time: (out): A pointer to the stream-time in the event
+ * @running_time: (out): A pointer to the running-time in the event
+ * @all_headers: (out): A pointer to the all_headers flag in the event
+ * @count: (out): A pointer to the count field of the event
+ *
+ * Get timestamp, stream-time, running-time, all-headers and count in the force
+ * key unit event. See gst_video_event_new_downstream_force_key_unit() for a
+ * full description of the downstream force key unit event.
+ *
+ * Returns: %TRUE if the event is a valid downstream force key unit event.
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_event_parse_downstream_force_key_unit (GstEvent * event,
+ GstClockTime * timestamp, GstClockTime * stream_time,
+ GstClockTime * running_time, gboolean * all_headers, guint * count)
+{
+ const GstStructure *s;
+ GstClockTime ev_timestamp, ev_stream_time, ev_running_time;
+ gboolean ev_all_headers;
+ guint ev_count;
+
+ g_return_val_if_fail (event != NULL, FALSE);
+
+ if (GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_DOWNSTREAM)
+ return FALSE; /* Not a force key unit event */
+
+ s = gst_event_get_structure (event);
+ if (s == NULL
+ || !gst_structure_has_name (s, GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME))
+ return FALSE;
+
+ if (!gst_structure_get_clock_time (s, "timestamp", &ev_timestamp))
+ return FALSE; /* Not a force key unit event */
+ if (!gst_structure_get_clock_time (s, "stream-time", &ev_stream_time))
+ return FALSE; /* Not a force key unit event */
+ if (!gst_structure_get_clock_time (s, "running-time", &ev_running_time))
+ return FALSE; /* Not a force key unit event */
+ if (!gst_structure_get_boolean (s, "all-headers", &ev_all_headers))
+ return FALSE; /* Not a force key unit event */
+ if (!gst_structure_get_uint (s, "count", &ev_count))
+ return FALSE; /* Not a force key unit event */
+
+ if (timestamp)
+ *timestamp = ev_timestamp;
+
+ if (stream_time)
+ *stream_time = ev_stream_time;
+
+ if (running_time)
+ *running_time = ev_running_time;
+
+ if (all_headers)
+ *all_headers = ev_all_headers;
+
+ if (count)
+ *count = ev_count;
+
+ return TRUE;
+}
+
+/**
+ * gst_video_event_parse_upstream_force_key_unit:
+ * @event: A #GstEvent to parse
+ * @running_time: (out): A pointer to the running_time in the event
+ * @all_headers: (out): A pointer to the all_headers flag in the event
+ * @count: (out): A pointer to the count field in the event
+ *
+ * Get running-time, all-headers and count in the force key unit event. See
+ * gst_video_event_new_upstream_force_key_unit() for a full description of the
+ * upstream force key unit event.
+ *
+ * Create an upstream force key unit event using gst_video_event_new_upstream_force_key_unit()
+ *
+ * Returns: %TRUE if the event is a valid upstream force-key-unit event. %FALSE if not
+ * Since: 0.10.36
+ */
+gboolean
+gst_video_event_parse_upstream_force_key_unit (GstEvent * event,
+ GstClockTime * running_time, gboolean * all_headers, guint * count)
+{
+ const GstStructure *s;
+ GstClockTime ev_running_time;
+ gboolean ev_all_headers;
+ guint ev_count;
+
+ g_return_val_if_fail (event != NULL, FALSE);
+
+ if (GST_EVENT_TYPE (event) != GST_EVENT_CUSTOM_UPSTREAM)
+ return FALSE; /* Not a force key unit event */
+
+ s = gst_event_get_structure (event);
+ if (s == NULL
+ || !gst_structure_has_name (s, GST_VIDEO_EVENT_FORCE_KEY_UNIT_NAME))
+ return FALSE;
+
+ if (!gst_structure_get_clock_time (s, "running-time", &ev_running_time))
+ return FALSE; /* Not a force key unit event */
+ if (!gst_structure_get_boolean (s, "all-headers", &ev_all_headers))
+ return FALSE; /* Not a force key unit event */
+ if (!gst_structure_get_uint (s, "count", &ev_count))
+ return FALSE; /* Not a force key unit event */
+
+ if (running_time)
+ *running_time = ev_running_time;
+
+ if (all_headers)
+ *all_headers = ev_all_headers;
+
+ if (count)
+ *count = ev_count;
+
+ return TRUE;
+}
#define GST_VIDEO_BUFFER_PROGRESSIVE GST_BUFFER_FLAG_MEDIA4
/* functions */
-const GValue *gst_video_frame_rate (GstPad *pad);
-gboolean gst_video_get_size (GstPad *pad,
- gint *width,
- gint *height);
-
-gboolean gst_video_calculate_display_ratio (guint *dar_n, guint *dar_d,
- guint video_width, guint video_height,
- guint video_par_n, guint video_par_d,
- guint display_par_n, guint display_par_d);
-
-gboolean gst_video_format_parse_caps (GstCaps *caps, GstVideoFormat *format,
- int *width, int *height);
-gboolean gst_video_format_parse_caps_interlaced (GstCaps *caps, gboolean *interlaced);
-gboolean gst_video_parse_caps_framerate (GstCaps *caps,
- int *fps_n, int *fps_d);
-gboolean gst_video_parse_caps_pixel_aspect_ratio (GstCaps *caps,
- int *par_n, int *par_d);
-const char *gst_video_parse_caps_color_matrix (GstCaps * caps);
-const char *gst_video_parse_caps_chroma_site (GstCaps * caps);
-GstBuffer *gst_video_parse_caps_palette (GstCaps * caps);
-GstCaps * gst_video_format_new_caps (GstVideoFormat format,
- int width, int height, int framerate_n, int framerate_d,
- int par_n, int par_d);
-GstCaps * gst_video_format_new_caps_interlaced (GstVideoFormat format,
- int width, int height, int framerate_n, int framerate_d,
- int par_n, int par_d, gboolean interlaced);
-GstCaps * gst_video_format_new_template_caps (GstVideoFormat format);
-GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc);
-guint32 gst_video_format_to_fourcc (GstVideoFormat format);
-gboolean gst_video_format_is_rgb (GstVideoFormat format);
-gboolean gst_video_format_is_yuv (GstVideoFormat format);
-gboolean gst_video_format_is_gray (GstVideoFormat format);
-gboolean gst_video_format_has_alpha (GstVideoFormat format);
-int gst_video_format_get_component_depth (GstVideoFormat format, int component);
-int gst_video_format_get_row_stride (GstVideoFormat format, int component,
- int width);
-int gst_video_format_get_pixel_stride (GstVideoFormat format, int component);
-int gst_video_format_get_component_width (GstVideoFormat format, int component,
- int width);
-int gst_video_format_get_component_height (GstVideoFormat format, int component,
- int height);
-int gst_video_format_get_component_offset (GstVideoFormat format, int component,
- int width, int height);
-int gst_video_format_get_size (GstVideoFormat format, int width, int height);
-gboolean gst_video_format_convert (GstVideoFormat format, int width, int height,
- int fps_n, int fps_d,
- GstFormat src_format, gint64 src_value,
- GstFormat dest_format, gint64 * dest_value);
-
-GstEvent *gst_video_event_new_still_frame (gboolean in_still);
-gboolean gst_video_event_parse_still_frame (GstEvent *event, gboolean *in_still);
-
-GstBuffer *gst_video_convert_frame(GstBuffer *buf, const GstCaps *to_caps,
- GstClockTime timeout, GError **error);
-
-typedef void (*GstVideoConvertFrameCallback) (GstBuffer *buf, GError *error, gpointer user_data);
-void gst_video_convert_frame_async(GstBuffer *buf, const GstCaps *to_caps,
- GstClockTime timeout, GstVideoConvertFrameCallback callback,
- gpointer user_data, GDestroyNotify destroy_notify);
+
+const GValue * gst_video_frame_rate (GstPad * pad);
+
+gboolean gst_video_get_size (GstPad * pad,
+ gint * width,
+ gint * height);
+
+gboolean gst_video_calculate_display_ratio (guint * dar_n,
+ guint * dar_d,
+ guint video_width,
+ guint video_height,
+ guint video_par_n,
+ guint video_par_d,
+ guint display_par_n,
+ guint display_par_d);
+
+gboolean gst_video_format_parse_caps (const GstCaps * caps,
+ GstVideoFormat * format,
+ int * width,
+ int * height);
+
+gboolean gst_video_format_parse_caps_interlaced (GstCaps * caps,
+ gboolean * interlaced);
+
+
+gboolean gst_video_parse_caps_pixel_aspect_ratio (GstCaps * caps,
+ int * par_n,
+ int * par_d);
+
+gboolean gst_video_parse_caps_framerate (GstCaps * caps,
+ int * fps_n,
+ int * fps_d);
+
+const char * gst_video_parse_caps_color_matrix (GstCaps * caps);
+
+const char * gst_video_parse_caps_chroma_site (GstCaps * caps);
+
+GstBuffer * gst_video_parse_caps_palette (GstCaps * caps);
+
+/* create caps given format and details */
+
+GstCaps * gst_video_format_new_caps (GstVideoFormat format,
+ int width, int height,
+ int framerate_n,
+ int framerate_d,
+ int par_n, int par_d);
+
+GstCaps * gst_video_format_new_caps_interlaced (GstVideoFormat format,
+ int width, int height,
+ int framerate_n,
+ int framerate_d,
+ int par_n, int par_d,
+ gboolean interlaced);
+
+GstCaps * gst_video_format_new_template_caps (GstVideoFormat format);
+
+/* format properties */
+
+GstVideoFormat gst_video_format_from_fourcc (guint32 fourcc) G_GNUC_CONST;
+
+guint32 gst_video_format_to_fourcc (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean gst_video_format_is_rgb (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean gst_video_format_is_yuv (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean gst_video_format_is_gray (GstVideoFormat format) G_GNUC_CONST;
+
+gboolean gst_video_format_has_alpha (GstVideoFormat format) G_GNUC_CONST;
+
+
+int gst_video_format_get_component_depth (GstVideoFormat format,
+ int component) G_GNUC_CONST;
+
+int gst_video_format_get_row_stride (GstVideoFormat format,
+ int component,
+ int width) G_GNUC_CONST;
+
+int gst_video_format_get_pixel_stride (GstVideoFormat format,
+ int component) G_GNUC_CONST;
+
+int gst_video_format_get_component_width (GstVideoFormat format,
+ int component,
+ int width) G_GNUC_CONST;
+
+int gst_video_format_get_component_height (GstVideoFormat format,
+ int component,
+ int height) G_GNUC_CONST;
+
+int gst_video_format_get_component_offset (GstVideoFormat format,
+ int component,
+ int width,
+ int height) G_GNUC_CONST;
+
+int gst_video_format_get_size (GstVideoFormat format,
+ int width,
+ int height) G_GNUC_CONST;
+
+gboolean gst_video_get_size_from_caps (const GstCaps * caps, gint * size);
+
+gboolean gst_video_format_convert (GstVideoFormat format,
+ int width,
+ int height,
+ int fps_n,
+ int fps_d,
+ GstFormat src_format,
+ gint64 src_value,
+ GstFormat dest_format,
+ gint64 * dest_value);
+
+/* video still frame event creation and parsing */
+
+GstEvent * gst_video_event_new_still_frame (gboolean in_still);
+
+gboolean gst_video_event_parse_still_frame (GstEvent * event, gboolean * in_still);
+
+/* video force key unit event creation and parsing */
+
+GstEvent * gst_video_event_new_downstream_force_key_unit (GstClockTime timestamp,
+ GstClockTime streamtime,
+ GstClockTime runningtime,
+ gboolean all_headers,
+ guint count);
+
+gboolean gst_video_event_parse_downstream_force_key_unit (GstEvent * event,
+ GstClockTime * timestamp,
+ GstClockTime * streamtime,
+ GstClockTime * runningtime,
+ gboolean * all_headers,
+ guint * count);
+
+GstEvent * gst_video_event_new_upstream_force_key_unit (GstClockTime running_time,
+ gboolean all_headers,
+ guint count);
+
+gboolean gst_video_event_parse_upstream_force_key_unit (GstEvent * event,
+ GstClockTime * running_time,
+ gboolean * all_headers,
+ guint * count);
+
+gboolean gst_video_event_is_force_key_unit(GstEvent *event);
+
+/* convert/encode video frame from one format to another */
+
+typedef void (*GstVideoConvertFrameCallback) (GstBuffer * buf, GError *error, gpointer user_data);
+
+void gst_video_convert_frame_async (GstBuffer * buf,
+ const GstCaps * to_caps,
+ GstClockTime timeout,
+ GstVideoConvertFrameCallback callback,
+ gpointer user_data,
+ GDestroyNotify destroy_notify);
+
+GstBuffer * gst_video_convert_frame (GstBuffer * buf,
+ const GstCaps * to_caps,
+ GstClockTime timeout,
+ GError ** error);
G_END_DECLS
--- /dev/null
+
+/* autogenerated from videoblendorc.orc */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <glib.h>
+
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+typedef int8_t orc_int8;
+typedef int16_t orc_int16;
+typedef int32_t orc_int32;
+typedef int64_t orc_int64;
+typedef uint8_t orc_uint8;
+typedef uint16_t orc_uint16;
+typedef uint32_t orc_uint32;
+typedef uint64_t orc_uint64;
+#define ORC_UINT64_C(x) UINT64_C(x)
+#elif defined(_MSC_VER)
+typedef signed __int8 orc_int8;
+typedef signed __int16 orc_int16;
+typedef signed __int32 orc_int32;
+typedef signed __int64 orc_int64;
+typedef unsigned __int8 orc_uint8;
+typedef unsigned __int16 orc_uint16;
+typedef unsigned __int32 orc_uint32;
+typedef unsigned __int64 orc_uint64;
+#define ORC_UINT64_C(x) (x##Ui64)
+#define inline __inline
+#else
+#include <limits.h>
+typedef signed char orc_int8;
+typedef short orc_int16;
+typedef int orc_int32;
+typedef unsigned char orc_uint8;
+typedef unsigned short orc_uint16;
+typedef unsigned int orc_uint32;
+#if INT_MAX == LONG_MAX
+typedef long long orc_int64;
+typedef unsigned long long orc_uint64;
+#define ORC_UINT64_C(x) (x##ULL)
+#else
+typedef long orc_int64;
+typedef unsigned long orc_uint64;
+#define ORC_UINT64_C(x) (x##UL)
+#endif
+#endif
+typedef union
+{
+ orc_int16 i;
+ orc_int8 x2[2];
+} orc_union16;
+typedef union
+{
+ orc_int32 i;
+ float f;
+ orc_int16 x2[2];
+ orc_int8 x4[4];
+} orc_union32;
+typedef union
+{
+ orc_int64 i;
+ double f;
+ orc_int32 x2[2];
+ float x2f[2];
+ orc_int16 x4[4];
+} orc_union64;
+#endif
+#ifndef ORC_RESTRICT
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define ORC_RESTRICT restrict
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ORC_RESTRICT __restrict__
+#else
+#define ORC_RESTRICT
+#endif
+#endif
+
+#ifndef DISABLE_ORC
+#include <orc/orc.h>
+#endif
+void orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n);
+void orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n);
+void cogorc_getline_I420 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_A420 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+ const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+ const guint8 * ORC_RESTRICT s1, int n);
+void orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
+void orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
+ const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
+ int p1, int n);
+
+
+/* begin Orc C target preamble */
+#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
+#define ORC_ABS(a) ((a)<0 ? -(a) : (a))
+#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
+#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b))
+#define ORC_SB_MAX 127
+#define ORC_SB_MIN (-1-ORC_SB_MAX)
+#define ORC_UB_MAX 255
+#define ORC_UB_MIN 0
+#define ORC_SW_MAX 32767
+#define ORC_SW_MIN (-1-ORC_SW_MAX)
+#define ORC_UW_MAX 65535
+#define ORC_UW_MIN 0
+#define ORC_SL_MAX 2147483647
+#define ORC_SL_MIN (-1-ORC_SL_MAX)
+#define ORC_UL_MAX 4294967295U
+#define ORC_UL_MIN 0
+#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX)
+#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX)
+#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX)
+#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX)
+#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX)
+#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX)
+#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8))
+#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24))
+#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56))
+#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset)))
+#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff))
+#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0))
+#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff)))
+#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0))
+#ifndef ORC_RESTRICT
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define ORC_RESTRICT restrict
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ORC_RESTRICT __restrict__
+#else
+#define ORC_RESTRICT
+#endif
+#endif
+/* end Orc C target preamble */
+
+
+
+/* orc_blend_little */
+#ifdef DISABLE_ORC
+void
+orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_int8 var42;
+ orc_union32 var43;
+ orc_union64 var44;
+ orc_union64 var45;
+ orc_union64 var46;
+ orc_union32 var47;
+ orc_union64 var48;
+ orc_union64 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union32 var53;
+ orc_union32 var54;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+ /* 14: loadpl */
+ var39.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: convlw */
+ var41.i = var40.i;
+ /* 2: convwb */
+ var42 = var41.i;
+ /* 3: splatbl */
+ var43.i =
+ ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
+ | (var42 & 0xff);
+ /* 4: convubw */
+ var44.x4[0] = (orc_uint8) var43.x4[0];
+ var44.x4[1] = (orc_uint8) var43.x4[1];
+ var44.x4[2] = (orc_uint8) var43.x4[2];
+ var44.x4[3] = (orc_uint8) var43.x4[3];
+ /* 5: shruw */
+ var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
+ var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
+ var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
+ var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
+ /* 6: convubw */
+ var46.x4[0] = (orc_uint8) var40.x4[0];
+ var46.x4[1] = (orc_uint8) var40.x4[1];
+ var46.x4[2] = (orc_uint8) var40.x4[2];
+ var46.x4[3] = (orc_uint8) var40.x4[3];
+ /* 7: loadl */
+ var47 = ptr0[i];
+ /* 8: convubw */
+ var48.x4[0] = (orc_uint8) var47.x4[0];
+ var48.x4[1] = (orc_uint8) var47.x4[1];
+ var48.x4[2] = (orc_uint8) var47.x4[2];
+ var48.x4[3] = (orc_uint8) var47.x4[3];
+ /* 9: subw */
+ var49.x4[0] = var46.x4[0] - var48.x4[0];
+ var49.x4[1] = var46.x4[1] - var48.x4[1];
+ var49.x4[2] = var46.x4[2] - var48.x4[2];
+ var49.x4[3] = var46.x4[3] - var48.x4[3];
+ /* 10: mullw */
+ var50.x4[0] = (var49.x4[0] * var45.x4[0]) & 0xffff;
+ var50.x4[1] = (var49.x4[1] * var45.x4[1]) & 0xffff;
+ var50.x4[2] = (var49.x4[2] * var45.x4[2]) & 0xffff;
+ var50.x4[3] = (var49.x4[3] * var45.x4[3]) & 0xffff;
+ /* 11: div255w */
+ var51.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
+ (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
+ var51.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
+ (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
+ var51.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
+ (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
+ var51.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
+ (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
+ /* 12: addw */
+ var52.x4[0] = var48.x4[0] + var51.x4[0];
+ var52.x4[1] = var48.x4[1] + var51.x4[1];
+ var52.x4[2] = var48.x4[2] + var51.x4[2];
+ var52.x4[3] = var48.x4[3] + var51.x4[3];
+ /* 13: convwb */
+ var53.x4[0] = var52.x4[0];
+ var53.x4[1] = var52.x4[1];
+ var53.x4[2] = var52.x4[2];
+ var53.x4[3] = var52.x4[3];
+ /* 15: orl */
+ var54.i = var53.i | var39.i;
+ /* 16: storel */
+ ptr0[i] = var54;
+ }
+
+}
+
+#else
+static void
+_backup_orc_blend_little (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_int8 var42;
+ orc_union32 var43;
+ orc_union64 var44;
+ orc_union64 var45;
+ orc_union64 var46;
+ orc_union32 var47;
+ orc_union64 var48;
+ orc_union64 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union32 var53;
+ orc_union32 var54;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+ /* 14: loadpl */
+ var39.i = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: convlw */
+ var41.i = var40.i;
+ /* 2: convwb */
+ var42 = var41.i;
+ /* 3: splatbl */
+ var43.i =
+ ((var42 & 0xff) << 24) | ((var42 & 0xff) << 16) | ((var42 & 0xff) << 8)
+ | (var42 & 0xff);
+ /* 4: convubw */
+ var44.x4[0] = (orc_uint8) var43.x4[0];
+ var44.x4[1] = (orc_uint8) var43.x4[1];
+ var44.x4[2] = (orc_uint8) var43.x4[2];
+ var44.x4[3] = (orc_uint8) var43.x4[3];
+ /* 5: shruw */
+ var45.x4[0] = ((orc_uint16) var44.x4[0]) >> 8;
+ var45.x4[1] = ((orc_uint16) var44.x4[1]) >> 8;
+ var45.x4[2] = ((orc_uint16) var44.x4[2]) >> 8;
+ var45.x4[3] = ((orc_uint16) var44.x4[3]) >> 8;
+ /* 6: convubw */
+ var46.x4[0] = (orc_uint8) var40.x4[0];
+ var46.x4[1] = (orc_uint8) var40.x4[1];
+ var46.x4[2] = (orc_uint8) var40.x4[2];
+ var46.x4[3] = (orc_uint8) var40.x4[3];
+ /* 7: loadl */
+ var47 = ptr0[i];
+ /* 8: convubw */
+ var48.x4[0] = (orc_uint8) var47.x4[0];
+ var48.x4[1] = (orc_uint8) var47.x4[1];
+ var48.x4[2] = (orc_uint8) var47.x4[2];
+ var48.x4[3] = (orc_uint8) var47.x4[3];
+ /* 9: subw */
+ var49.x4[0] = var46.x4[0] - var48.x4[0];
+ var49.x4[1] = var46.x4[1] - var48.x4[1];
+ var49.x4[2] = var46.x4[2] - var48.x4[2];
+ var49.x4[3] = var46.x4[3] - var48.x4[3];
+ /* 10: mullw */
+ var50.x4[0] = (var49.x4[0] * var45.x4[0]) & 0xffff;
+ var50.x4[1] = (var49.x4[1] * var45.x4[1]) & 0xffff;
+ var50.x4[2] = (var49.x4[2] * var45.x4[2]) & 0xffff;
+ var50.x4[3] = (var49.x4[3] * var45.x4[3]) & 0xffff;
+ /* 11: div255w */
+ var51.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[0] + 128)) +
+ (((orc_uint16) (var50.x4[0] + 128)) >> 8))) >> 8;
+ var51.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[1] + 128)) +
+ (((orc_uint16) (var50.x4[1] + 128)) >> 8))) >> 8;
+ var51.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[2] + 128)) +
+ (((orc_uint16) (var50.x4[2] + 128)) >> 8))) >> 8;
+ var51.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var50.x4[3] + 128)) +
+ (((orc_uint16) (var50.x4[3] + 128)) >> 8))) >> 8;
+ /* 12: addw */
+ var52.x4[0] = var48.x4[0] + var51.x4[0];
+ var52.x4[1] = var48.x4[1] + var51.x4[1];
+ var52.x4[2] = var48.x4[2] + var51.x4[2];
+ var52.x4[3] = var48.x4[3] + var51.x4[3];
+ /* 13: convwb */
+ var53.x4[0] = var52.x4[0];
+ var53.x4[1] = var52.x4[1];
+ var53.x4[2] = var52.x4[2];
+ var53.x4[3] = var52.x4[3];
+ /* 15: orl */
+ var54.i = var53.i | var39.i;
+ /* 16: storel */
+ ptr0[i] = var54;
+ }
+
+}
+
+void
+orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "orc_blend_little");
+ orc_program_set_backup_function (p, _backup_orc_blend_little);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0x000000ff, "c1");
+ orc_program_add_constant (p, 4, 0x00000008, "c2");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 8, "t5");
+ orc_program_add_temporary (p, 8, "t6");
+ orc_program_add_temporary (p, 8, "t7");
+
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shruw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* orc_blend_big */
+#ifdef DISABLE_ORC
+void
+orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_union32 var45;
+ orc_union64 var46;
+ orc_union64 var47;
+ orc_union64 var48;
+ orc_union32 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union32 var55;
+ orc_union32 var56;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+ /* 15: loadpl */
+ var40.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var41 = ptr4[i];
+ /* 1: shrul */
+ var42.i = ((orc_uint32) var41.i) >> 24;
+ /* 2: convlw */
+ var43.i = var42.i;
+ /* 3: convwb */
+ var44 = var43.i;
+ /* 4: splatbl */
+ var45.i =
+ ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
+ | (var44 & 0xff);
+ /* 5: convubw */
+ var46.x4[0] = (orc_uint8) var45.x4[0];
+ var46.x4[1] = (orc_uint8) var45.x4[1];
+ var46.x4[2] = (orc_uint8) var45.x4[2];
+ var46.x4[3] = (orc_uint8) var45.x4[3];
+ /* 6: shruw */
+ var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
+ var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
+ var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
+ var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+ /* 7: convubw */
+ var48.x4[0] = (orc_uint8) var41.x4[0];
+ var48.x4[1] = (orc_uint8) var41.x4[1];
+ var48.x4[2] = (orc_uint8) var41.x4[2];
+ var48.x4[3] = (orc_uint8) var41.x4[3];
+ /* 8: loadl */
+ var49 = ptr0[i];
+ /* 9: convubw */
+ var50.x4[0] = (orc_uint8) var49.x4[0];
+ var50.x4[1] = (orc_uint8) var49.x4[1];
+ var50.x4[2] = (orc_uint8) var49.x4[2];
+ var50.x4[3] = (orc_uint8) var49.x4[3];
+ /* 10: subw */
+ var51.x4[0] = var48.x4[0] - var50.x4[0];
+ var51.x4[1] = var48.x4[1] - var50.x4[1];
+ var51.x4[2] = var48.x4[2] - var50.x4[2];
+ var51.x4[3] = var48.x4[3] - var50.x4[3];
+ /* 11: mullw */
+ var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
+ var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
+ var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
+ var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
+ /* 12: div255w */
+ var53.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
+ (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
+ var53.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
+ (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
+ var53.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
+ (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
+ var53.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
+ (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
+ /* 13: addw */
+ var54.x4[0] = var50.x4[0] + var53.x4[0];
+ var54.x4[1] = var50.x4[1] + var53.x4[1];
+ var54.x4[2] = var50.x4[2] + var53.x4[2];
+ var54.x4[3] = var50.x4[3] + var53.x4[3];
+ /* 14: convwb */
+ var55.x4[0] = var54.x4[0];
+ var55.x4[1] = var54.x4[1];
+ var55.x4[2] = var54.x4[2];
+ var55.x4[3] = var54.x4[3];
+ /* 16: orl */
+ var56.i = var55.i | var40.i;
+ /* 17: storel */
+ ptr0[i] = var56;
+ }
+
+}
+
+#else
+static void
+_backup_orc_blend_big (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_union32 var45;
+ orc_union64 var46;
+ orc_union64 var47;
+ orc_union64 var48;
+ orc_union32 var49;
+ orc_union64 var50;
+ orc_union64 var51;
+ orc_union64 var52;
+ orc_union64 var53;
+ orc_union64 var54;
+ orc_union32 var55;
+ orc_union32 var56;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+ /* 15: loadpl */
+ var40.i = (int) 0xff000000; /* -16777216 or 2.11371e-314f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var41 = ptr4[i];
+ /* 1: shrul */
+ var42.i = ((orc_uint32) var41.i) >> 24;
+ /* 2: convlw */
+ var43.i = var42.i;
+ /* 3: convwb */
+ var44 = var43.i;
+ /* 4: splatbl */
+ var45.i =
+ ((var44 & 0xff) << 24) | ((var44 & 0xff) << 16) | ((var44 & 0xff) << 8)
+ | (var44 & 0xff);
+ /* 5: convubw */
+ var46.x4[0] = (orc_uint8) var45.x4[0];
+ var46.x4[1] = (orc_uint8) var45.x4[1];
+ var46.x4[2] = (orc_uint8) var45.x4[2];
+ var46.x4[3] = (orc_uint8) var45.x4[3];
+ /* 6: shruw */
+ var47.x4[0] = ((orc_uint16) var46.x4[0]) >> 8;
+ var47.x4[1] = ((orc_uint16) var46.x4[1]) >> 8;
+ var47.x4[2] = ((orc_uint16) var46.x4[2]) >> 8;
+ var47.x4[3] = ((orc_uint16) var46.x4[3]) >> 8;
+ /* 7: convubw */
+ var48.x4[0] = (orc_uint8) var41.x4[0];
+ var48.x4[1] = (orc_uint8) var41.x4[1];
+ var48.x4[2] = (orc_uint8) var41.x4[2];
+ var48.x4[3] = (orc_uint8) var41.x4[3];
+ /* 8: loadl */
+ var49 = ptr0[i];
+ /* 9: convubw */
+ var50.x4[0] = (orc_uint8) var49.x4[0];
+ var50.x4[1] = (orc_uint8) var49.x4[1];
+ var50.x4[2] = (orc_uint8) var49.x4[2];
+ var50.x4[3] = (orc_uint8) var49.x4[3];
+ /* 10: subw */
+ var51.x4[0] = var48.x4[0] - var50.x4[0];
+ var51.x4[1] = var48.x4[1] - var50.x4[1];
+ var51.x4[2] = var48.x4[2] - var50.x4[2];
+ var51.x4[3] = var48.x4[3] - var50.x4[3];
+ /* 11: mullw */
+ var52.x4[0] = (var51.x4[0] * var47.x4[0]) & 0xffff;
+ var52.x4[1] = (var51.x4[1] * var47.x4[1]) & 0xffff;
+ var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
+ var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
+ /* 12: div255w */
+ var53.x4[0] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) +
+ (((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8;
+ var53.x4[1] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
+ (((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
+ var53.x4[2] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
+ (((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
+ var53.x4[3] =
+ ((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
+ (((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
+ /* 13: addw */
+ var54.x4[0] = var50.x4[0] + var53.x4[0];
+ var54.x4[1] = var50.x4[1] + var53.x4[1];
+ var54.x4[2] = var50.x4[2] + var53.x4[2];
+ var54.x4[3] = var50.x4[3] + var53.x4[3];
+ /* 14: convwb */
+ var55.x4[0] = var54.x4[0];
+ var55.x4[1] = var54.x4[1];
+ var55.x4[2] = var54.x4[2];
+ var55.x4[3] = var54.x4[3];
+ /* 16: orl */
+ var56.i = var55.i | var40.i;
+ /* 17: storel */
+ ptr0[i] = var56;
+ }
+
+}
+
+void
+orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "orc_blend_big");
+ orc_program_set_backup_function (p, _backup_orc_blend_big);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0xff000000, "c1");
+ orc_program_add_constant (p, 4, 0x00000018, "c2");
+ orc_program_add_constant (p, 4, 0x00000008, "c3");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+ orc_program_add_temporary (p, 8, "t6");
+ orc_program_add_temporary (p, 8, "t7");
+ orc_program_add_temporary (p, 8, "t8");
+
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shrul", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_C2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splatbl", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shruw", 2, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_C3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "loadl", 0, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 2, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "div255w", 2, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 2, ORC_VAR_T6, ORC_VAR_T6, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convwb", 2, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "orl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "storel", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_I420 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_I420 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_I420");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_I420);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_I420 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var42.x2[0] = _src.x2[1];
+ var43.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var42.x2[1] = _src.x2[1];
+ var43.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[0];
+ var44.x2[0] = _src.x2[1];
+ var45.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[1];
+ var44.x2[1] = _src.x2[1];
+ var45.x2[1] = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 6: avgub */
+ var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
+ /* 7: storeb */
+ ptr1[i] = var40;
+ /* 8: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var48 = _src.x2[1];
+ var49 = _src.x2[0];
+ }
+ /* 9: avgub */
+ var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
+ /* 10: storeb */
+ ptr2[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_I420 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var42.x2[0] = _src.x2[1];
+ var43.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var42.x2[1] = _src.x2[1];
+ var43.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[0];
+ var44.x2[0] = _src.x2[1];
+ var45.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var42.x2[1];
+ var44.x2[1] = _src.x2[1];
+ var45.x2[1] = _src.x2[0];
+ }
+ /* 5: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 6: avgub */
+ var40 = ((orc_uint8) var46 + (orc_uint8) var47 + 1) >> 1;
+ /* 7: storeb */
+ ptr1[i] = var40;
+ /* 8: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var48 = _src.x2[1];
+ var49 = _src.x2[0];
+ }
+ /* 9: avgub */
+ var41 = ((orc_uint8) var48 + (orc_uint8) var49 + 1) >> 1;
+ /* 10: storeb */
+ ptr2[i] = var41;
+ }
+
+}
+
+void
+cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_I420");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_I420);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_YUY2 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_YUY2");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_YUY2);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 2, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_YUY2 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_YUY2 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_YUY2");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_YUY2);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_UYVY */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var44.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var44.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union32 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var43.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var43.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 4: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var44.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var44.x2[1] = _src.x2[1];
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[0];
+ _dest.x2[1] = var44.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var43.x2[1];
+ _dest.x2[1] = var44.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_UYVY");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_UYVY);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+ orc_program_add_temporary (p, 4, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_UYVY */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var40.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_UYVY (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_union32 var41;
+ orc_union32 var42;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+ /* 2: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var36 = ptr4[i];
+ /* 1: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var40.i;
+ var42.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var42.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var42.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 6: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_UYVY");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_UYVY);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 2, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_YUV9 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union64 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union16 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 4: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var40 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var41 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var40;
+ _dest.x2[1] = var41;
+ var42.i = _dest.i;
+ }
+ /* 3: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var42.i;
+ var43.i = _dest.i;
+ }
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var38.x2[0];
+ var44.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var38.x2[1];
+ var44.x2[1] = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var39;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_YUV9 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union64 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union16 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 4: loadpb */
+ var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var40 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var41 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var40;
+ _dest.x2[1] = var41;
+ var42.i = _dest.i;
+ }
+ /* 3: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var42.i;
+ var43.i = _dest.i;
+ }
+ /* 5: loadw */
+ var38 = ptr4[i];
+ /* 6: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[0];
+ _dest.x2[1] = var38.x2[0];
+ var44.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var37.x2[1];
+ _dest.x2[1] = var38.x2[1];
+ var44.x2[1] = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var39.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var44.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var39.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var39;
+ }
+
+}
+
+void
+cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_YUV9");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_YUV9);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T5, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y42B */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 3: loadpb */
+ var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var36 = ptr5[i];
+ /* 1: loadb */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var41.i = _dest.i;
+ }
+ /* 4: loadw */
+ var39 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var40;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y42B (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union64 var40;
+ orc_union16 var41;
+ orc_union32 var42;
+ orc_union32 var43;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 3: loadpb */
+ var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var36 = ptr5[i];
+ /* 1: loadb */
+ var37 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var41.i = _dest.i;
+ }
+ /* 4: loadw */
+ var39 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var42.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var38.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var42.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.i;
+ _dest.x2[1] = var41.i;
+ var43.i = _dest.i;
+ }
+ /* 7: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[0];
+ _dest.x2[1] = var43.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.x2[1];
+ _dest.x2[1] = var43.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 8: storeq */
+ ptr0[i] = var40;
+ }
+
+}
+
+void
+cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_Y42B");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_Y42B);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+ orc_program_add_temporary (p, 4, "t4");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y42B */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 5: storeb */
+ ptr2[i] = var37;
+ /* 6: storeb */
+ ptr1[i] = var38;
+ /* 7: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 8: storew */
+ ptr0[i] = var39;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y42B (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_int8 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 3: avgub */
+ var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 4: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var44.i;
+ var37 = _src.x2[1];
+ var38 = _src.x2[0];
+ }
+ /* 5: storeb */
+ ptr2[i] = var37;
+ /* 6: storeb */
+ ptr1[i] = var38;
+ /* 7: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 8: storew */
+ ptr0[i] = var39;
+ }
+
+}
+
+void
+cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_Y42B");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_Y42B);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y444 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr5[i];
+ /* 1: loadb */
+ var35 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var34;
+ _dest.x2[1] = var35;
+ var39.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var40.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var39.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y444 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ orc_int8 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+
+ /* 3: loadpb */
+ var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var34 = ptr5[i];
+ /* 1: loadb */
+ var35 = ptr6[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var34;
+ _dest.x2[1] = var35;
+ var39.i = _dest.i;
+ }
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var40.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.i;
+ _dest.x2[1] = var39.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_Y444");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_Y444);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y444 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_int8 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_int8 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var38.i = _src.x2[1];
+ var39.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 3: storeb */
+ ptr2[i] = var35;
+ /* 4: storeb */
+ ptr1[i] = var36;
+ /* 5: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var37 = _src.x2[1];
+ }
+ /* 6: storeb */
+ ptr0[i] = var37;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y444 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_int8 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_int8 var35;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_int8 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var38.i = _src.x2[1];
+ var39.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var38.i;
+ var35 = _src.x2[1];
+ var36 = _src.x2[0];
+ }
+ /* 3: storeb */
+ ptr2[i] = var35;
+ /* 4: storeb */
+ ptr1[i] = var36;
+ /* 5: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var39.i;
+ var37 = _src.x2[1];
+ }
+ /* 6: storeb */
+ ptr0[i] = var37;
+ }
+
+}
+
+void
+cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_Y444");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_Y444);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y800 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+
+ /* 0: loadpb */
+ var33 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 3: loadpw */
+ var35.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 1: loadb */
+ var34 = ptr4[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var37.i;
+ _dest.x2[1] = var35.i;
+ var36.i = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y800 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ orc_int8 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+ orc_union32 var36;
+ orc_union16 var37;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+
+ /* 0: loadpb */
+ var33 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 3: loadpw */
+ var35.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 1: loadb */
+ var34 = ptr4[i];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var33;
+ _dest.x2[1] = var34;
+ var37.i = _dest.i;
+ }
+ /* 4: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var37.i;
+ _dest.x2[1] = var35.i;
+ var36.i = _dest.i;
+ }
+ /* 5: storel */
+ ptr0[i] = var36;
+ }
+
+}
+
+void
+cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_Y800");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_Y800);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_constant (p, 2, 0x00008080, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y800 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+
+ ptr0 = (orc_int8 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var33.i;
+ var35.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var35.i;
+ var34 = _src.x2[1];
+ }
+ /* 3: storeb */
+ ptr0[i] = var34;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y800 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var33;
+ orc_int8 var34;
+ orc_union16 var35;
+
+ ptr0 = (orc_int8 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var33 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var33.i;
+ var35.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var35.i;
+ var34 = _src.x2[1];
+ }
+ /* 3: storeb */
+ ptr0[i] = var34;
+ }
+
+}
+
+void
+cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_Y800");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_Y800);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 2, "t1");
+
+ orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_Y16 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var36.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var36.i;
+ var37 = _src.x2[1];
+ }
+ /* 3: convubw */
+ var38.i = (orc_uint8) var37;
+ /* 4: shlw */
+ var35.i = var38.i << 8;
+ /* 5: storew */
+ ptr0[i] = var35;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_Y16 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var34;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var34 = ptr4[i];
+ /* 1: select0lw */
+ {
+ orc_union32 _src;
+ _src.i = var34.i;
+ var36.i = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var36.i;
+ var37 = _src.x2[1];
+ }
+ /* 3: convubw */
+ var38.i = (orc_uint8) var37;
+ /* 4: shlw */
+ var35.i = var38.i << 8;
+ /* 5: storew */
+ ptr0[i] = var35;
+ }
+
+}
+
+void
+cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_Y16");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_Y16);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_constant (p, 4, 0x00000008, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+
+ orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "shlw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_Y16 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_union16 var36;
+ orc_union32 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union16 *) s1;
+
+ /* 2: loadpb */
+ var35 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 4: loadpw */
+ var36.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr4[i];
+ /* 1: convhwb */
+ var38 = ((orc_uint16) var34.i) >> 8;
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35;
+ _dest.x2[1] = var38;
+ var39.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var36.i;
+ var37.i = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var37;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_Y16 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ orc_union16 var34;
+ orc_int8 var35;
+ orc_union16 var36;
+ orc_union32 var37;
+ orc_int8 var38;
+ orc_union16 var39;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+
+ /* 2: loadpb */
+ var35 = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ /* 4: loadpw */
+ var36.i = (int) 0x00008080; /* 32896 or 1.62528e-319f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr4[i];
+ /* 1: convhwb */
+ var38 = ((orc_uint16) var34.i) >> 8;
+ /* 3: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var35;
+ _dest.x2[1] = var38;
+ var39.i = _dest.i;
+ }
+ /* 5: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var36.i;
+ var37.i = _dest.i;
+ }
+ /* 6: storel */
+ ptr0[i] = var37;
+ }
+
+}
+
+void
+cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_Y16");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_Y16);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_constant (p, 2, 0x00008080, "c2");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+
+ orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C2,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_BGRA */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_BGRA (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+void
+cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_BGRA");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_BGRA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+
+ orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_BGRA */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_BGRA (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+ orc_union32 var33;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var32 = ptr4[i];
+ /* 1: swapl */
+ var33.i = ORC_SWAP_L (var32.i);
+ /* 2: storel */
+ ptr0[i] = var33;
+ }
+
+}
+
+void
+cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_BGRA");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_BGRA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+
+ orc_program_append_2 (p, "swapl", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_RGBA */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var49.i;
+ _dest.x2[1] = var48.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_RGBA (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var49.i;
+ _dest.x2[1] = var48.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_RGBA");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_RGBA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T4, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_RGBA */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_RGBA (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var46;
+ _dest.x2[1] = var45;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var44;
+ _dest.x2[1] = var47;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_RGBA");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_RGBA);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_ABGR */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_ABGR (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_ABGR");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_ABGR);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T7, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T8, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T7, ORC_VAR_T8,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_ABGR */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_ABGR (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_int8 var44;
+ orc_int8 var45;
+ orc_int8 var46;
+ orc_int8 var47;
+ orc_union16 var48;
+ orc_union16 var49;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadl */
+ var40 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 2: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var42.i;
+ var44 = _src.x2[1];
+ var45 = _src.x2[0];
+ }
+ /* 3: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.i;
+ var46 = _src.x2[1];
+ var47 = _src.x2[0];
+ }
+ /* 4: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var47;
+ _dest.x2[1] = var44;
+ var48.i = _dest.i;
+ }
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var45;
+ _dest.x2[1] = var46;
+ var49.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var48.i;
+ _dest.x2[1] = var49.i;
+ var41.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var41;
+ }
+
+}
+
+void
+cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_ABGR");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_ABGR);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_temporary (p, 1, "t1");
+ orc_program_add_temporary (p, 1, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+ orc_program_add_temporary (p, 2, "t6");
+ orc_program_add_temporary (p, 2, "t7");
+ orc_program_add_temporary (p, 2, "t8");
+
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T8, ORC_VAR_T7, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T8,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_T7,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T6, ORC_VAR_T5,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_NV12 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var34;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_union16 *) s2;
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr5[i];
+ /* 1: loadw */
+ var35 = ptr5[i];
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var34.i;
+ _dest.x2[1] = var35.i;
+ var39.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_NV12 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var34;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_union16 *) ex->arrays[5];
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var34 = ptr5[i];
+ /* 1: loadw */
+ var35 = ptr5[i];
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var34.i;
+ _dest.x2[1] = var35.i;
+ var39.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var40.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var40.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[0];
+ _dest.x2[1] = var39.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var40.x2[1];
+ _dest.x2[1] = var39.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_NV12");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_NV12);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T1, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_NV12 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_union16 *) d2;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var37.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var37.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var37;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 5: avgub */
+ var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 6: storew */
+ ptr1[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_NV12 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var36;
+ orc_union16 var37;
+ orc_union16 var38;
+ orc_union32 var39;
+ orc_union32 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_union16 *) ex->arrays[1];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var36 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[0];
+ var39.x2[0] = _src.x2[1];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var36.x2[1];
+ var39.x2[1] = _src.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[0];
+ var37.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var40.x2[1];
+ var37.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var37;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var39.i;
+ var41.i = _src.x2[1];
+ var42.i = _src.x2[0];
+ }
+ /* 5: avgub */
+ var38.x2[0] = ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1;
+ var38.x2[1] = ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1;
+ /* 6: storew */
+ ptr1[i] = var38;
+ }
+
+}
+
+void
+cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_NV12");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_NV12);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_NV21 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ int i;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+
+ ptr0 = (orc_union64 *) d1;
+ ptr4 = (orc_union16 *) s1;
+ ptr5 = (orc_union16 *) s2;
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var35 = ptr5[i];
+ /* 1: swapw */
+ var39.i = ORC_SWAP_W (var35.i);
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var40.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_NV21 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union64 *ORC_RESTRICT ptr0;
+ const orc_union16 *ORC_RESTRICT ptr4;
+ const orc_union16 *ORC_RESTRICT ptr5;
+ orc_union16 var35;
+ orc_union16 var36;
+ orc_union16 var37;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+
+ ptr0 = (orc_union64 *) ex->arrays[0];
+ ptr4 = (orc_union16 *) ex->arrays[4];
+ ptr5 = (orc_union16 *) ex->arrays[5];
+
+ /* 3: loadpb */
+ var36.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+ var36.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadw */
+ var35 = ptr5[i];
+ /* 1: swapw */
+ var39.i = ORC_SWAP_W (var35.i);
+ /* 2: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var39.i;
+ _dest.x2[1] = var39.i;
+ var40.i = _dest.i;
+ }
+ /* 4: loadw */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[0];
+ _dest.x2[1] = var37.x2[0];
+ var41.x2[0] = _dest.i;
+ }
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36.x2[1];
+ _dest.x2[1] = var37.x2[1];
+ var41.x2[1] = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[0];
+ _dest.x2[1] = var40.x2[0];
+ var38.x2[0] = _dest.i;
+ }
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var41.x2[1];
+ _dest.x2[1] = var40.x2[1];
+ var38.x2[1] = _dest.i;
+ }
+ /* 7: storeq */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_NV21");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_NV21);
+ orc_program_add_destination (p, 8, "d1");
+ orc_program_add_source (p, 2, "s1");
+ orc_program_add_source (p, 2, "s2");
+ orc_program_add_constant (p, 1, 0x000000ff, "c1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 4, "t3");
+
+ orc_program_append_2 (p, "swapw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_NV21 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_union16 *) d2;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var38.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var38.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var38;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 5: avgub */
+ var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 6: swapw */
+ var39.i = ORC_SWAP_W (var44.i);
+ /* 7: storew */
+ ptr1[i] = var39;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_NV21 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_union16 *ORC_RESTRICT ptr1;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_union32 var40;
+ orc_union32 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_union16 *) ex->arrays[1];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var37 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[0];
+ var40.x2[0] = _src.x2[1];
+ var41.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var37.x2[1];
+ var40.x2[1] = _src.x2[1];
+ var41.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[0];
+ var38.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var41.x2[1];
+ var38.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var38;
+ /* 4: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var40.i;
+ var42.i = _src.x2[1];
+ var43.i = _src.x2[0];
+ }
+ /* 5: avgub */
+ var44.x2[0] = ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1;
+ var44.x2[1] = ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1;
+ /* 6: swapw */
+ var39.i = ORC_SWAP_W (var44.i);
+ /* 7: storew */
+ ptr1[i] = var39;
+ }
+
+}
+
+void
+cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_NV21");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_NV21);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 2, "d2");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+ orc_program_add_temporary (p, 2, "t5");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 1, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "swapw", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_D1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_getline_A420 */
+#ifdef DISABLE_ORC
+void
+cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
+ const guint8 * ORC_RESTRICT s4, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+ ptr6 = (orc_int8 *) s3;
+ ptr7 = (orc_int8 *) s4;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 3: loadb */
+ var36 = ptr7[i];
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_getline_A420 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ const orc_int8 *ORC_RESTRICT ptr6;
+ const orc_int8 *ORC_RESTRICT ptr7;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union32 var38;
+ orc_int8 var39;
+ orc_int8 var40;
+ orc_union16 var41;
+ orc_union16 var42;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+ ptr6 = (orc_int8 *) ex->arrays[6];
+ ptr7 = (orc_int8 *) ex->arrays[7];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadupdb */
+ var39 = ptr5[i >> 1];
+ /* 1: loadupdb */
+ var40 = ptr6[i >> 1];
+ /* 2: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var39;
+ _dest.x2[1] = var40;
+ var41.i = _dest.i;
+ }
+ /* 3: loadb */
+ var36 = ptr7[i];
+ /* 4: loadb */
+ var37 = ptr4[i];
+ /* 5: mergebw */
+ {
+ orc_union16 _dest;
+ _dest.x2[0] = var36;
+ _dest.x2[1] = var37;
+ var42.i = _dest.i;
+ }
+ /* 6: mergewl */
+ {
+ orc_union32 _dest;
+ _dest.x2[0] = var42.i;
+ _dest.x2[1] = var41.i;
+ var38.i = _dest.i;
+ }
+ /* 7: storel */
+ ptr0[i] = var38;
+ }
+
+}
+
+void
+cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
+ const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
+ const guint8 * ORC_RESTRICT s4, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_getline_A420");
+ orc_program_set_backup_function (p, _backup_cogorc_getline_A420);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_source (p, 1, "s3");
+ orc_program_add_source (p, 1, "s4");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S2,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S3,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->arrays[ORC_VAR_S3] = (void *) s3;
+ ex->arrays[ORC_VAR_S4] = (void *) s4;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* cogorc_putline_A420 */
+#ifdef DISABLE_ORC
+void
+cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ int i;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_union16 *ORC_RESTRICT ptr3;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_int8 var41;
+ orc_int8 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+ orc_int8 var50;
+
+ ptr0 = (orc_union16 *) d1;
+ ptr1 = (orc_int8 *) d2;
+ ptr2 = (orc_int8 *) d3;
+ ptr3 = (orc_union16 *) d4;
+ ptr4 = (orc_union64 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var43.x2[0] = _src.x2[1];
+ var44.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var43.x2[1] = _src.x2[1];
+ var44.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: select0wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr3[i] = var40;
+ /* 6: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var45.x2[0] = _src.x2[1];
+ var46.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var45.x2[1] = _src.x2[1];
+ var46.x2[1] = _src.x2[0];
+ }
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var46.i;
+ var47 = _src.x2[1];
+ var48 = _src.x2[0];
+ }
+ /* 8: avgub */
+ var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
+ /* 9: storeb */
+ ptr1[i] = var41;
+ /* 10: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var49 = _src.x2[1];
+ var50 = _src.x2[0];
+ }
+ /* 11: avgub */
+ var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
+ /* 12: storeb */
+ ptr2[i] = var42;
+ }
+
+}
+
+#else
+static void
+_backup_cogorc_putline_A420 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union16 *ORC_RESTRICT ptr0;
+ orc_int8 *ORC_RESTRICT ptr1;
+ orc_int8 *ORC_RESTRICT ptr2;
+ orc_union16 *ORC_RESTRICT ptr3;
+ const orc_union64 *ORC_RESTRICT ptr4;
+ orc_union64 var38;
+ orc_union16 var39;
+ orc_union16 var40;
+ orc_int8 var41;
+ orc_int8 var42;
+ orc_union32 var43;
+ orc_union32 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+ orc_int8 var47;
+ orc_int8 var48;
+ orc_int8 var49;
+ orc_int8 var50;
+
+ ptr0 = (orc_union16 *) ex->arrays[0];
+ ptr1 = (orc_int8 *) ex->arrays[1];
+ ptr2 = (orc_int8 *) ex->arrays[2];
+ ptr3 = (orc_union16 *) ex->arrays[3];
+ ptr4 = (orc_union64 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadq */
+ var38 = ptr4[i];
+ /* 1: splitlw */
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[0];
+ var43.x2[0] = _src.x2[1];
+ var44.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union32 _src;
+ _src.i = var38.x2[1];
+ var43.x2[1] = _src.x2[1];
+ var44.x2[1] = _src.x2[0];
+ }
+ /* 2: select1wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var39.x2[0] = _src.x2[1];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var39.x2[1] = _src.x2[1];
+ }
+ /* 3: storew */
+ ptr0[i] = var39;
+ /* 4: select0wb */
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[0];
+ var40.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var44.x2[1];
+ var40.x2[1] = _src.x2[0];
+ }
+ /* 5: storew */
+ ptr3[i] = var40;
+ /* 6: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[0];
+ var45.x2[0] = _src.x2[1];
+ var46.x2[0] = _src.x2[0];
+ }
+ {
+ orc_union16 _src;
+ _src.i = var43.x2[1];
+ var45.x2[1] = _src.x2[1];
+ var46.x2[1] = _src.x2[0];
+ }
+ /* 7: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var46.i;
+ var47 = _src.x2[1];
+ var48 = _src.x2[0];
+ }
+ /* 8: avgub */
+ var41 = ((orc_uint8) var47 + (orc_uint8) var48 + 1) >> 1;
+ /* 9: storeb */
+ ptr1[i] = var41;
+ /* 10: splitwb */
+ {
+ orc_union16 _src;
+ _src.i = var45.i;
+ var49 = _src.x2[1];
+ var50 = _src.x2[0];
+ }
+ /* 11: avgub */
+ var42 = ((orc_uint8) var49 + (orc_uint8) var50 + 1) >> 1;
+ /* 12: storeb */
+ ptr2[i] = var42;
+ }
+
+}
+
+void
+cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
+ guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4,
+ const guint8 * ORC_RESTRICT s1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "cogorc_putline_A420");
+ orc_program_set_backup_function (p, _backup_cogorc_putline_A420);
+ orc_program_add_destination (p, 2, "d1");
+ orc_program_add_destination (p, 1, "d2");
+ orc_program_add_destination (p, 1, "d3");
+ orc_program_add_destination (p, 2, "d4");
+ orc_program_add_source (p, 8, "s1");
+ orc_program_add_temporary (p, 4, "t1");
+ orc_program_add_temporary (p, 4, "t2");
+ orc_program_add_temporary (p, 2, "t3");
+ orc_program_add_temporary (p, 2, "t4");
+ orc_program_add_temporary (p, 1, "t5");
+ orc_program_add_temporary (p, 1, "t6");
+
+ orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "select0wb", 1, ORC_VAR_D4, ORC_VAR_T1,
+ ORC_VAR_D1, ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T3,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D2, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T6, ORC_VAR_T4,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T5, ORC_VAR_T6,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_D2] = d2;
+ ex->arrays[ORC_VAR_D3] = d3;
+ ex->arrays[ORC_VAR_D4] = d4;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* orc_resample_bilinear_u32 */
+#ifdef DISABLE_ORC
+void
+orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+ int i;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+
+ ptr0 = (orc_union32 *) d1;
+ ptr4 = (orc_union32 *) s1;
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: ldreslinl */
+ {
+ int tmp = p1 + i * p2;
+ orc_union32 a = ptr4[tmp >> 16];
+ orc_union32 b = ptr4[(tmp >> 16) + 1];
+ var32.x4[0] =
+ ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[1] =
+ ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[2] =
+ ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[3] =
+ ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
+ }
+ /* 1: storel */
+ ptr0[i] = var32;
+ }
+
+}
+
+#else
+static void
+_backup_orc_resample_bilinear_u32 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_union32 *ORC_RESTRICT ptr0;
+ const orc_union32 *ORC_RESTRICT ptr4;
+ orc_union32 var32;
+
+ ptr0 = (orc_union32 *) ex->arrays[0];
+ ptr4 = (orc_union32 *) ex->arrays[4];
+
+
+ for (i = 0; i < n; i++) {
+ /* 0: ldreslinl */
+ {
+ int tmp = ex->params[24] + i * ex->params[25];
+ orc_union32 a = ptr4[tmp >> 16];
+ orc_union32 b = ptr4[(tmp >> 16) + 1];
+ var32.x4[0] =
+ ((orc_uint8) a.x4[0] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[0] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[1] =
+ ((orc_uint8) a.x4[1] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[1] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[2] =
+ ((orc_uint8) a.x4[2] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[2] * ((tmp >> 8) & 0xff)) >> 8;
+ var32.x4[3] =
+ ((orc_uint8) a.x4[3] * (256 - ((tmp >> 8) & 0xff)) +
+ (orc_uint8) b.x4[3] * ((tmp >> 8) & 0xff)) >> 8;
+ }
+ /* 1: storel */
+ ptr0[i] = var32;
+ }
+
+}
+
+void
+orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1,
+ const guint8 * ORC_RESTRICT s1, int p1, int p2, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "orc_resample_bilinear_u32");
+ orc_program_set_backup_function (p, _backup_orc_resample_bilinear_u32);
+ orc_program_add_destination (p, 4, "d1");
+ orc_program_add_source (p, 4, "s1");
+ orc_program_add_parameter (p, 4, "p1");
+ orc_program_add_parameter (p, 4, "p2");
+
+ orc_program_append_2 (p, "ldreslinl", 0, ORC_VAR_D1, ORC_VAR_S1,
+ ORC_VAR_P1, ORC_VAR_P2);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->params[ORC_VAR_P1] = p1;
+ ex->params[ORC_VAR_P2] = p2;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
+
+
+/* orc_merge_linear_u8 */
+#ifdef DISABLE_ORC
+void
+orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
+ const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
+ int p1, int n)
+{
+ int i;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+ orc_int8 var47;
+
+ ptr0 = (orc_int8 *) d1;
+ ptr4 = (orc_int8 *) s1;
+ ptr5 = (orc_int8 *) s2;
+
+ /* 6: loadpw */
+ var38.i = p1;
+ /* 8: loadpw */
+ var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var41 = ptr4[i];
+ /* 1: loadb */
+ var36 = ptr4[i];
+ /* 2: convubw */
+ var42.i = (orc_uint8) var36;
+ /* 3: loadb */
+ var37 = ptr5[i];
+ /* 4: convubw */
+ var43.i = (orc_uint8) var37;
+ /* 5: subw */
+ var44.i = var43.i - var42.i;
+ /* 7: mullw */
+ var45.i = (var44.i * var38.i) & 0xffff;
+ /* 9: addw */
+ var46.i = var45.i + var39.i;
+ /* 10: convhwb */
+ var47 = ((orc_uint16) var46.i) >> 8;
+ /* 11: addb */
+ var40 = var47 + var41;
+ /* 12: storeb */
+ ptr0[i] = var40;
+ }
+
+}
+
+#else
+static void
+_backup_orc_merge_linear_u8 (OrcExecutor * ORC_RESTRICT ex)
+{
+ int i;
+ int n = ex->n;
+ orc_int8 *ORC_RESTRICT ptr0;
+ const orc_int8 *ORC_RESTRICT ptr4;
+ const orc_int8 *ORC_RESTRICT ptr5;
+ orc_int8 var36;
+ orc_int8 var37;
+ orc_union16 var38;
+ orc_union16 var39;
+ orc_int8 var40;
+ orc_int8 var41;
+ orc_union16 var42;
+ orc_union16 var43;
+ orc_union16 var44;
+ orc_union16 var45;
+ orc_union16 var46;
+ orc_int8 var47;
+
+ ptr0 = (orc_int8 *) ex->arrays[0];
+ ptr4 = (orc_int8 *) ex->arrays[4];
+ ptr5 = (orc_int8 *) ex->arrays[5];
+
+ /* 6: loadpw */
+ var38.i = ex->params[24];
+ /* 8: loadpw */
+ var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */
+
+ for (i = 0; i < n; i++) {
+ /* 0: loadb */
+ var41 = ptr4[i];
+ /* 1: loadb */
+ var36 = ptr4[i];
+ /* 2: convubw */
+ var42.i = (orc_uint8) var36;
+ /* 3: loadb */
+ var37 = ptr5[i];
+ /* 4: convubw */
+ var43.i = (orc_uint8) var37;
+ /* 5: subw */
+ var44.i = var43.i - var42.i;
+ /* 7: mullw */
+ var45.i = (var44.i * var38.i) & 0xffff;
+ /* 9: addw */
+ var46.i = var45.i + var39.i;
+ /* 10: convhwb */
+ var47 = ((orc_uint16) var46.i) >> 8;
+ /* 11: addb */
+ var40 = var47 + var41;
+ /* 12: storeb */
+ ptr0[i] = var40;
+ }
+
+}
+
+void
+orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1,
+ const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2,
+ int p1, int n)
+{
+ OrcExecutor _ex, *ex = &_ex;
+ static volatile int p_inited = 0;
+ static OrcProgram *p = 0;
+ void (*func) (OrcExecutor *);
+
+ if (!p_inited) {
+ orc_once_mutex_lock ();
+ if (!p_inited) {
+
+ p = orc_program_new ();
+ orc_program_set_name (p, "orc_merge_linear_u8");
+ orc_program_set_backup_function (p, _backup_orc_merge_linear_u8);
+ orc_program_add_destination (p, 1, "d1");
+ orc_program_add_source (p, 1, "s1");
+ orc_program_add_source (p, 1, "s2");
+ orc_program_add_constant (p, 4, 0x00000080, "c1");
+ orc_program_add_parameter (p, 1, "p1");
+ orc_program_add_temporary (p, 2, "t1");
+ orc_program_add_temporary (p, 2, "t2");
+ orc_program_add_temporary (p, 1, "t3");
+ orc_program_add_temporary (p, 1, "t4");
+
+ orc_program_append_2 (p, "loadb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "convhwb", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_D1,
+ ORC_VAR_D1);
+ orc_program_append_2 (p, "addb", 0, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3,
+ ORC_VAR_D1);
+
+ orc_program_compile (p);
+ }
+ p_inited = TRUE;
+ orc_once_mutex_unlock ();
+ }
+ ex->program = p;
+
+ ex->n = n;
+ ex->arrays[ORC_VAR_D1] = d1;
+ ex->arrays[ORC_VAR_S1] = (void *) s1;
+ ex->arrays[ORC_VAR_S2] = (void *) s2;
+ ex->params[ORC_VAR_P1] = p1;
+
+ func = p->code_exec;
+ func (ex);
+}
+#endif
--- /dev/null
+
+/* autogenerated from videoblendorc.orc */
+
+#ifndef _VIDEOBLENDORC_H_
+#define _VIDEOBLENDORC_H_
+
+#include <glib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#ifndef _ORC_INTEGER_TYPEDEFS_
+#define _ORC_INTEGER_TYPEDEFS_
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#include <stdint.h>
+typedef int8_t orc_int8;
+typedef int16_t orc_int16;
+typedef int32_t orc_int32;
+typedef int64_t orc_int64;
+typedef uint8_t orc_uint8;
+typedef uint16_t orc_uint16;
+typedef uint32_t orc_uint32;
+typedef uint64_t orc_uint64;
+#define ORC_UINT64_C(x) UINT64_C(x)
+#elif defined(_MSC_VER)
+typedef signed __int8 orc_int8;
+typedef signed __int16 orc_int16;
+typedef signed __int32 orc_int32;
+typedef signed __int64 orc_int64;
+typedef unsigned __int8 orc_uint8;
+typedef unsigned __int16 orc_uint16;
+typedef unsigned __int32 orc_uint32;
+typedef unsigned __int64 orc_uint64;
+#define ORC_UINT64_C(x) (x##Ui64)
+#define inline __inline
+#else
+#include <limits.h>
+typedef signed char orc_int8;
+typedef short orc_int16;
+typedef int orc_int32;
+typedef unsigned char orc_uint8;
+typedef unsigned short orc_uint16;
+typedef unsigned int orc_uint32;
+#if INT_MAX == LONG_MAX
+typedef long long orc_int64;
+typedef unsigned long long orc_uint64;
+#define ORC_UINT64_C(x) (x##ULL)
+#else
+typedef long orc_int64;
+typedef unsigned long orc_uint64;
+#define ORC_UINT64_C(x) (x##UL)
+#endif
+#endif
+typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
+typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
+typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64;
+#endif
+#ifndef ORC_RESTRICT
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#define ORC_RESTRICT restrict
+#elif defined(__GNUC__) && __GNUC__ >= 4
+#define ORC_RESTRICT __restrict__
+#else
+#define ORC_RESTRICT
+#endif
+#endif
+void orc_blend_little (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void orc_blend_big (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_I420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_I420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_YUY2 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_UYVY (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_YUV9 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_getline_Y42B (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y42B (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y444 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int n);
+void cogorc_putline_Y444 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y800 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_Y16 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_RGBA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_putline_ABGR (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV12 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV12 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_NV21 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n);
+void cogorc_putline_NV21 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
+void cogorc_getline_A420 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, int n);
+void cogorc_putline_A420 (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, guint8 * ORC_RESTRICT d3, guint8 * ORC_RESTRICT d4, const guint8 * ORC_RESTRICT s1, int n);
+void orc_resample_bilinear_u32 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int p1, int p2, int n);
+void orc_merge_linear_u8 (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p1, int n);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
--- /dev/null
+.function orc_blend_little
+.flags 1d
+.dest 4 d guint8
+.source 4 s guint8
+.temp 4 t
+.temp 2 tw
+.temp 1 tb
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.temp 8 a_wide
+.const 4 a_alpha 0x000000ff
+
+loadl t, s
+convlw tw, t
+convwb tb, tw
+splatbl a, tb
+x4 convubw a_wide, a
+x4 shruw a_wide, a_wide, 8
+x4 convubw s_wide, t
+loadl t, d
+x4 convubw d_wide, t
+x4 subw s_wide, s_wide, d_wide
+x4 mullw s_wide, s_wide, a_wide
+x4 div255w s_wide, s_wide
+x4 addw d_wide, d_wide, s_wide
+x4 convwb t, d_wide
+orl t, t, a_alpha
+storel d, t
+
+.function orc_blend_big
+.flags 1d
+.dest 4 d guint8
+.source 4 s guint8
+.temp 4 t
+.temp 4 t2
+.temp 2 tw
+.temp 1 tb
+.temp 4 a
+.temp 8 d_wide
+.temp 8 s_wide
+.temp 8 a_wide
+.const 4 a_alpha 0xff000000
+
+loadl t, s
+shrul t2, t, 24
+convlw tw, t2
+convwb tb, tw
+splatbl a, tb
+x4 convubw a_wide, a
+x4 shruw a_wide, a_wide, 8
+x4 convubw s_wide, t
+loadl t, d
+x4 convubw d_wide, t
+x4 subw s_wide, s_wide, d_wide
+x4 mullw s_wide, s_wide, a_wide
+x4 div255w s_wide, s_wide
+x4 addw d_wide, d_wide, s_wide
+x4 convwb t, d_wide
+orl t, t, a_alpha
+storel d, t
+
+.function cogorc_getline_I420
+.dest 4 d guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, c255, y
+mergewl d, ay, uv
+
+
+.function cogorc_putline_I420
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv, ay, ayuv
+x2 select1wb y, ay
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+.function cogorc_getline_YUY2
+.dest 8 ayuv guint8
+.source 4 yuy2 guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb uv, yy, yuy2
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function cogorc_putline_YUY2
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, yy, uv1
+
+
+.function cogorc_putline_UYVY
+.dest 4 yuy2 guint8
+.source 8 ayuv guint8
+.temp 2 yy
+.temp 2 uv1
+.temp 2 uv2
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+x2 select1wb yy, ayay
+x2 mergebw yuy2, uv1, yy
+
+
+.function cogorc_getline_UYVY
+.dest 8 ayuv guint8
+.source 4 uyvy guint8
+.const 2 c255 0xff
+.temp 2 yy
+.temp 2 uv
+.temp 4 ayay
+.temp 4 uvuv
+
+x2 splitwb yy, uv, uyvy
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+
+.function cogorc_getline_YUV9
+.dest 8 d guint8
+.source 2 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 tuv
+.temp 4 ay
+.temp 4 uv
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw tuv, tu, tv
+mergewl uv, tuv, tuv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uv
+
+
+.function cogorc_getline_Y42B
+.dest 8 ayuv guint8
+.source 2 yy guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+.temp 4 uvuv
+.temp 4 ayay
+
+mergebw uv, u, v
+x2 mergebw ayay, c255, yy
+mergewl uvuv, uv, uv
+x2 mergewl ayuv, ayay, uvuv
+
+.function cogorc_putline_Y42B
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 8 ayuv guint8
+.temp 4 ayay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ayay, ayuv
+splitlw uv1, uv2, uvuv
+x2 avgub uv1, uv1, uv2
+splitwb v, u, uv1
+x2 select1wb y, ayay
+
+
+.function cogorc_getline_Y444
+.dest 4 ayuv guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 2 ay
+
+mergebw uv, u, v
+mergebw ay, c255, y
+mergewl ayuv, ay, uv
+
+
+.function cogorc_putline_Y444
+.dest 1 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 2 uv
+
+splitlw uv, ay, ayuv
+splitwb v, u, uv
+select1wb y, ay
+
+.function cogorc_getline_Y800
+.dest 4 ayuv guint8
+.source 1 y guint8
+.const 1 c255 255
+.const 2 c0x8080 0x8080
+.temp 2 ay
+
+mergebw ay, c255, y
+mergewl ayuv, ay, c0x8080
+
+
+.function cogorc_putline_Y800
+.dest 1 y guint8
+.source 4 ayuv guint8
+.temp 2 ay
+
+select0lw ay, ayuv
+select1wb y, ay
+
+
+.function cogorc_putline_Y16
+.dest 2 y guint8
+.source 4 ayuv guint8
+.temp 2 ay
+.temp 1 yb
+
+select0lw ay, ayuv
+select1wb yb, ay
+convubw ay, yb
+shlw y, ay, 8
+
+
+.function cogorc_getline_Y16
+.dest 4 ayuv guint8
+.source 2 y guint8
+.const 1 c255 255
+.const 2 c0x8080 0x8080
+.temp 2 ay
+.temp 1 yb
+
+convhwb yb, y
+mergebw ay, c255, yb
+mergewl ayuv, ay, c0x8080
+
+.function cogorc_getline_BGRA
+.dest 4 argb guint8
+.source 4 bgra guint8
+
+swapl argb, bgra
+
+.function cogorc_putline_BGRA
+.dest 4 bgra guint8
+.source 4 argb guint8
+
+swapl bgra, argb
+
+.function cogorc_putline_RGBA
+.dest 4 rgba guint8
+.source 4 argb guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 rg
+.temp 2 ba
+.temp 2 ar
+.temp 2 gb
+
+splitlw gb, ar, argb
+splitwb b, g, gb
+splitwb r, a, ar
+mergebw ba, b, a
+mergebw rg, r, g
+mergewl rgba, rg, ba
+
+.function cogorc_getline_RGBA
+.dest 4 argb guint8
+.source 4 rgba guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 rg
+.temp 2 ba
+.temp 2 ar
+.temp 2 gb
+
+splitlw ba, rg, rgba
+splitwb g, r, rg
+splitwb a, b, ba
+mergebw ar, a, r
+mergebw gb, g, b
+mergewl argb, ar, gb
+
+
+.function cogorc_getline_ABGR
+.dest 4 argb guint8
+.source 4 abgr guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 gr
+.temp 2 ab
+.temp 2 ar
+.temp 2 gb
+
+splitlw gr, ab, abgr
+splitwb r, g, gr
+splitwb b, a, ab
+mergebw ar, a, r
+mergebw gb, g, b
+mergewl argb, ar, gb
+
+
+.function cogorc_putline_ABGR
+.dest 4 abgr guint8
+.source 4 argb guint8
+.temp 1 a
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 2 gr
+.temp 2 ab
+.temp 2 ar
+.temp 2 gb
+
+splitlw gb, ar, argb
+splitwb b, g, gb
+splitwb r, a, ar
+mergebw ab, a, b
+mergebw gr, g, r
+mergewl abgr, ab, gr
+
+.function cogorc_getline_NV12
+.dest 8 d guint8
+.source 2 y guint8
+.source 2 uv guint8
+.const 1 c255 255
+.temp 4 ay
+.temp 4 uvuv
+
+mergewl uvuv, uv, uv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uvuv
+
+.function cogorc_putline_NV12
+.dest 2 y guint8
+.dest 2 uv guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+
+x2 splitlw uvuv, ay, ayuv
+x2 select1wb y, ay
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+
+.function cogorc_getline_NV21
+.dest 8 d guint8
+.source 2 y guint8
+.source 2 vu guint8
+.const 1 c255 255
+.temp 2 uv
+.temp 4 ay
+.temp 4 uvuv
+
+swapw uv, vu
+mergewl uvuv, uv, uv
+x2 mergebw ay, c255, y
+x2 mergewl d, ay, uvuv
+
+
+.function cogorc_putline_NV21
+.dest 2 y guint8
+.dest 2 vu guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uvuv
+.temp 2 uv1
+.temp 2 uv2
+.temp 2 uv
+
+x2 splitlw uvuv, ay, ayuv
+x2 select1wb y, ay
+splitlw uv1, uv2, uvuv
+x2 avgub uv, uv1, uv2
+swapw vu, uv
+
+
+.function cogorc_getline_A420
+.dest 4 d guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.source 1 a guint8
+.temp 2 uv
+.temp 2 ay
+.temp 1 tu
+.temp 1 tv
+
+loadupdb tu, u
+loadupdb tv, v
+mergebw uv, tu, tv
+mergebw ay, a, y
+mergewl d, ay, uv
+
+.function cogorc_putline_A420
+.dest 2 y guint8
+.dest 1 u guint8
+.dest 1 v guint8
+.dest 2 a guint8
+.source 8 ayuv guint8
+.temp 4 ay
+.temp 4 uv
+.temp 2 uu
+.temp 2 vv
+.temp 1 t1
+.temp 1 t2
+
+x2 splitlw uv, ay, ayuv
+x2 select1wb y, ay
+x2 select0wb a, ay
+x2 splitwb vv, uu, uv
+splitwb t1, t2, uu
+avgub u, t1, t2
+splitwb t1, t2, vv
+avgub v, t1, t2
+
+.function orc_resample_bilinear_u32
+.dest 4 d1 guint8
+.source 4 s1 guint8
+.param 4 p1
+.param 4 p2
+
+ldreslinl d1, s1, p1, p2
+
+.function orc_merge_linear_u8
+.dest 1 d1
+.source 1 s1
+.source 1 s2
+.param 1 p1
+.temp 2 t1
+.temp 2 t2
+.temp 1 a
+.temp 1 t
+
+loadb a, s1
+convubw t1, s1
+convubw t2, s2
+subw t2, t2, t1
+mullw t2, t2, p1
+addw t2, t2, 128
+convhwb t, t2
+addb d1, t, a
<release>
<Version>
+ <revision>0.10.36</revision>
+ <branch>0.10</branch>
+ <name>Better</name>
+ <created>2012-02-20</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.36.tar.bz2" />
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.36.tar.gz" />
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.36.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
+ <revision>0.10.35</revision>
+ <branch>0.10</branch>
+ <name>Short Notice</name>
+ <created>2011-06-15</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.35.tar.bz2" />
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-0.10.35.tar.gz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>0.10.34</revision>
<branch>0.10</branch>
<name>Lemmings</name>
export DOCS_ARE_INCOMPLETE_PLEASE_FIXME=0
%build
%configure \
- --enable-gtk-doc --enable-introspection=no
+ --enable-gtk-doc --enable-introspection=yes
make %{?_smp_mflags}
%{_libdir}/gstreamer-%{majorminor}/libgstvideorate.so
%{_libdir}/gstreamer-%{majorminor}/libgstvideoscale.so
%{_libdir}/gstreamer-%{majorminor}/libgsttcp.so
-%{_libdir}/gstreamer-%{majorminor}/libgstvideo4linux.so
%{_libdir}/gstreamer-%{majorminor}/libgstaudioresample.so
%{_libdir}/gstreamer-%{majorminor}/libgstaudiotestsrc.so
%{_libdir}/gstreamer-%{majorminor}/libgstgdp.so
%{_includedir}/gstreamer-%{majorminor}/gst/pbutils/gstdiscoverer.h
%{_includedir}/gstreamer-%{majorminor}/gst/pbutils/gstpluginsbaseversion.h
%{_includedir}/gstreamer-%{majorminor}/gst/tag/xmpwriter.h
-
+%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudioiec61937.h
+%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudiodecoder.h
+%{_includedir}/gstreamer-%{majorminor}/gst/audio/gstaudioencoder.h
+%{_includedir}/gstreamer-%{majorminor}/gst/tag/gsttagmux.h
+%{_includedir}/gstreamer-%{majorminor}/gst/video/video-overlay-composition.h
%{_libdir}/libgstfft-%{majorminor}.so
%{_libdir}/libgstrtsp-%{majorminor}.so
%{_libdir}/pkgconfig/gstreamer-video-%{majorminor}.pc
%{_libdir}/pkgconfig/gstreamer-app-%{majorminor}.pc
+%{_libdir}/girepository-1.0/GstApp-0.10.typelib
+%{_libdir}/girepository-1.0/GstAudio-0.10.typelib
+%{_libdir}/girepository-1.0/GstFft-0.10.typelib
+%{_libdir}/girepository-1.0/GstInterfaces-0.10.typelib
+%{_libdir}/girepository-1.0/GstNetbuffer-0.10.typelib
+%{_libdir}/girepository-1.0/GstPbutils-0.10.typelib
+%{_libdir}/girepository-1.0/GstRiff-0.10.typelib
+%{_libdir}/girepository-1.0/GstRtp-0.10.typelib
+%{_libdir}/girepository-1.0/GstRtsp-0.10.typelib
+%{_libdir}/girepository-1.0/GstSdp-0.10.typelib
+%{_libdir}/girepository-1.0/GstTag-0.10.typelib
+%{_libdir}/girepository-1.0/GstVideo-0.10.typelib
+%{_datadir}/gir-1.0/GstApp-0.10.gir
+%{_datadir}/gir-1.0/GstAudio-0.10.gir
+%{_datadir}/gir-1.0/GstFft-0.10.gir
+%{_datadir}/gir-1.0/GstInterfaces-0.10.gir
+%{_datadir}/gir-1.0/GstNetbuffer-0.10.gir
+%{_datadir}/gir-1.0/GstPbutils-0.10.gir
+%{_datadir}/gir-1.0/GstRiff-0.10.gir
+%{_datadir}/gir-1.0/GstRtp-0.10.gir
+%{_datadir}/gir-1.0/GstRtsp-0.10.gir
+%{_datadir}/gir-1.0/GstSdp-0.10.gir
+%{_datadir}/gir-1.0/GstTag-0.10.gir
+%{_datadir}/gir-1.0/GstVideo-0.10.gir
+
# gtk-doc documentation
%doc %{_datadir}/gtk-doc/html/gst-plugins-base-libs-%{majorminor}
%doc %{_datadir}/gtk-doc/html/gst-plugins-base-plugins-%{majorminor}
+%doc %{_datadir}/gst-plugins-base/license-translations.dict
%changelog
* Fri Dec 15 2006 Thomas Vander Stichele <thomas at apestaart dot org>
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
nodist_libgstadder_la_OBJECTS = $(am__objects_1)
libgstadder_la_OBJECTS = $(am_libgstadder_la_OBJECTS) \
$(nodist_libgstadder_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
libgstadder_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstadder_la_SOURCES) $(nodist_libgstadder_la_SOURCES)
DIST_SOURCES = $(libgstadder_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstadder.la: $(libgstadder_la_OBJECTS) $(libgstadder_la_DEPENDENCIES)
+libgstadder.la: $(libgstadder_la_OBJECTS) $(libgstadder_la_DEPENDENCIES) $(EXTRA_libgstadder_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstadder_la_LINK) -rpath $(plugindir) $(libgstadder_la_OBJECTS) $(libgstadder_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstadder_la-gstadder.lo: gstadder.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -MT libgstadder_la-gstadder.lo -MD -MP -MF $(DEPDIR)/libgstadder_la-gstadder.Tpo -c -o libgstadder_la-gstadder.lo `test -f 'gstadder.c' || echo '$(srcdir)/'`gstadder.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstadder_la-gstadder.Tpo $(DEPDIR)/libgstadder_la-gstadder.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstadder.c' object='libgstadder_la-gstadder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstadder.c' object='libgstadder_la-gstadder.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_la-gstadder.lo `test -f 'gstadder.c' || echo '$(srcdir)/'`gstadder.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_la-gstadder.lo `test -f 'gstadder.c' || echo '$(srcdir)/'`gstadder.c
libgstadder_la-tmp-orc.lo: tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -MT libgstadder_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstadder_la-tmp-orc.Tpo -c -o libgstadder_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstadder_la-tmp-orc.Tpo $(DEPDIR)/libgstadder_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstadder_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstadder_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 $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_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 $(libgstadder_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstadder_la_CFLAGS) $(CFLAGS) -c -o libgstadder_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
mostlyclean-libtool:
-rm -f *.lo
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:
adder = GST_ADDER (gst_pad_get_parent (pad));
+ GST_DEBUG_OBJECT (pad, "Got %s event on src pad",
+ GST_EVENT_TYPE_NAME (event));
+
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEEK:
{
* forwarding the seek upstream or from gst_adder_collected,
* whichever happens first.
*/
- adder->flush_stop_pending = TRUE;
+ g_atomic_int_set (&adder->flush_stop_pending, TRUE);
}
GST_DEBUG_OBJECT (adder, "handling seek event: %" GST_PTR_FORMAT, event);
adder->segment_end = end;
else
adder->segment_end = GST_CLOCK_TIME_NONE;
- /* make sure we push a new segment, to inform about new basetime
- * see FIXME in gst_adder_collected() */
- adder->segment_pending = TRUE;
if (flush) {
/* Yes, we need to call _set_flushing again *WHEN* the streaming threads
* have stopped so that the cookie gets properly updated. */
GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT,
event);
+ /* we're forwarding seek to all upstream peers and wait for one to reply
+ * with a newsegment-event before we send a newsegment-event downstream */
+ g_atomic_int_set (&adder->wait_for_new_segment, TRUE);
result = forward_event (adder, event, flush);
if (!result) {
/* seek failed. maybe source is a live source. */
adder = GST_ADDER (gst_pad_get_parent (pad));
- GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
- GST_DEBUG_PAD_NAME (pad));
+ GST_DEBUG_OBJECT (pad, "Got %s event on sink pad",
+ GST_EVENT_TYPE_NAME (event));
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_STOP:
* flush-stop from the collect function later.
*/
GST_OBJECT_LOCK (adder->collect);
- adder->segment_pending = TRUE;
- adder->flush_stop_pending = FALSE;
+ g_atomic_int_set (&adder->new_segment_pending, TRUE);
+ g_atomic_int_set (&adder->flush_stop_pending, FALSE);
/* Clear pending tags */
if (adder->pending_events) {
g_list_foreach (adder->pending_events, (GFunc) gst_event_unref, NULL);
adder->pending_events = g_list_append (adder->pending_events, event);
GST_OBJECT_UNLOCK (adder->collect);
goto beach;
+ case GST_EVENT_NEWSEGMENT:
+ if (g_atomic_int_compare_and_exchange (&adder->wait_for_new_segment,
+ TRUE, FALSE)) {
+ /* make sure we push a new segment, to inform about new basetime
+ * see FIXME in gst_adder_collected() */
+ g_atomic_int_set (&adder->new_segment_pending, TRUE);
+ }
+ break;
default:
break;
}
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&gst_adder_src_template));
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&gst_adder_sink_template));
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &gst_adder_src_template);
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &gst_adder_sink_template);
gst_element_class_set_details_simple (gstelement_class, "Adder",
"Generic/Audio",
"Add N audio channels together",
adder = GST_ADDER (element);
/* increment pad counter */
+#if GLIB_CHECK_VERSION(2,29,5)
+ padcount = g_atomic_int_add (&adder->padcount, 1);
+#else
padcount = g_atomic_int_exchange_and_add (&adder->padcount, 1);
+#endif
name = g_strdup_printf ("sink%d", padcount);
newpad = gst_pad_new_from_template (templ, name);
{
GstAdder *adder = GST_ADDER (user_data);
- buffer = gst_audio_buffer_clip (buffer, &data->segment, adder->rate,
- adder->bps);
+ /* in 0.10 the application might need to seek on newly added source-branches
+ * to make it send a newsegment, that is hard to sync and so the segment might
+ * not be initialized. Check this here to not trigger the assertion
+ */
+ if (data->segment.format != GST_FORMAT_UNDEFINED) {
+ buffer = gst_audio_buffer_clip (buffer, &data->segment, adder->rate,
+ adder->bps);
+ }
return buffer;
}
/* we had an output buffer, unref the gapbuffer we kept */
gst_buffer_unref (gapbuf);
- if (adder->segment_pending) {
+ if (g_atomic_int_compare_and_exchange (&adder->new_segment_pending, TRUE,
+ FALSE)) {
GstEvent *event;
/* FIXME, use rate/applied_rate as set on all sinkpads.
* - currently we just set rate as received from last seek-event
*
* When seeking we set the start and stop positions as given in the seek
- * event. We also adjust offset & timestamp acordingly.
+ * event. We also adjust offset & timestamp accordingly.
* This basically ignores all newsegments sent by upstream.
*/
event = gst_event_new_new_segment_full (FALSE, adder->segment_rate,
if (event) {
if (!gst_pad_push_event (adder->srcpad, event)) {
- GST_WARNING_OBJECT (adder->srcpad, "Sending event %p (%s) failed.",
- event, GST_EVENT_TYPE_NAME (event));
+ GST_WARNING_OBJECT (adder->srcpad, "Sending event failed");
}
- adder->segment_pending = FALSE;
} else {
GST_WARNING_OBJECT (adder->srcpad, "Creating new segment event for "
"start:%" G_GINT64_FORMAT " end:%" G_GINT64_FORMAT " failed",
adder->timestamp = 0;
adder->offset = 0;
adder->flush_stop_pending = FALSE;
- adder->segment_pending = TRUE;
+ adder->new_segment_pending = TRUE;
+ adder->wait_for_new_segment = FALSE;
adder->segment_start = 0;
adder->segment_end = GST_CLOCK_TIME_NONE;
adder->segment_rate = 1.0;
/* sink event handling */
GstPadEventFunction collect_event;
GstSegment segment;
- gboolean segment_pending;
guint64 segment_start, segment_end;
gdouble segment_rate;
+ volatile gboolean new_segment_pending;
+ volatile gboolean wait_for_new_segment;
/* src event handling */
- gboolean flush_stop_pending;
+ volatile gboolean flush_stop_pending;
/* target caps */
GstCaps *filter_caps;
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
$(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la
am_libgstapp_la_OBJECTS = libgstapp_la-gstapp.lo
libgstapp_la_OBJECTS = $(am_libgstapp_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
libgstapp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstapp_la_SOURCES)
DIST_SOURCES = $(libgstapp_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstapp.la: $(libgstapp_la_OBJECTS) $(libgstapp_la_DEPENDENCIES)
+libgstapp.la: $(libgstapp_la_OBJECTS) $(libgstapp_la_DEPENDENCIES) $(EXTRA_libgstapp_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstapp_la_LINK) -rpath $(plugindir) $(libgstapp_la_OBJECTS) $(libgstapp_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstapp_la-gstapp.lo: gstapp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_la_CFLAGS) $(CFLAGS) -MT libgstapp_la-gstapp.lo -MD -MP -MF $(DEPDIR)/libgstapp_la-gstapp.Tpo -c -o libgstapp_la-gstapp.lo `test -f 'gstapp.c' || echo '$(srcdir)/'`gstapp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_la-gstapp.Tpo $(DEPDIR)/libgstapp_la-gstapp.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstapp.c' object='libgstapp_la-gstapp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstapp.c' object='libgstapp_la-gstapp.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_la_CFLAGS) $(CFLAGS) -c -o libgstapp_la-gstapp.lo `test -f 'gstapp.c' || echo '$(srcdir)/'`gstapp.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_la_CFLAGS) $(CFLAGS) -c -o libgstapp_la-gstapp.lo `test -f 'gstapp.c' || echo '$(srcdir)/'`gstapp.c
mostlyclean-libtool:
-rm -f *.lo
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:
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+/**
+ * SECTION:element-appsrc
+ *
+ * The appsrc element can be used by applications to insert data into a
+ * GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides
+ * external API functions.
+ *
+ * For the documentation of the API, please see the
+ * <link linkend="gst-plugins-base-libs-appsrc">libgstapp</link> section in the
+ * GStreamer Plugins Base Libraries documentation.
+ *
+ * Since: 0.10.22
+ */
+/**
+ * SECTION:element-appsink
+ *
+ * Appsink is a sink plugin that supports many different methods for making
+ * the application get a handle on the GStreamer data in a pipeline. Unlike
+ * most GStreamer elements, Appsink provides external API functions.
+ *
+ * For the documentation of the API, please see the
+ * <link linkend="gst-plugins-base-libs-appsink">libgstapp</link> section in
+ * the GStreamer Plugins Base Libraries documentation.
+ *
+ * Since: 0.10.22
+ */
#ifdef HAVE_CONFIG_H
#include "config.h"
gstfastrandom.h \
plugin.h
-#TESTS = channelmixtest
-#noinst_PROGRAMS = channelmixtest
-
-#channelmixtest_CFLAGS = $(GST_CFLAGS)
-#channelmixtest_LDADD = libgstaudioconvert.la \
-# $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
-# $(GST_LIBS)
-
-
Android.mk: Makefile.am $(BUILT_SOURCES)
androgenizer \
-:PROJECT libgstaudioconvert -:SHARED libgstaudioconvert \
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
nodist_libgstaudioconvert_la_OBJECTS = $(am__objects_1)
libgstaudioconvert_la_OBJECTS = $(am_libgstaudioconvert_la_OBJECTS) \
$(nodist_libgstaudioconvert_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
libgstaudioconvert_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstaudioconvert_la_LIBTOOLFLAGS) $(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 = $(libgstaudioconvert_la_SOURCES) \
$(nodist_libgstaudioconvert_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstaudioconvert.la: $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_DEPENDENCIES)
+libgstaudioconvert.la: $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_DEPENDENCIES) $(EXTRA_libgstaudioconvert_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstaudioconvert_la_LINK) -rpath $(plugindir) $(libgstaudioconvert_la_OBJECTS) $(libgstaudioconvert_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstaudioconvert_la-gstaudioconvert.lo: gstaudioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstaudioconvert.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstaudioconvert.Tpo -c -o libgstaudioconvert_la-gstaudioconvert.lo `test -f 'gstaudioconvert.c' || echo '$(srcdir)/'`gstaudioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstaudioconvert.Tpo $(DEPDIR)/libgstaudioconvert_la-gstaudioconvert.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudioconvert.c' object='libgstaudioconvert_la-gstaudioconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudioconvert.c' object='libgstaudioconvert_la-gstaudioconvert.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioconvert.lo `test -f 'gstaudioconvert.c' || echo '$(srcdir)/'`gstaudioconvert.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioconvert.lo `test -f 'gstaudioconvert.c' || echo '$(srcdir)/'`gstaudioconvert.c
libgstaudioconvert_la-audioconvert.lo: audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-audioconvert.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-audioconvert.Tpo -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-audioconvert.Tpo $(DEPDIR)/libgstaudioconvert_la-audioconvert.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audioconvert.c' object='libgstaudioconvert_la-audioconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audioconvert.c' object='libgstaudioconvert_la-audioconvert.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-audioconvert.lo `test -f 'audioconvert.c' || echo '$(srcdir)/'`audioconvert.c
libgstaudioconvert_la-gstchannelmix.lo: gstchannelmix.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstchannelmix.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Tpo -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Tpo $(DEPDIR)/libgstaudioconvert_la-gstchannelmix.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstchannelmix.c' object='libgstaudioconvert_la-gstchannelmix.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstchannelmix.c' object='libgstaudioconvert_la-gstchannelmix.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstchannelmix.lo `test -f 'gstchannelmix.c' || echo '$(srcdir)/'`gstchannelmix.c
libgstaudioconvert_la-gstaudioquantize.lo: gstaudioquantize.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-gstaudioquantize.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Tpo -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Tpo $(DEPDIR)/libgstaudioconvert_la-gstaudioquantize.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudioquantize.c' object='libgstaudioconvert_la-gstaudioquantize.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudioquantize.c' object='libgstaudioconvert_la-gstaudioquantize.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-gstaudioquantize.lo `test -f 'gstaudioquantize.c' || echo '$(srcdir)/'`gstaudioquantize.c
libgstaudioconvert_la-plugin.lo: plugin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-plugin.Tpo -c -o libgstaudioconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-plugin.Tpo $(DEPDIR)/libgstaudioconvert_la-plugin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstaudioconvert_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='plugin.c' object='libgstaudioconvert_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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c
libgstaudioconvert_la-tmp-orc.lo: tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -MT libgstaudioconvert_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Tpo -c -o libgstaudioconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Tpo $(DEPDIR)/libgstaudioconvert_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstaudioconvert_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstaudioconvert_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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_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 $(libgstaudioconvert_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioconvert_la_CFLAGS) $(CFLAGS) -c -o libgstaudioconvert_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
mostlyclean-libtool:
-rm -f *.lo
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:
cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c
cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h
-#TESTS = channelmixtest
-#noinst_PROGRAMS = channelmixtest
-
-#channelmixtest_CFLAGS = $(GST_CFLAGS)
-#channelmixtest_LDADD = libgstaudioconvert.la \
-# $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
-# $(GST_LIBS)
-
Android.mk: Makefile.am $(BUILT_SOURCES)
androgenizer \
-:PROJECT libgstaudioconvert -:SHARED libgstaudioconvert \
MAKE_UNPACK_FUNC_ORC_IF (u32_be_float, 4, SIGNED, READ32_FROM_BE);
MAKE_UNPACK_FUNC_ORC_IF (s32_be_float, 4, 0, READ32_FROM_BE);
-/* One of the double_hq_* functions generated above is ineffecient, but it's
+/* One of the double_hq_* functions generated above is inefficient, but it's
* never used anyway. The same is true for one of the s32_* functions. */
/***
ctx->pack = pack_funcs[idx_out];
/* if both formats are float/double or we use noise shaping use double as
- * intermediate format and and switch mixing */
+ * intermediate format and switch mixing */
if (!DOUBLE_INTERMEDIATE_FORMAT (ctx)) {
GST_INFO ("use int mixing");
ctx->channel_mix = (AudioConvertMix) gst_channel_mix_mix_int;
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_audio_convert_src_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_audio_convert_sink_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_audio_convert_src_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_audio_convert_sink_template);
gst_element_class_set_details_simple (element_class,
"Audio converter", "Filter/Converter/Audio",
"Convert audio to different formats", "Benjamin Otte <otte@gnome.org>");
if (isfloat) {
s2 = gst_structure_copy (s);
gst_structure_set_name (s2, "audio/x-raw-int");
- s = make_lossless_changes (s2, FALSE);
+ make_lossless_changes (s2, FALSE);
/* If 64 bit float was allowed; remove width 64: we don't support it for
* integer*/
- strip_width_64 (s);
+ strip_width_64 (s2);
gst_caps_append_structure (caps, s2);
} else {
s2 = gst_structure_copy (s);
gst_structure_set_name (s2, "audio/x-raw-float");
- s = make_lossless_changes (s2, TRUE);
+ make_lossless_changes (s2, TRUE);
gst_caps_append_structure (caps, s2);
}
}
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstaudiorate_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
am_libgstaudiorate_la_OBJECTS = libgstaudiorate_la-gstaudiorate.lo
libgstaudiorate_la_OBJECTS = $(am_libgstaudiorate_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
libgstaudiorate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstaudiorate_la_SOURCES)
DIST_SOURCES = $(libgstaudiorate_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstaudiorate.la: $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_DEPENDENCIES)
+libgstaudiorate.la: $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_DEPENDENCIES) $(EXTRA_libgstaudiorate_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstaudiorate_la_LINK) -rpath $(plugindir) $(libgstaudiorate_la_OBJECTS) $(libgstaudiorate_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstaudiorate_la-gstaudiorate.lo: gstaudiorate.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiorate_la_CFLAGS) $(CFLAGS) -MT libgstaudiorate_la-gstaudiorate.lo -MD -MP -MF $(DEPDIR)/libgstaudiorate_la-gstaudiorate.Tpo -c -o libgstaudiorate_la-gstaudiorate.lo `test -f 'gstaudiorate.c' || echo '$(srcdir)/'`gstaudiorate.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiorate_la-gstaudiorate.Tpo $(DEPDIR)/libgstaudiorate_la-gstaudiorate.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudiorate.c' object='libgstaudiorate_la-gstaudiorate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudiorate.c' object='libgstaudiorate_la-gstaudiorate.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiorate_la_CFLAGS) $(CFLAGS) -c -o libgstaudiorate_la-gstaudiorate.lo `test -f 'gstaudiorate.c' || echo '$(srcdir)/'`gstaudiorate.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiorate_la_CFLAGS) $(CFLAGS) -c -o libgstaudiorate_la-gstaudiorate.lo `test -f 'gstaudiorate.c' || echo '$(srcdir)/'`gstaudiorate.c
mostlyclean-libtool:
-rm -f *.lo
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:
"Drops/duplicates/adjusts timestamps on audio samples to make a perfect stream",
"Wim Taymans <wim@fluendo.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_audio_rate_sink_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_audio_rate_src_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_audio_rate_sink_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_audio_rate_src_template);
}
static void
GST_BUFFER_OFFSET_END (fill) = audiorate->next_offset;
/* Use next timestamp, then calculate following timestamp based on
- * offset to get duration. Neccesary complexity to get 'perfect'
+ * offset to get duration. Necessary complexity to get 'perfect'
* streams */
GST_BUFFER_TIMESTAMP (fill) = audiorate->next_ts;
audiorate->next_ts = gst_util_uint64_scale_int (audiorate->next_offset,
$(ORC_CFLAGS)
libgstaudioresample_la_LIBADD = \
- $(GST_PLUGINS_BASE_LIBS) \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
$(ORC_LIBS) $(ORC_TEST_LIBS) \
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstaudioresample_la-speex_resampler_float.lo \
libgstaudioresample_la-speex_resampler_double.lo
libgstaudioresample_la_OBJECTS = $(am_libgstaudioresample_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
libgstaudioresample_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstaudioresample_la_LIBTOOLFLAGS) $(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 = $(libgstaudioresample_la_SOURCES)
DIST_SOURCES = $(libgstaudioresample_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
$(ORC_CFLAGS)
libgstaudioresample_la_LIBADD = \
- $(GST_PLUGINS_BASE_LIBS) \
$(GST_BASE_LIBS) \
$(GST_LIBS) \
$(ORC_LIBS) $(ORC_TEST_LIBS) \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstaudioresample.la: $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_DEPENDENCIES)
+libgstaudioresample.la: $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_DEPENDENCIES) $(EXTRA_libgstaudioresample_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstaudioresample_la_LINK) -rpath $(plugindir) $(libgstaudioresample_la_OBJECTS) $(libgstaudioresample_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstaudioresample_la-gstaudioresample.lo: gstaudioresample.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-gstaudioresample.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-gstaudioresample.Tpo -c -o libgstaudioresample_la-gstaudioresample.lo `test -f 'gstaudioresample.c' || echo '$(srcdir)/'`gstaudioresample.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-gstaudioresample.Tpo $(DEPDIR)/libgstaudioresample_la-gstaudioresample.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudioresample.c' object='libgstaudioresample_la-gstaudioresample.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudioresample.c' object='libgstaudioresample_la-gstaudioresample.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-gstaudioresample.lo `test -f 'gstaudioresample.c' || echo '$(srcdir)/'`gstaudioresample.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-gstaudioresample.lo `test -f 'gstaudioresample.c' || echo '$(srcdir)/'`gstaudioresample.c
libgstaudioresample_la-speex_resampler_int.lo: speex_resampler_int.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_int.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Tpo -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='speex_resampler_int.c' object='libgstaudioresample_la-speex_resampler_int.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='speex_resampler_int.c' object='libgstaudioresample_la-speex_resampler_int.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
libgstaudioresample_la-speex_resampler_float.lo: speex_resampler_float.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_float.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Tpo -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='speex_resampler_float.c' object='libgstaudioresample_la-speex_resampler_float.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='speex_resampler_float.c' object='libgstaudioresample_la-speex_resampler_float.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
libgstaudioresample_la-speex_resampler_double.lo: speex_resampler_double.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_double.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Tpo -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='speex_resampler_double.c' object='libgstaudioresample_la-speex_resampler_double.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='speex_resampler_double.c' object='libgstaudioresample_la-speex_resampler_double.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
mostlyclean-libtool:
-rm -f *.lo
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:
"signed = (boolean) true" \
)
-/* If TRUE integer arithmetic resampling is faster and will be used if appropiate */
+/* If TRUE integer arithmetic resampling is faster and will be used if appropriate */
#if defined AUDIORESAMPLE_FORMAT_INT
static gboolean gst_audio_resample_use_int = TRUE;
#elif defined AUDIORESAMPLE_FORMAT_FLOAT
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&gst_audio_resample_src_template));
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&gst_audio_resample_sink_template));
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &gst_audio_resample_src_template);
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &gst_audio_resample_sink_template);
gst_element_class_set_details_simple (gstelement_class, "Audio resampler",
"Filter/Converter/Audio", "Resamples audio",
*
* Length of the resample filter
*
- * Deprectated: Use #GstAudioResample:quality property instead
+ * Deprecated: Use #GstAudioResample:quality property instead
*/
g_object_class_install_property (gobject_class, PROP_FILTER_LENGTH,
g_param_spec_int ("filter-length", "Filter length",
GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)),
GST_BUFFER_OFFSET (outbuf), GST_BUFFER_OFFSET_END (outbuf));
- if (out_processed == 0) {
- GST_DEBUG_OBJECT (resample, "buffer dropped");
- return GST_BASE_TRANSFORM_FLOW_DROPPED;
- }
return GST_FLOW_OK;
}
const GValue * value, GParamSpec * pspec)
{
GstAudioResample *resample;
+ gint quality;
resample = GST_AUDIO_RESAMPLE (object);
switch (prop_id) {
case PROP_QUALITY:
GST_BASE_TRANSFORM_LOCK (resample);
- resample->quality = g_value_get_int (value);
- GST_DEBUG_OBJECT (resample, "new quality %d", resample->quality);
+ quality = g_value_get_int (value);
+ GST_DEBUG_OBJECT (resample, "new quality %d", quality);
gst_audio_resample_update_state (resample, resample->width,
resample->channels, resample->inrate, resample->outrate,
- resample->quality, resample->fp);
+ quality, resample->fp);
GST_BASE_TRANSFORM_UNLOCK (resample);
break;
case PROP_FILTER_LENGTH:{
GST_BASE_TRANSFORM_LOCK (resample);
if (filter_length <= 8)
- resample->quality = 0;
+ quality = 0;
else if (filter_length <= 16)
- resample->quality = 1;
+ quality = 1;
else if (filter_length <= 32)
- resample->quality = 2;
+ quality = 2;
else if (filter_length <= 48)
- resample->quality = 3;
+ quality = 3;
else if (filter_length <= 64)
- resample->quality = 4;
+ quality = 4;
else if (filter_length <= 80)
- resample->quality = 5;
+ quality = 5;
else if (filter_length <= 96)
- resample->quality = 6;
+ quality = 6;
else if (filter_length <= 128)
- resample->quality = 7;
+ quality = 7;
else if (filter_length <= 160)
- resample->quality = 8;
+ quality = 8;
else if (filter_length <= 192)
- resample->quality = 9;
+ quality = 9;
else
- resample->quality = 10;
+ quality = 10;
- GST_DEBUG_OBJECT (resample, "new quality %d", resample->quality);
+ GST_DEBUG_OBJECT (resample, "new quality %d", quality);
gst_audio_resample_update_state (resample, resample->width,
resample->channels, resample->inrate, resample->outrate,
- resample->quality, resample->fp);
+ quality, resample->fp);
GST_BASE_TRANSFORM_UNLOCK (resample);
break;
}
resample_int_resampler_destroy (stb);
if (av > bv)
- GST_INFO ("Using integer resampler if appropiate: %lf < %lf", bv, av);
+ GST_INFO ("Using integer resampler if appropriate: %lf < %lf", bv, av);
else
GST_INFO ("Using float resampler for everything: %lf <= %lf", av, bv);
#ifdef OUTSIDE_SPEEX
#include <stdlib.h>
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
#include <glib.h>
+#ifdef HAVE_ORC
+#include <orc/orc.h>
+#endif
+
#define EXPORT G_GNUC_INTERNAL
+#ifdef _USE_SSE
+#ifndef HAVE_XMMINTRIN_H
+#undef _USE_SSE
+#endif
+#endif
+
+#ifdef _USE_SSE2
+#ifndef HAVE_EMMINTRIN_H
+#undef _USE_SSE2
+#endif
+#endif
+
static inline void *
speex_alloc (int size)
{
#include <math.h>
-#ifndef M_PI
-#define M_PI 3.14159263
-#endif
-
#ifdef FIXED_POINT
#define WORD2INT(x) ((x) < -32767 ? -32768 : ((x) > 32766 ? 32767 : (x)))
#else
#define NULL 0
#endif
-#ifdef _USE_SSE
+#if defined _USE_SSE || defined _USE_SSE2
#include "resample_sse.h"
#endif
#define FIXED_STACK_ALLOC 1024
#endif
+/* Allow selecting SSE or not when compiled with SSE support */
+#ifdef _USE_SSE
+#define SSE_FALLBACK(macro) \
+ if (st->use_sse) goto sse_##macro##_sse; {
+#define SSE_IMPLEMENTATION(macro) \
+ goto sse_##macro##_end; } sse_##macro##_sse: {
+#define SSE_END(macro) sse_##macro##_end:; }
+#else
+#define SSE_FALLBACK(macro)
+#endif
+
+#ifdef _USE_SSE2
+#define SSE2_FALLBACK(macro) \
+ if (st->use_sse2) goto sse2_##macro##_sse2; {
+#define SSE2_IMPLEMENTATION(macro) \
+ goto sse2_##macro##_end; } sse2_##macro##_sse2: {
+#define SSE2_END(macro) sse2_##macro##_end:; }
+#else
+#define SSE2_FALLBACK(macro)
+#endif
+
+
typedef int (*resampler_basic_func) (SpeexResamplerState *, spx_uint32_t,
const spx_word16_t *, spx_uint32_t *, spx_word16_t *, spx_uint32_t *);
int in_stride;
int out_stride;
+
+ int use_sse:1;
+ int use_sse2:1;
};
static double kaiser12_table[68] = {
else if (fabs (x) > .5f * N)
return 0;
/*FIXME: Can it really be any slower than this? */
- return WORD2INT (32768. * cutoff * sin (M_PI * xx) / (M_PI * xx) *
+ return WORD2INT (32768. * cutoff * sin (G_PI * xx) / (G_PI * xx) *
compute_func (fabs (2. * x / N), window_func));
}
#else
else if (fabs (x) > .5 * N)
return 0;
/*FIXME: Can it really be any slower than this? */
- return cutoff * sin (M_PI * xx) / (M_PI * xx) * compute_func (fabs (2. * x /
+ return cutoff * sin (G_PI * xx) / (G_PI * xx) * compute_func (fabs (2. * x /
N), window_func);
}
#endif
const spx_word16_t *sinc = &sinc_table[samp_frac_num * N];
const spx_word16_t *iptr = &in[last_sample];
-#ifndef OVERRIDE_INNER_PRODUCT_SINGLE
+ SSE_FALLBACK (INNER_PRODUCT_SINGLE)
sum = 0;
for (j = 0; j < N; j++)
sum += MULT16_16 (sinc[j], iptr[j]);
/* This code is slower on most DSPs which have only 2 accumulators.
- Plus this this forces truncation to 32 bits and you lose the HW guard bits.
+ Plus this forces truncation to 32 bits and you lose the HW guard bits.
I think we can trust the compiler and let it vectorize and/or unroll itself.
spx_word32_t accum[4] = {0,0,0,0};
for(j=0;j<N;j+=4) {
}
sum = accum[0] + accum[1] + accum[2] + accum[3];
*/
-#else
+#ifdef OVERRIDE_INNER_PRODUCT_SINGLE
+ SSE_IMPLEMENTATION (INNER_PRODUCT_SINGLE)
sum = inner_product_single (sinc, iptr, N);
+ SSE_END(INNER_PRODUCT_SINGLE)
#endif
out[out_stride * out_sample++] = SATURATE32 (PSHR32 (sum, 15), 32767);
const spx_word16_t *sinc = &sinc_table[samp_frac_num * N];
const spx_word16_t *iptr = &in[last_sample];
-#ifndef OVERRIDE_INNER_PRODUCT_DOUBLE
+ SSE2_FALLBACK (INNER_PRODUCT_DOUBLE)
double accum[4] = { 0, 0, 0, 0 };
for (j = 0; j < N; j += 4) {
accum[3] += sinc[j + 3] * iptr[j + 3];
}
sum = accum[0] + accum[1] + accum[2] + accum[3];
-#else
+#ifdef OVERRIDE_INNER_PRODUCT_DOUBLE
+ SSE2_IMPLEMENTATION (INNER_PRODUCT_DOUBLE)
sum = inner_product_double (sinc, iptr, N);
+ SSE2_END (INNER_PRODUCT_DOUBLE)
#endif
out[out_stride * out_sample++] = PSHR32 (sum, 15);
spx_word16_t interp[4];
-#ifndef OVERRIDE_INTERPOLATE_PRODUCT_SINGLE
+ SSE_FALLBACK (INTERPOLATE_PRODUCT_SINGLE)
spx_word32_t accum[4] = { 0, 0, 0, 0 };
for (j = 0; j < N; j++) {
1)) + MULT16_32_Q15 (interp[1], SHR32 (accum[1],
1)) + MULT16_32_Q15 (interp[2], SHR32 (accum[2],
1)) + MULT16_32_Q15 (interp[3], SHR32 (accum[3], 1));
-#else
+#ifdef OVERRIDE_INTERPOLATE_PRODUCT_SINGLE
+ SSE_IMPLEMENTATION (INTERPOLATE_PRODUCT_SINGLE)
cubic_coef (frac, interp);
sum =
interpolate_product_single (iptr,
st->sinc_table + st->oversample + 4 - offset - 2, N, st->oversample,
interp);
+ SSE_END (INTERPOLATE_PRODUCT_SINGLE)
#endif
out[out_stride * out_sample++] = SATURATE32 (PSHR32 (sum, 14), 32767);
spx_word16_t interp[4];
-#ifndef OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
+ SSE2_FALLBACK (INTERPOLATE_PRODUCT_DOUBLE)
double accum[4] = { 0, 0, 0, 0 };
for (j = 0; j < N; j++) {
MULT16_32_Q15 (interp[0], accum[0]) + MULT16_32_Q15 (interp[1],
accum[1]) + MULT16_32_Q15 (interp[2],
accum[2]) + MULT16_32_Q15 (interp[3], accum[3]);
-#else
+#ifdef OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
+ SSE2_IMPLEMENTATION (INTERPOLATE_PRODUCT_DOUBLE)
cubic_coef (frac, interp);
sum =
interpolate_product_double (iptr,
st->sinc_table + st->oversample + 4 - offset - 2, N, st->oversample,
interp);
+ SSE2_END (INTERPOLATE_PRODUCT_DOUBLE)
#endif
out[out_stride * out_sample++] = PSHR32 (sum, 15);
out_rate, quality, err);
}
+#if defined HAVE_ORC && !defined DISABLE_ORC
+static void
+check_insn_set (SpeexResamplerState * st, const char *name)
+{
+ if (!name)
+ return;
+ if (!strcmp (name, "sse"))
+ st->use_sse = 1;
+ if (!strcmp (name, "sse2"))
+ st->use_sse = st->use_sse2 = 1;
+}
+#endif
+
EXPORT SpeexResamplerState *
speex_resampler_init_frac (spx_uint32_t nb_channels, spx_uint32_t ratio_num,
spx_uint32_t ratio_den, spx_uint32_t in_rate, spx_uint32_t out_rate,
st->buffer_size = 160;
#endif
+ st->use_sse = st->use_sse2 = 0;
+#if defined HAVE_ORC && !defined DISABLE_ORC
+ orc_init ();
+ {
+ OrcTarget *target = orc_target_get_default ();
+ if (target) {
+ unsigned int flags = orc_target_get_default_flags (target);
+ check_insn_set (st, orc_target_get_name (target));
+ for (i = 0; i < 32; ++i) {
+ if (flags & (1 << i)) {
+ check_insn_set (st, orc_target_get_flag_name (target, i));
+ }
+ }
+ }
+ }
+#endif
+
/* Per channel data */
st->last_sample = (spx_int32_t *) speex_alloc (nb_channels * sizeof (int));
st->magic_samples = (spx_uint32_t *) speex_alloc (nb_channels * sizeof (int));
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#ifdef HAVE_XMMINTRIN_H
#include <xmmintrin.h>
+#endif
#define OVERRIDE_INNER_PRODUCT_SINGLE
static inline float inner_product_single(const float *a, const float *b, unsigned int len)
}
#ifdef _USE_SSE2
+#ifdef HAVE_EMMINTRIN_H
#include <emmintrin.h>
+#endif
#define OVERRIDE_INNER_PRODUCT_DOUBLE
+#ifdef DOUBLE_PRECISION
+static inline double inner_product_double(const double *a, const double *b, unsigned int len)
+{
+ int i;
+ double ret;
+ __m128d sum = _mm_setzero_pd();
+ for (i=0;i<len;i+=4)
+ {
+ sum = _mm_add_pd(sum, _mm_mul_pd(_mm_loadu_pd(a+i), _mm_loadu_pd(b+i)));
+ sum = _mm_add_pd(sum, _mm_mul_pd(_mm_loadu_pd(a+i+2), _mm_loadu_pd(b+i+2)));
+ }
+ sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
+ _mm_store_sd(&ret, sum);
+ return ret;
+}
+#else
static inline double inner_product_double(const float *a, const float *b, unsigned int len)
{
int i;
_mm_store_sd(&ret, sum);
return ret;
}
+#endif
+
#define OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
+
+#ifdef DOUBLE_PRECISION
+static inline double interpolate_product_double(const double *a, const double *b, unsigned int len, const spx_uint32_t oversample, double *frac) {
+ int i;
+ double ret;
+ __m128d sum;
+ __m128d sum1 = _mm_setzero_pd();
+ __m128d sum2 = _mm_setzero_pd();
+ __m128d f1 = _mm_loadu_pd(frac);
+ __m128d f2 = _mm_loadu_pd(frac+2);
+ __m128d t;
+ for(i=0;i<len;i+=2)
+ {
+ t = _mm_mul_pd(_mm_load1_pd(a+i), _mm_loadu_pd(b+i*oversample));
+ sum1 = _mm_add_pd(sum1, t);
+ sum2 = _mm_add_pd(sum2, _mm_unpackhi_pd(t, t));
+
+ t = _mm_mul_pd(_mm_load1_pd(a+i+1), _mm_loadu_pd(b+(i+1)*oversample));
+ sum1 = _mm_add_pd(sum1, t);
+ sum2 = _mm_add_pd(sum2, _mm_unpackhi_pd(t, t));
+ }
+ sum1 = _mm_mul_pd(f1, sum1);
+ sum2 = _mm_mul_pd(f2, sum2);
+ sum = _mm_add_pd(sum1, sum2);
+ sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
+ _mm_store_sd(&ret, sum);
+ return ret;
+}
+#else
static inline double interpolate_product_double(const float *a, const float *b, unsigned int len, const spx_uint32_t oversample, float *frac) {
int i;
double ret;
_mm_store_sd(&ret, sum);
return ret;
}
+#endif
#endif
* Boston, MA 02111-1307, USA.
*/
+#define _USE_SSE2
#define FLOATING_POINT
#define DOUBLE_PRECISION
#define OUTSIDE_SPEEX
* Boston, MA 02111-1307, USA.
*/
+#define _USE_SSE
+#define _USE_SSE2
#define FLOATING_POINT
#define OUTSIDE_SPEEX
#define RANDOM_PREFIX resample_float
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
am_libgstaudiotestsrc_la_OBJECTS = \
libgstaudiotestsrc_la-gstaudiotestsrc.lo
libgstaudiotestsrc_la_OBJECTS = $(am_libgstaudiotestsrc_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
libgstaudiotestsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(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 = $(libgstaudiotestsrc_la_SOURCES)
DIST_SOURCES = $(libgstaudiotestsrc_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstaudiotestsrc.la: $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_DEPENDENCIES)
+libgstaudiotestsrc.la: $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_DEPENDENCIES) $(EXTRA_libgstaudiotestsrc_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstaudiotestsrc_la_LINK) -rpath $(plugindir) $(libgstaudiotestsrc_la_OBJECTS) $(libgstaudiotestsrc_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstaudiotestsrc_la-gstaudiotestsrc.lo: gstaudiotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstaudiotestsrc_la-gstaudiotestsrc.lo -MD -MP -MF $(DEPDIR)/libgstaudiotestsrc_la-gstaudiotestsrc.Tpo -c -o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' || echo '$(srcdir)/'`gstaudiotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudiotestsrc_la-gstaudiotestsrc.Tpo $(DEPDIR)/libgstaudiotestsrc_la-gstaudiotestsrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstaudiotestsrc.c' object='libgstaudiotestsrc_la-gstaudiotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstaudiotestsrc.c' object='libgstaudiotestsrc_la-gstaudiotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' || echo '$(srcdir)/'`gstaudiotestsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudiotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudiotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstaudiotestsrc_la-gstaudiotestsrc.lo `test -f 'gstaudiotestsrc.c' || echo '$(srcdir)/'`gstaudiotestsrc.c
mostlyclean-libtool:
-rm -f *.lo
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:
#include "gstaudiotestsrc.h"
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
-#ifndef M_PI_2
-#define M_PI_2 1.57079632679489661923
-#endif
-
-#define M_PI_M2 ( M_PI + M_PI )
+#define M_PI_M2 ( G_PI + G_PI )
GST_DEBUG_CATEGORY_STATIC (audio_test_src_debug);
#define GST_CAT_DEFAULT audio_test_src_debug
{GST_AUDIO_TEST_SRC_WAVE_TICKS, "Periodic Ticks", "ticks"},
{GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE, "White Gaussian noise",
"gaussian-noise"},
+ {GST_AUDIO_TEST_SRC_WAVE_RED_NOISE, "Red (brownian) noise", "red-noise"},
+ {GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE, "Blue noise", "blue-noise"},
+ {GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE, "Violet noise", "violet-noise"},
{0, NULL, NULL},
};
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_audio_test_src_src_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_audio_test_src_src_template);
gst_element_class_set_details_simple (element_class,
"Audio test source", "Source/Audio",
"Creates audio test signals of given frequency and volume",
src->accumulator -= M_PI_M2; \
\
for (c = 0; c < src->channels; ++c) { \
- samples[i++] = (g##type) ((src->accumulator < M_PI) ? amp : -amp); \
+ samples[i++] = (g##type) ((src->accumulator < G_PI) ? amp : -amp); \
} \
} \
}
gdouble step, amp; \
\
step = M_PI_M2 * src->freq / src->samplerate; \
- amp = (src->volume * scale) / M_PI; \
+ amp = (src->volume * scale) / G_PI; \
\
i = 0; \
while (i < (src->generate_samples_per_buffer * src->channels)) { \
if (src->accumulator >= M_PI_M2) \
src->accumulator -= M_PI_M2; \
\
- if (src->accumulator < M_PI) { \
+ if (src->accumulator < G_PI) { \
for (c = 0; c < src->channels; ++c) \
samples[i++] = (g##type) (src->accumulator * amp); \
} else { \
gdouble step, amp; \
\
step = M_PI_M2 * src->freq / src->samplerate; \
- amp = (src->volume * scale) / M_PI_2; \
+ amp = (src->volume * scale) / G_PI_2; \
\
i = 0; \
while (i < (src->generate_samples_per_buffer * src->channels)) { \
if (src->accumulator >= M_PI_M2) \
src->accumulator -= M_PI_M2; \
\
- if (src->accumulator < (M_PI * 0.5)) { \
+ if (src->accumulator < (G_PI_2)) { \
for (c = 0; c < src->channels; ++c) \
samples[i++] = (g##type) (src->accumulator * amp); \
- } else if (src->accumulator < (M_PI * 1.5)) { \
+ } else if (src->accumulator < (G_PI * 1.5)) { \
for (c = 0; c < src->channels; ++c) \
- samples[i++] = (g##type) ((src->accumulator - M_PI) * -amp); \
+ samples[i++] = (g##type) ((src->accumulator - G_PI) * -amp); \
} else { \
for (c = 0; c < src->channels; ++c) \
samples[i++] = (g##type) ((M_PI_M2 - src->accumulator) * -amp); \
(ProcessFunc) gst_audio_test_src_create_gaussian_white_noise_double
};
+/* Brownian (Red) Noise: noise where the power density decreases by 6 dB per
+ * octave with increasing frequency
+ *
+ * taken from http://vellocet.com/dsp/noise/VRand.html
+ * by Andrew Simper of Vellocet (andy@vellocet.com)
+ */
+
+#define DEFINE_RED_NOISE(type,scale) \
+static void \
+gst_audio_test_src_create_red_noise_##type (GstAudioTestSrc * src, g##type * samples) \
+{ \
+ gint i, c; \
+ gdouble amp = (src->volume * scale); \
+ gdouble state = src->red.state; \
+ \
+ for (i = 0; i < src->generate_samples_per_buffer * src->channels; ) { \
+ for (c = 0; c < src->channels; ++c) { \
+ while (TRUE) { \
+ gdouble r = g_rand_double_range (src->gen, -1.0, 1.0); \
+ state += r; \
+ if (state < -8.0f || state > 8.0f) state -= r; \
+ else break; \
+ } \
+ samples[i++] = (g##type) (amp * state * 0.0625f); /* /16.0 */ \
+ } \
+ } \
+ src->red.state = state; \
+}
+
+DEFINE_RED_NOISE (int16, 32767.0);
+DEFINE_RED_NOISE (int32, 2147483647.0);
+DEFINE_RED_NOISE (float, 1.0);
+DEFINE_RED_NOISE (double, 1.0);
+
+static const ProcessFunc red_noise_funcs[] = {
+ (ProcessFunc) gst_audio_test_src_create_red_noise_int16,
+ (ProcessFunc) gst_audio_test_src_create_red_noise_int32,
+ (ProcessFunc) gst_audio_test_src_create_red_noise_float,
+ (ProcessFunc) gst_audio_test_src_create_red_noise_double
+};
+
+/* Blue Noise: apply spectral inversion to pink noise */
+
+#define DEFINE_BLUE_NOISE(type) \
+static void \
+gst_audio_test_src_create_blue_noise_##type (GstAudioTestSrc * src, g##type * samples) \
+{ \
+ gint i, c; \
+ static gdouble flip=1.0; \
+ \
+ gst_audio_test_src_create_pink_noise_##type (src, samples); \
+ for (i = 0; i < src->generate_samples_per_buffer * src->channels; ) { \
+ for (c = 0; c < src->channels; ++c) { \
+ samples[i++] *= flip; \
+ } \
+ flip *= -1.0; \
+ } \
+}
+
+DEFINE_BLUE_NOISE (int16);
+DEFINE_BLUE_NOISE (int32);
+DEFINE_BLUE_NOISE (float);
+DEFINE_BLUE_NOISE (double);
+
+static const ProcessFunc blue_noise_funcs[] = {
+ (ProcessFunc) gst_audio_test_src_create_blue_noise_int16,
+ (ProcessFunc) gst_audio_test_src_create_blue_noise_int32,
+ (ProcessFunc) gst_audio_test_src_create_blue_noise_float,
+ (ProcessFunc) gst_audio_test_src_create_blue_noise_double
+};
+
+
+/* Violet Noise: apply spectral inversion to red noise */
+
+#define DEFINE_VIOLET_NOISE(type) \
+static void \
+gst_audio_test_src_create_violet_noise_##type (GstAudioTestSrc * src, g##type * samples) \
+{ \
+ gint i, c; \
+ static gdouble flip=1.0; \
+ \
+ gst_audio_test_src_create_red_noise_##type (src, samples); \
+ for (i = 0; i < src->generate_samples_per_buffer * src->channels; ) { \
+ for (c = 0; c < src->channels; ++c) { \
+ samples[i++] *= flip; \
+ } \
+ flip *= -1.0; \
+ } \
+}
+
+DEFINE_VIOLET_NOISE (int16);
+DEFINE_VIOLET_NOISE (int32);
+DEFINE_VIOLET_NOISE (float);
+DEFINE_VIOLET_NOISE (double);
+
+static const ProcessFunc violet_noise_funcs[] = {
+ (ProcessFunc) gst_audio_test_src_create_violet_noise_int16,
+ (ProcessFunc) gst_audio_test_src_create_violet_noise_int32,
+ (ProcessFunc) gst_audio_test_src_create_violet_noise_float,
+ (ProcessFunc) gst_audio_test_src_create_violet_noise_double
+};
+
+
/*
* gst_audio_test_src_change_wave:
* Assign function pointer of wave genrator.
src->gen = g_rand_new ();
src->process = gaussian_white_noise_funcs[src->format];
break;
+ case GST_AUDIO_TEST_SRC_WAVE_RED_NOISE:
+ if (!(src->gen))
+ src->gen = g_rand_new ();
+ src->red.state = 0.0;
+ src->process = red_noise_funcs[src->format];
+ break;
+ case GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE:
+ if (!(src->gen))
+ src->gen = g_rand_new ();
+ gst_audio_test_src_init_pink_noise (src);
+ src->process = blue_noise_funcs[src->format];
+ break;
+ case GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE:
+ if (!(src->gen))
+ src->gen = g_rand_new ();
+ src->red.state = 0.0;
+ src->process = violet_noise_funcs[src->format];
+ break;
default:
GST_ERROR ("invalid wave-form");
break;
if (eclass->send_event)
eclass->send_event (GST_ELEMENT_CAST (basesrc),
gst_event_new_tag (taglist));
+ else
+ gst_tag_list_free (taglist);
src->tags_pushed = TRUE;
}
* @GST_AUDIO_TEST_SRC_WAVE_SINE_TAB: sine wave using a table
* @GST_AUDIO_TEST_SRC_WAVE_TICKS: periodic ticks
* @GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE: white (zero mean) Gaussian noise; volume sets the standard deviation of the noise in units of the range of values of the sample type, e.g. volume=0.1 produces noise with a standard deviation of 0.1*32767=3277 with 16-bit integer samples, or 0.1*1.0=0.1 with floating-point samples.
+ * @GST_AUDIO_TEST_SRC_WAVE_RED_NOISE: red (brownian) noise
+ * @GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE: spectraly inverted pink noise
+ * @GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE: spectraly inverted red (brownian) noise
*
* Different types of supported sound waves.
*/
GST_AUDIO_TEST_SRC_WAVE_PINK_NOISE,
GST_AUDIO_TEST_SRC_WAVE_SINE_TAB,
GST_AUDIO_TEST_SRC_WAVE_TICKS,
- GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE
-} GstAudioTestSrcWave;
+ GST_AUDIO_TEST_SRC_WAVE_GAUSSIAN_WHITE_NOISE,
+ GST_AUDIO_TEST_SRC_WAVE_RED_NOISE,
+ GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE,
+ GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE
+} GstAudioTestSrcWave;
#define PINK_MAX_RANDOM_ROWS (30)
#define PINK_RANDOM_BITS (16)
gdouble scalar; /* Used to scale within range of -1.0 to +1.0 */
} GstPinkNoise;
+typedef struct {
+ gdouble state; /* noise state */
+} GstRedNoise;
+
typedef enum {
GST_AUDIO_TEST_SRC_FORMAT_NONE = -1,
GST_AUDIO_TEST_SRC_FORMAT_S16 = 0,
GstAudioTestSrcWave wave;
gdouble volume;
gdouble freq;
-
+
/* audio parameters */
gint channels;
gint samplerate;
gint samples_per_buffer;
gint sample_size;
GstAudioTestSrcFormat format;
-
+
/*< private >*/
gboolean tags_pushed; /* send tags just once ? */
GstClockTimeDiff timestamp_offset; /* base offset */
gint generate_samples_per_buffer; /* used to generate a partial buffer */
gboolean can_activate_pull;
gboolean reverse; /* play backwards */
-
+
/* waveform specific context data */
GRand *gen; /* random number generator */
gdouble accumulator; /* phase angle */
GstPinkNoise pink;
+ GstRedNoise red;
gdouble wave_table[1024];
};
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
nodist_libgstencodebin_la_OBJECTS = $(am__objects_1)
libgstencodebin_la_OBJECTS = $(am_libgstencodebin_la_OBJECTS) \
$(nodist_libgstencodebin_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
libgstencodebin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstencodebin_la_SOURCES) \
$(nodist_libgstencodebin_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstencodebin.la: $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_DEPENDENCIES)
+libgstencodebin.la: $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_DEPENDENCIES) $(EXTRA_libgstencodebin_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstencodebin_la_LINK) -rpath $(plugindir) $(libgstencodebin_la_OBJECTS) $(libgstencodebin_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstencodebin_la-gstencodebin.lo: gstencodebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gstencodebin.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gstencodebin.Tpo -c -o libgstencodebin_la-gstencodebin.lo `test -f 'gstencodebin.c' || echo '$(srcdir)/'`gstencodebin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gstencodebin.Tpo $(DEPDIR)/libgstencodebin_la-gstencodebin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstencodebin.c' object='libgstencodebin_la-gstencodebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstencodebin.c' object='libgstencodebin_la-gstencodebin.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencodebin.lo `test -f 'gstencodebin.c' || echo '$(srcdir)/'`gstencodebin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencodebin.lo `test -f 'gstencodebin.c' || echo '$(srcdir)/'`gstencodebin.c
libgstencodebin_la-gstsmartencoder.lo: gstsmartencoder.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gstsmartencoder.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gstsmartencoder.Tpo -c -o libgstencodebin_la-gstsmartencoder.lo `test -f 'gstsmartencoder.c' || echo '$(srcdir)/'`gstsmartencoder.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gstsmartencoder.Tpo $(DEPDIR)/libgstencodebin_la-gstsmartencoder.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsmartencoder.c' object='libgstencodebin_la-gstsmartencoder.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsmartencoder.c' object='libgstencodebin_la-gstsmartencoder.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstsmartencoder.lo `test -f 'gstsmartencoder.c' || echo '$(srcdir)/'`gstsmartencoder.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstsmartencoder.lo `test -f 'gstsmartencoder.c' || echo '$(srcdir)/'`gstsmartencoder.c
libgstencodebin_la-gststreamcombiner.lo: gststreamcombiner.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gststreamcombiner.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gststreamcombiner.Tpo -c -o libgstencodebin_la-gststreamcombiner.lo `test -f 'gststreamcombiner.c' || echo '$(srcdir)/'`gststreamcombiner.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gststreamcombiner.Tpo $(DEPDIR)/libgstencodebin_la-gststreamcombiner.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststreamcombiner.c' object='libgstencodebin_la-gststreamcombiner.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststreamcombiner.c' object='libgstencodebin_la-gststreamcombiner.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamcombiner.lo `test -f 'gststreamcombiner.c' || echo '$(srcdir)/'`gststreamcombiner.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamcombiner.lo `test -f 'gststreamcombiner.c' || echo '$(srcdir)/'`gststreamcombiner.c
libgstencodebin_la-gststreamsplitter.lo: gststreamsplitter.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gststreamsplitter.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gststreamsplitter.Tpo -c -o libgstencodebin_la-gststreamsplitter.lo `test -f 'gststreamsplitter.c' || echo '$(srcdir)/'`gststreamsplitter.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gststreamsplitter.Tpo $(DEPDIR)/libgstencodebin_la-gststreamsplitter.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststreamsplitter.c' object='libgstencodebin_la-gststreamsplitter.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststreamsplitter.c' object='libgstencodebin_la-gststreamsplitter.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamsplitter.lo `test -f 'gststreamsplitter.c' || echo '$(srcdir)/'`gststreamsplitter.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gststreamsplitter.lo `test -f 'gststreamsplitter.c' || echo '$(srcdir)/'`gststreamsplitter.c
libgstencodebin_la-gstencode-marshal.lo: gstencode-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -MT libgstencodebin_la-gstencode-marshal.lo -MD -MP -MF $(DEPDIR)/libgstencodebin_la-gstencode-marshal.Tpo -c -o libgstencodebin_la-gstencode-marshal.lo `test -f 'gstencode-marshal.c' || echo '$(srcdir)/'`gstencode-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstencodebin_la-gstencode-marshal.Tpo $(DEPDIR)/libgstencodebin_la-gstencode-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstencode-marshal.c' object='libgstencodebin_la-gstencode-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstencode-marshal.c' object='libgstencodebin_la-gstencode-marshal.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencode-marshal.lo `test -f 'gstencode-marshal.c' || echo '$(srcdir)/'`gstencode-marshal.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstencodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstencodebin_la_CFLAGS) $(CFLAGS) -c -o libgstencodebin_la-gstencode-marshal.lo `test -f 'gstencode-marshal.c' || echo '$(srcdir)/'`gstencode-marshal.c
mostlyclean-libtool:
-rm -f *.lo
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:
* Handling mp3!xing!idv3 and theora!ogg tagsetting scenarios:
* Once we have chosen a muxer:
* When a new stream is requested:
- * If muxer is 'Formatter' OR doesn't have a TagSetter interface:
+ * If muxer isn't 'Formatter' OR doesn't have a TagSetter interface:
* Find a Formatter for the given stream (preferably with TagSetter)
* Insert that before muxer
**/
#define fast_pad_link(a,b) gst_pad_link_full((a),(b),GST_PAD_LINK_CHECK_NOTHING)
#define fast_element_link(a,b) gst_element_link_pads_full((a),"src",(b),"sink",GST_PAD_LINK_CHECK_NOTHING)
+typedef enum
+{
+ GST_ENC_FLAG_NO_AUDIO_CONVERSION = (1 << 0),
+ GST_ENC_FLAG_NO_VIDEO_CONVERSION = (1 << 1)
+} GstEncFlags;
+
+#define GST_TYPE_ENC_FLAGS (gst_enc_flags_get_type())
+GType gst_enc_flags_get_type (void);
+
/* generic templates */
static GstStaticPadTemplate muxer_src_template =
GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
/* available muxers, encoders and parsers */
GList *muxers;
+ GList *formatters;
GList *encoders;
GList *parsers;
guint64 tolerance;
gboolean avoid_reencoding;
+
+ GstEncFlags flags;
};
struct _GstEncodeBinClass
GstElement *parser;
GstElement *smartencoder;
GstElement *outfilter; /* Output capsfilter (streamprofile.format) */
+ GstElement *formatter;
GstElement *outqueue; /* Queue just before the muxer */
};
#define DEFAULT_QUEUE_TIME_MAX GST_SECOND
#define DEFAULT_AUDIO_JITTER_TOLERANCE 20 * GST_MSECOND
#define DEFAULT_AVOID_REENCODING FALSE
+#define DEFAULT_FLAGS 0
#define DEFAULT_RAW_CAPS \
"video/x-raw-yuv; " \
PROP_QUEUE_TIME_MAX,
PROP_AUDIO_JITTER_TOLERANCE,
PROP_AVOID_REENCODING,
+ PROP_FLAGS,
PROP_LAST
};
LAST_SIGNAL
};
+#define C_FLAGS(v) ((guint) v)
+
+GType
+gst_enc_flags_get_type (void)
+{
+ static const GFlagsValue values[] = {
+ {C_FLAGS (GST_ENC_FLAG_NO_AUDIO_CONVERSION), "Do not use audio conversion "
+ "elements", "no-audio-conversion"},
+ {C_FLAGS (GST_ENC_FLAG_NO_VIDEO_CONVERSION), "Do not use video conversion "
+ "elements", "no-video-conversion"},
+ {0, NULL, NULL}
+ };
+ static volatile GType id = 0;
+
+ if (g_once_init_enter ((gsize *) & id)) {
+ GType _id;
+
+ _id = g_flags_register_static ("GstEncFlags", values);
+
+ g_once_init_leave ((gsize *) & id, _id);
+ }
+
+ return id;
+}
+
static guint gst_encode_bin_signals[LAST_SIGNAL] = { 0 };
static GstStaticCaps default_raw_caps = GST_STATIC_CAPS (DEFAULT_RAW_CAPS);
static GstPad *gst_encode_bin_request_pad_signal (GstEncodeBin * encodebin,
GstCaps * caps);
+static inline GstElement *_get_formatter (GstEncodeBin * ebin,
+ GstEncodingProfile * sprof);
+
static void
gst_encode_bin_class_init (GstEncodeBinClass * klass)
{
"The GstEncodingProfile to use", GST_TYPE_ENCODING_PROFILE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (gobject_klass, PROP_QUEUE_BUFFERS_MAX,
+ g_object_class_install_property (gobject_klass, PROP_QUEUE_BYTES_MAX,
g_param_spec_uint ("queue-bytes-max", "Max. size (kB)",
"Max. amount of data in the queue (bytes, 0=disable)",
0, G_MAXUINT, DEFAULT_QUEUE_BYTES_MAX,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (gobject_klass, PROP_QUEUE_BYTES_MAX,
+ g_object_class_install_property (gobject_klass, PROP_QUEUE_BUFFERS_MAX,
g_param_spec_uint ("queue-buffers-max", "Max. size (buffers)",
"Max. number of buffers in the queue (0=disable)", 0, G_MAXUINT,
DEFAULT_QUEUE_BUFFERS_MAX,
DEFAULT_AVOID_REENCODING,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstEncodeBin:flags
+ *
+ * Control the behaviour of encodebin.
+ */
+ g_object_class_install_property (gobject_klass, PROP_FLAGS,
+ g_param_spec_flags ("flags", "Flags", "Flags to control behaviour",
+ GST_TYPE_ENC_FLAGS, DEFAULT_FLAGS,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
/* Signals */
/**
* GstEncodeBin::request-pad
klass->request_pad = gst_encode_bin_request_pad_signal;
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&muxer_src_template));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&video_sink_template));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&audio_sink_template));
- /* gst_element_class_add_pad_template (gstelement_klass, */
- /* gst_static_pad_template_get (&text_sink_template)); */
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&private_sink_template));
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &muxer_src_template);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &video_sink_template);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &audio_sink_template);
+ /* gst_element_class_add_static_pad_template (gstelement_klass, */
+ /* &text_sink_template); */
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &private_sink_template);
gstelement_klass->change_state =
GST_DEBUG_FUNCPTR (gst_encode_bin_change_state);
if (ebin->muxers)
gst_plugin_feature_list_free (ebin->muxers);
+ if (ebin->formatters)
+ gst_plugin_feature_list_free (ebin->formatters);
+
if (ebin->encoders)
gst_plugin_feature_list_free (ebin->encoders);
gst_encode_bin_init (GstEncodeBin * encode_bin)
{
GstPadTemplate *tmpl;
- GList *formatters;
encode_bin->muxers =
gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_MUXER,
GST_RANK_MARGINAL);
- formatters =
+
+ encode_bin->formatters =
gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_FORMATTER,
GST_RANK_SECONDARY);
- encode_bin->muxers = g_list_concat (encode_bin->muxers, formatters);
encode_bin->encoders =
gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_ENCODER,
encode_bin->queue_time_max = DEFAULT_QUEUE_TIME_MAX;
encode_bin->tolerance = DEFAULT_AUDIO_JITTER_TOLERANCE;
encode_bin->avoid_reencoding = DEFAULT_AVOID_REENCODING;
+ encode_bin->flags = DEFAULT_FLAGS;
tmpl = gst_static_pad_template_get (&muxer_src_template);
encode_bin->srcpad = gst_ghost_pad_new_no_target_from_template ("src", tmpl);
case PROP_AVOID_REENCODING:
ebin->avoid_reencoding = g_value_get_boolean (value);
break;
+ case PROP_FLAGS:
+ ebin->flags = g_value_get_flags (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_AVOID_REENCODING:
g_value_set_boolean (value, ebin->avoid_reencoding);
break;
+ case PROP_FLAGS:
+ g_value_set_flags (value, ebin->flags);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
+static gboolean
+_has_class (GstElement * element, const gchar * classname)
+{
+ GstElementClass *klass;
+
+ klass = GST_ELEMENT_GET_CLASS (element);
+
+ return strstr (klass->details.klass, classname) != NULL;
+}
+
/* FIXME : Add handling of streams that don't need encoding */
/* FIXME : Add handling of streams that don't require conversion elements */
/*
GList *tmp, *tosync = NULL;
const GstCaps *format;
const GstCaps *restriction;
+ const gchar *missing_element_name;
format = gst_encoding_profile_get_format (sprof);
restriction = gst_encoding_profile_get_restriction (sprof);
muxerpad = get_compatible_muxer_sink_pad (ebin, NULL, format);
if (G_UNLIKELY (muxerpad == NULL))
goto no_muxer_pad;
+
}
/* Output Queue.
* We only use a 1buffer long queue here, the actual queueing will be done
- * in the intput queue */
+ * in the input queue */
last = sgroup->outqueue = gst_element_factory_make ("queue", NULL);
g_object_set (sgroup->outqueue, "max-size-buffers", (guint32) 1,
- "max-size-bytes", (guint32) 0, "max-size-time", (guint64) 0, NULL);
+ "max-size-bytes", (guint32) 0, "max-size-time", (guint64) 0,
+ "silent", TRUE, NULL);
gst_bin_add (GST_BIN (ebin), sgroup->outqueue);
tosync = g_list_append (tosync, sgroup->outqueue);
}
gst_object_unref (srcpad);
+ /* Check if we need a formatter
+ * If we have no muxer or
+ * if the muxer isn't a formatter and doesn't implement the tagsetter interface
+ */
+ if (!ebin->muxer
+ || (!gst_element_implements_interface (ebin->muxer, GST_TYPE_TAG_SETTER)
+ && !_has_class (ebin->muxer, "Formatter"))) {
+ sgroup->formatter = _get_formatter (ebin, sprof);
+ if (sgroup->formatter) {
+ GST_DEBUG ("Adding formatter for %" GST_PTR_FORMAT, format);
+
+ gst_bin_add (GST_BIN (ebin), sgroup->formatter);
+ tosync = g_list_append (tosync, sgroup->formatter);
+ if (G_UNLIKELY (!fast_element_link (sgroup->formatter, last)))
+ goto formatter_link_failure;
+ last = sgroup->formatter;
+ }
+ }
+
+
/* Output capsfilter
* This will receive the format caps from the streamprofile */
GST_DEBUG ("Adding output capsfilter for %" GST_PTR_FORMAT, format);
last = sgroup->outfilter;
- /* FIXME :
- *
- * The usage of parsers in encoding/muxing scenarios is
- * just too undefined to just use as-is.
- *
- * Take the use-case where you want to re-mux a stream of type
- * "my/media". You create a StreamEncodingProfile with that type
- * as the target (as-is). And you use decodebin2/uridecodebin
- * upstream.
- *
- * * demuxer exposes "my/media"
- * * a parser is available for "my/media" which has a source pad
- * caps of "my/media,parsed=True"
- * * decodebin2/uridecodebin exposes a new pad with the parsed caps
- * * You request a new stream from encodebin, which will match the
- * streamprofile and creates a group (i.e. going through this method)
- * There is a matching parser (the same used in the decoder) whose
- * source pad caps intersects with the stream profile caps, you
- * therefore use it...
- * * ... but that parser has a "my/media,parsed=False" sink pad caps
- * * ... and you can't link your decodebin pad to encodebin.
- *
- * In the end, it comes down to parsers only taking into account the
- * decoding use-cases.
- *
- * One way to solve that might be to :
- * * Make parsers sink pad caps be "framed={False,True}" and the
- * source pad caps be "framed=True"
- * * Modify decodebin2 accordingly to avoid looping and chaining
- * an infinite number of parsers
- *
- * Another way would be to have "well-known" caps properties to specify
- * whether a stream has been parsed or not.
- * * currently we fail. aacparse uses 'framed' and mp3parse uses 'parsed'
- */
- /* FIXME : Re-enable once parser situation is un-$#*@(%$#ed */
-#if 0
- /* Parser.
- * FIXME : identify smart parsers (used for re-encoding) */
sgroup->parser = _get_parser (ebin, sprof);
if (sgroup->parser != NULL) {
goto parser_link_failure;
last = sgroup->parser;
}
-#endif
/* Stream combiner */
sgroup->combiner = g_object_new (GST_TYPE_STREAM_COMBINER, NULL);
g_object_set (sgroup->inqueue, "max-size-buffers",
(guint32) ebin->queue_buffers_max, "max-size-bytes",
(guint32) ebin->queue_bytes_max, "max-size-time",
- (guint64) ebin->queue_time_max, NULL);
+ (guint64) ebin->queue_time_max, "silent", TRUE, NULL);
gst_bin_add (GST_BIN (ebin), sgroup->inqueue);
tosync = g_list_append (tosync, sgroup->inqueue);
/* Check if stream format is compatible */
srcpad = gst_element_get_static_pad (sgroup->smartencoder, "src");
- tmpcaps = gst_pad_get_caps (srcpad);
+ tmpcaps = gst_pad_get_caps_reffed (srcpad);
if (!gst_caps_can_intersect (tmpcaps, format)) {
GST_DEBUG ("We don't have a smart encoder for the stream format");
gst_object_unref (sgroup->smartencoder);
/* 3.2. restriction elements */
/* FIXME : Once we have properties for specific converters, use those */
if (GST_IS_ENCODING_VIDEO_PROFILE (sprof)) {
- GstElement *cspace, *scale, *vrate, *cspace2;
+ const gboolean native_video =
+ ! !(ebin->flags & GST_ENC_FLAG_NO_VIDEO_CONVERSION);
+ GstElement *cspace = NULL, *scale, *vrate, *cspace2 = NULL;
GST_LOG ("Adding conversion elements for video stream");
- cspace = gst_element_factory_make ("ffmpegcolorspace", NULL);
- scale = gst_element_factory_make ("videoscale", NULL);
- /* 4-tap scaling and black borders */
- g_object_set (scale, "method", 2, "add-borders", TRUE, NULL);
- cspace2 = gst_element_factory_make ("ffmpegcolorspace", NULL);
+ if (!native_video) {
+ cspace = gst_element_factory_make ("ffmpegcolorspace", NULL);
+ scale = gst_element_factory_make ("videoscale", NULL);
+ if (!scale) {
+ missing_element_name = "videoscale";
+ goto missing_element;
+ }
+ /* 4-tap scaling and black borders */
+ g_object_set (scale, "method", 2, "add-borders", TRUE, NULL);
+ cspace2 = gst_element_factory_make ("ffmpegcolorspace", NULL);
+
+ if (!cspace || !cspace2) {
+ missing_element_name = "ffmpegcolorspace";
+ goto missing_element;
+ }
- gst_bin_add_many ((GstBin *) ebin, cspace, scale, cspace2, NULL);
- tosync = g_list_append (tosync, cspace);
- tosync = g_list_append (tosync, scale);
- tosync = g_list_append (tosync, cspace2);
+ gst_bin_add_many ((GstBin *) ebin, cspace, scale, cspace2, NULL);
+ tosync = g_list_append (tosync, cspace);
+ tosync = g_list_append (tosync, scale);
+ tosync = g_list_append (tosync, cspace2);
- sgroup->converters = g_list_prepend (sgroup->converters, cspace);
- sgroup->converters = g_list_prepend (sgroup->converters, scale);
- sgroup->converters = g_list_prepend (sgroup->converters, cspace2);
+ sgroup->converters = g_list_prepend (sgroup->converters, cspace);
+ sgroup->converters = g_list_prepend (sgroup->converters, scale);
+ sgroup->converters = g_list_prepend (sgroup->converters, cspace2);
- if (!fast_element_link (cspace, scale) ||
- !fast_element_link (scale, cspace2))
- goto converter_link_failure;
+ if (!fast_element_link (cspace, scale) ||
+ !fast_element_link (scale, cspace2))
+ goto converter_link_failure;
+ }
if (!gst_encoding_video_profile_get_variableframerate
(GST_ENCODING_VIDEO_PROFILE (sprof))) {
vrate = gst_element_factory_make ("videorate", NULL);
+ if (!vrate) {
+ missing_element_name = "videorate";
+ goto missing_element;
+ }
+
gst_bin_add ((GstBin *) ebin, vrate);
tosync = g_list_prepend (tosync, vrate);
sgroup->converters = g_list_prepend (sgroup->converters, vrate);
- if (!fast_element_link (cspace2, vrate) ||
- !fast_element_link (vrate, last))
+
+ if ((!native_video && !fast_element_link (cspace2, vrate))
+ || !fast_element_link (vrate, last))
goto converter_link_failure;
- } else if (!fast_element_link (cspace2, last))
- goto converter_link_failure;
- last = cspace;
+ if (!native_video)
+ last = cspace;
+ else
+ last = vrate;
+ } else if (!native_video) {
+ if (!fast_element_link (cspace2, last))
+ goto converter_link_failure;
+ last = cspace;
+ }
- } else if (GST_IS_ENCODING_AUDIO_PROFILE (sprof)) {
+ } else if (GST_IS_ENCODING_AUDIO_PROFILE (sprof)
+ && !(ebin->flags & GST_ENC_FLAG_NO_AUDIO_CONVERSION)) {
GstElement *aconv, *ares, *arate, *aconv2;
GST_LOG ("Adding conversion elements for audio stream");
arate = gst_element_factory_make ("audiorate", NULL);
g_object_set (arate, "tolerance", (guint64) ebin->tolerance, NULL);
+ if (!arate) {
+ missing_element_name = "audiorate";
+ goto missing_element;
+ }
aconv = gst_element_factory_make ("audioconvert", NULL);
aconv2 = gst_element_factory_make ("audioconvert", NULL);
ares = gst_element_factory_make ("audioresample", NULL);
+ if (!aconv || !aconv2) {
+ missing_element_name = "audioconvert";
+ goto missing_element;
+ }
+ if (!ares) {
+ missing_element_name = "audioresample";
+ goto missing_element;
+ }
gst_bin_add_many ((GstBin *) ebin, arate, aconv, ares, aconv2, NULL);
tosync = g_list_append (tosync, arate);
"Couldn't find a compatible muxer pad to link encoder to");
goto cleanup;
+missing_element:
+ gst_element_post_message (GST_ELEMENT_CAST (ebin),
+ gst_missing_element_message_new (GST_ELEMENT_CAST (ebin),
+ missing_element_name));
+ GST_ELEMENT_ERROR (ebin, CORE, MISSING_PLUGIN,
+ (_("Missing element '%s' - check your GStreamer installation."),
+ missing_element_name), (NULL));
+ goto cleanup;
+
encoder_link_failure:
GST_ERROR_OBJECT (ebin, "Failed to link the encoder");
goto cleanup;
GST_ERROR_OBJECT (ebin, "Couldn't link encoder to muxer");
goto cleanup;
-outfilter_link_failure:
+formatter_link_failure:
GST_ERROR_OBJECT (ebin, "Couldn't link output filter to output queue");
goto cleanup;
+outfilter_link_failure:
+ GST_ERROR_OBJECT (ebin,
+ "Couldn't link output filter to output queue/formatter");
+ goto cleanup;
+
passthrough_link_failure:
GST_ERROR_OBJECT (ebin, "Failed linking splitter in passthrough mode");
goto cleanup;
GST_ERROR_OBJECT (ebin, "Failure linking to the combiner");
goto cleanup;
-#if 0
parser_link_failure:
GST_ERROR_OBJECT (ebin, "Failure linking the parser");
goto cleanup;
-#endif
converter_link_failure:
GST_ERROR_OBJECT (ebin, "Failure linking the video converters");
}
static gboolean
-_factory_can_sink_caps (GstElementFactory * factory, const GstCaps * caps)
+_gst_caps_match_foreach (GQuark field_id, const GValue * value, gpointer data)
+{
+ GstStructure *structure = data;
+ const GValue *other_value = gst_structure_id_get_value (structure, field_id);
+
+ if (G_UNLIKELY (other_value == NULL))
+ return FALSE;
+ if (gst_value_compare (value, other_value) == GST_VALUE_EQUAL) {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+/*
+ * checks that there is at least one structure on caps_a that has
+ * all its fields exactly the same as one structure on caps_b
+ */
+static gboolean
+_gst_caps_match (const GstCaps * caps_a, const GstCaps * caps_b)
+{
+ gint i, j;
+ gboolean res = FALSE;
+
+ for (i = 0; i < gst_caps_get_size (caps_a); i++) {
+ GstStructure *structure_a = gst_caps_get_structure (caps_a, i);
+ for (j = 0; j < gst_caps_get_size (caps_b); j++) {
+ GstStructure *structure_b = gst_caps_get_structure (caps_b, j);
+
+ res = gst_structure_foreach (structure_a, _gst_caps_match_foreach,
+ structure_b);
+ if (res)
+ goto end;
+ }
+ }
+end:
+ return res;
+}
+
+static gboolean
+_factory_can_handle_caps (GstElementFactory * factory, const GstCaps * caps,
+ GstPadDirection dir, gboolean exact)
{
GList *templates = factory->staticpadtemplates;
while (templates) {
GstStaticPadTemplate *template = (GstStaticPadTemplate *) templates->data;
- if (template->direction == GST_PAD_SINK) {
+ if (template->direction == dir) {
GstCaps *tmp = gst_static_caps_get (&template->static_caps);
- if (gst_caps_can_intersect (tmp, caps)) {
+ if ((exact && _gst_caps_match (caps, tmp)) ||
+ (!exact && gst_caps_can_intersect (tmp, caps))) {
gst_caps_unref (tmp);
return TRUE;
}
}
static inline GstElement *
+_get_formatter (GstEncodeBin * ebin, GstEncodingProfile * sprof)
+{
+ GList *formatters, *tmpfmtr;
+ GstElement *formatter = NULL;
+ GstElementFactory *formatterfact = NULL;
+ const GstCaps *format;
+ const gchar *preset;
+
+ format = gst_encoding_profile_get_format (sprof);
+ preset = gst_encoding_profile_get_preset (sprof);
+
+ GST_DEBUG ("Getting list of formatters for format %" GST_PTR_FORMAT, format);
+
+ formatters =
+ gst_element_factory_list_filter (ebin->formatters, format, GST_PAD_SRC,
+ FALSE);
+
+ if (formatters == NULL)
+ goto beach;
+
+ /* FIXME : signal the user if he wants this */
+ for (tmpfmtr = formatters; tmpfmtr; tmpfmtr = tmpfmtr->next) {
+ formatterfact = (GstElementFactory *) tmpfmtr->data;
+
+ GST_DEBUG_OBJECT (ebin, "Trying formatter %s",
+ GST_PLUGIN_FEATURE_NAME (formatterfact));
+
+ if ((formatter =
+ _create_element_and_set_preset (formatterfact, preset, NULL)))
+ break;
+ }
+
+ gst_plugin_feature_list_free (formatters);
+
+beach:
+ return formatter;
+}
+
+static gint
+compare_elements (gconstpointer a, gconstpointer b, gpointer udata)
+{
+ GstCaps *caps = udata;
+ GstElementFactory *fac_a = (GstElementFactory *) a;
+ GstElementFactory *fac_b = (GstElementFactory *) b;
+
+ /* FIXME not quite sure this is the best algorithm to order the elements
+ * Some caps similarity comparison algorithm would fit better than going
+ * boolean (equals/not equals).
+ */
+ gboolean equals_a = _factory_can_handle_caps (fac_a, caps, GST_PAD_SRC, TRUE);
+ gboolean equals_b = _factory_can_handle_caps (fac_b, caps, GST_PAD_SRC, TRUE);
+
+ if (equals_a == equals_b) {
+ return gst_plugin_feature_get_rank ((GstPluginFeature *) fac_b) -
+ gst_plugin_feature_get_rank ((GstPluginFeature *) fac_a);
+ } else if (equals_a) {
+ return -1;
+ } else if (equals_b) {
+ return 1;
+ }
+ return 0;
+}
+
+static inline GstElement *
_get_muxer (GstEncodeBin * ebin)
{
- GList *muxers, *tmpmux;
+ GList *muxers, *formatters, *tmpmux;
GstElement *muxer = NULL;
GstElementFactory *muxerfact = NULL;
const GList *tmp;
muxers =
gst_element_factory_list_filter (ebin->muxers, format, GST_PAD_SRC, TRUE);
+ formatters =
+ gst_element_factory_list_filter (ebin->formatters, format, GST_PAD_SRC,
+ TRUE);
+
+ muxers = g_list_sort_with_data (muxers, compare_elements, (gpointer) format);
+ formatters =
+ g_list_sort_with_data (formatters, compare_elements, (gpointer) format);
+
+ muxers = g_list_concat (muxers, formatters);
+
if (muxers == NULL)
goto beach;
for (tmp = profiles; tmp; tmp = tmp->next) {
GstEncodingProfile *sprof = (GstEncodingProfile *) tmp->data;
- if (!_factory_can_sink_caps (muxerfact,
- gst_encoding_profile_get_format (sprof))) {
- GST_DEBUG ("Skipping muxer because it can't sink caps %" GST_PTR_FORMAT,
- gst_encoding_profile_get_format (sprof));
+ if (!_factory_can_handle_caps (muxerfact,
+ gst_encoding_profile_get_format (sprof), GST_PAD_SINK, FALSE)) {
+ GST_DEBUG ("Skipping muxer because it can't sink caps %"
+ GST_PTR_FORMAT, gst_encoding_profile_get_format (sprof));
cansinkstreams = FALSE;
break;
}
if (sgroup->outqueue)
gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
- /* Capsfilter - outqueue */
- gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
- gst_element_unlink (sgroup->outfilter, sgroup->outqueue);
+ if (sgroup->formatter) {
+ /* capsfilter - formatter - outqueue */
+ gst_element_set_state (sgroup->formatter, GST_STATE_NULL);
+ gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
+ gst_element_unlink (sgroup->formatter, sgroup->outqueue);
+ gst_element_unlink (sgroup->outfilter, sgroup->formatter);
+ } else {
+ /* Capsfilter - outqueue */
+ gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
+ gst_element_unlink (sgroup->outfilter, sgroup->outqueue);
+ }
gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
gst_bin_remove (GST_BIN (ebin), sgroup->outqueue);
gst_smart_encoder_parent_class = g_type_class_peek_parent (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, "Smart Video Encoder",
"Codec/Recoder/Video",
gst_caps_unref (tmpl);
- if (gst_caps_is_empty (res))
+ if (gst_caps_is_empty (res)) {
+ gst_caps_unref (res);
ret = GST_STATE_CHANGE_FAILURE;
- else
+ } else
smart_encoder->available_caps = res;
GST_DEBUG_OBJECT (smart_encoder, "Done, available_caps:%" GST_PTR_FORMAT,
#endif
#include "gststreamcombiner.h"
+#include "gst/glib-compat-private.h"
static GstStaticPadTemplate src_template =
GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
GST_DEBUG_CATEGORY_INIT (gst_stream_combiner_debug, "streamcombiner", 0,
"Stream Combiner");
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&src_template));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&sink_template));
+ gst_element_class_add_static_pad_template (gstelement_klass, &src_template);
+ gst_element_class_add_static_pad_template (gstelement_klass, &sink_template);
gstelement_klass->request_new_pad =
GST_DEBUG_FUNCPTR (gst_stream_combiner_request_new_pad);
#endif
#include "gststreamsplitter.h"
+#include "gst/glib-compat-private.h"
static GstStaticPadTemplate src_template =
GST_STATIC_PAD_TEMPLATE ("src_%d", GST_PAD_SRC, GST_PAD_REQUEST,
GST_DEBUG_CATEGORY_INIT (gst_stream_splitter_debug, "streamsplitter", 0,
"Stream Splitter");
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&src_template));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&sink_template));
+ gst_element_class_add_static_pad_template (gstelement_klass, &src_template);
+ gst_element_class_add_static_pad_template (gstelement_klass, &sink_template);
gstelement_klass->request_new_pad =
GST_DEBUG_FUNCPTR (gst_stream_splitter_request_new_pad);
GstPad *srcpad = (GstPad *) tmp->data;
STREAMS_UNLOCK (stream_splitter);
- if (res)
- gst_caps_merge (res, gst_pad_peer_get_caps_reffed (srcpad));
- else
+ if (res) {
+ GstCaps *peercaps = gst_pad_peer_get_caps_reffed (srcpad);
+ if (peercaps)
+ gst_caps_merge (res, gst_caps_make_writable (peercaps));
+ } else {
res = gst_pad_peer_get_caps (srcpad);
+ }
STREAMS_LOCK (stream_splitter);
if (G_UNLIKELY (cookie != stream_splitter->cookie)) {
if (res) {
/* FIXME : we need to switch properly */
- GST_DEBUG_OBJECT (srcpad, "Setting caps on this pad was succesfull");
+ GST_DEBUG_OBJECT (srcpad, "Setting caps on this pad was successful");
stream_splitter->current = srcpad;
goto beach;
}
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstffmpegcolorspace_la-imgconvert.lo
libgstffmpegcolorspace_la_OBJECTS = \
$(am_libgstffmpegcolorspace_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
libgstffmpegcolorspace_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(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 = $(libgstffmpegcolorspace_la_SOURCES)
DIST_SOURCES = $(libgstffmpegcolorspace_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstffmpegcolorspace.la: $(libgstffmpegcolorspace_la_OBJECTS) $(libgstffmpegcolorspace_la_DEPENDENCIES)
+libgstffmpegcolorspace.la: $(libgstffmpegcolorspace_la_OBJECTS) $(libgstffmpegcolorspace_la_DEPENDENCIES) $(EXTRA_libgstffmpegcolorspace_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstffmpegcolorspace_la_LINK) -rpath $(plugindir) $(libgstffmpegcolorspace_la_OBJECTS) $(libgstffmpegcolorspace_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstffmpegcolorspace_la-gstffmpegcolorspace.lo: gstffmpegcolorspace.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-gstffmpegcolorspace.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcolorspace.Tpo -c -o libgstffmpegcolorspace_la-gstffmpegcolorspace.lo `test -f 'gstffmpegcolorspace.c' || echo '$(srcdir)/'`gstffmpegcolorspace.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcolorspace.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcolorspace.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstffmpegcolorspace.c' object='libgstffmpegcolorspace_la-gstffmpegcolorspace.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstffmpegcolorspace.c' object='libgstffmpegcolorspace_la-gstffmpegcolorspace.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcolorspace.lo `test -f 'gstffmpegcolorspace.c' || echo '$(srcdir)/'`gstffmpegcolorspace.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcolorspace.lo `test -f 'gstffmpegcolorspace.c' || echo '$(srcdir)/'`gstffmpegcolorspace.c
libgstffmpegcolorspace_la-gstffmpegcodecmap.lo: gstffmpegcodecmap.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-gstffmpegcodecmap.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcodecmap.Tpo -c -o libgstffmpegcolorspace_la-gstffmpegcodecmap.lo `test -f 'gstffmpegcodecmap.c' || echo '$(srcdir)/'`gstffmpegcodecmap.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcodecmap.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-gstffmpegcodecmap.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstffmpegcodecmap.c' object='libgstffmpegcolorspace_la-gstffmpegcodecmap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstffmpegcodecmap.c' object='libgstffmpegcolorspace_la-gstffmpegcodecmap.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcodecmap.lo `test -f 'gstffmpegcodecmap.c' || echo '$(srcdir)/'`gstffmpegcodecmap.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-gstffmpegcodecmap.lo `test -f 'gstffmpegcodecmap.c' || echo '$(srcdir)/'`gstffmpegcodecmap.c
libgstffmpegcolorspace_la-dsputil.lo: dsputil.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-dsputil.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-dsputil.Tpo -c -o libgstffmpegcolorspace_la-dsputil.lo `test -f 'dsputil.c' || echo '$(srcdir)/'`dsputil.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-dsputil.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-dsputil.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dsputil.c' object='libgstffmpegcolorspace_la-dsputil.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='dsputil.c' object='libgstffmpegcolorspace_la-dsputil.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-dsputil.lo `test -f 'dsputil.c' || echo '$(srcdir)/'`dsputil.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-dsputil.lo `test -f 'dsputil.c' || echo '$(srcdir)/'`dsputil.c
libgstffmpegcolorspace_la-mem.lo: mem.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-mem.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-mem.Tpo -c -o libgstffmpegcolorspace_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-mem.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-mem.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mem.c' object='libgstffmpegcolorspace_la-mem.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mem.c' object='libgstffmpegcolorspace_la-mem.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-mem.lo `test -f 'mem.c' || echo '$(srcdir)/'`mem.c
libgstffmpegcolorspace_la-utils.lo: utils.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-utils.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-utils.Tpo -c -o libgstffmpegcolorspace_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-utils.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-utils.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='utils.c' object='libgstffmpegcolorspace_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='utils.c' object='libgstffmpegcolorspace_la-utils.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-utils.lo `test -f 'utils.c' || echo '$(srcdir)/'`utils.c
libgstffmpegcolorspace_la-imgconvert.lo: imgconvert.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -MT libgstffmpegcolorspace_la-imgconvert.lo -MD -MP -MF $(DEPDIR)/libgstffmpegcolorspace_la-imgconvert.Tpo -c -o libgstffmpegcolorspace_la-imgconvert.lo `test -f 'imgconvert.c' || echo '$(srcdir)/'`imgconvert.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstffmpegcolorspace_la-imgconvert.Tpo $(DEPDIR)/libgstffmpegcolorspace_la-imgconvert.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='imgconvert.c' object='libgstffmpegcolorspace_la-imgconvert.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='imgconvert.c' object='libgstffmpegcolorspace_la-imgconvert.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-imgconvert.lo `test -f 'imgconvert.c' || echo '$(srcdir)/'`imgconvert.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstffmpegcolorspace_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstffmpegcolorspace_la_CFLAGS) $(CFLAGS) -c -o libgstffmpegcolorspace_la-imgconvert.lo `test -f 'imgconvert.c' || echo '$(srcdir)/'`imgconvert.c
mostlyclean-libtool:
-rm -f *.lo
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:
/* video only */
/**
* frames per sec multiplied by frame_rate_base.
- * for variable fps this is the precission, so if the timestamps
- * can be specified in msec precssion then this is 1000*frame_rate_base
+ * for variable fps this is the precision, so if the timestamps
+ * can be specified in msec precision then this is 1000*frame_rate_base
* - encoding: MUST be set by user
* - decoding: set by lavc. 0 or the frame_rate if available
*/
}
/* Convert a FFMPEG Pixel Format and optional AVCodecContext
- * to a GstCaps. If the context is ommitted, no fixed values
+ * to a GstCaps. If the context is omitted, no fixed values
* for video/audio size will be included in the GstCaps
*
* See below for usefulness
}
/* Convert a FFMPEG Sample Format and optional AVCodecContext
- * to a GstCaps. If the context is ommitted, no fixed values
+ * to a GstCaps. If the context is omitted, no fixed values
* for video/audio size will be included in the GstCaps
*
* See below for usefulness
}
/* Convert a FFMPEG codec Type and optional AVCodecContext
- * to a GstCaps. If the context is ommitted, no fixed values
+ * to a GstCaps. If the context is omitted, no fixed values
* for video/audio size will be included in the GstCaps
*
* CodecType is primarily meant for uncompressed data GstCaps!
}
/* Convert a GstCaps and a FFMPEG codec Type to a
- * AVCodecContext. If the context is ommitted, no fixed values
+ * AVCodecContext. If the context is omitted, no fixed values
* for video/audio size will be included in the context
*
* CodecType is primarily meant for uncompressed data GstCaps!
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_ffmpegcsp_src_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_ffmpegcsp_sink_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_ffmpegcsp_src_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_ffmpegcsp_sink_template);
gst_element_class_set_details_simple (element_class,
"FFMPEG Colorspace converter", "Filter/Converter/Video",
/*
- * Misc image convertion routines
+ * Misc image conversion routines
* Copyright (c) 2001, 2002, 2003 Fabrice Bellard.
*
* This library is free software; you can redistribute it and/or
/**
* @file imgconvert.c
- * Misc image convertion routines.
+ * Misc image conversion routines.
*/
/* TODO:
const AVPicture * src, int width, int height);
} ConvertEntry;
-/* Add each new convertion function in this table. In order to be able
+/* Add each new conversion function in this table. In order to be able
to convert from any format to any format, the following constraints
must be satisfied:
/*
- * Templates for image convertion routines
+ * Templates for image conversion routines
* Copyright (c) 2001, 2002, 2003 Fabrice Bellard.
*
* This library is free software; you can redistribute it and/or
#endif
}
-/* NOTE: ptr = NULL is explicetly allowed */
+/* NOTE: ptr = NULL is explictly allowed */
void
av_free (void *ptr)
{
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
am_libgstgdp_la_OBJECTS = libgstgdp_la-gstgdp.lo \
libgstgdp_la-gstgdppay.lo libgstgdp_la-gstgdpdepay.lo
libgstgdp_la_OBJECTS = $(am_libgstgdp_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
libgstgdp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstgdp_la_SOURCES)
DIST_SOURCES = $(libgstgdp_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstgdp.la: $(libgstgdp_la_OBJECTS) $(libgstgdp_la_DEPENDENCIES)
+libgstgdp.la: $(libgstgdp_la_OBJECTS) $(libgstgdp_la_DEPENDENCIES) $(EXTRA_libgstgdp_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstgdp_la_LINK) -rpath $(plugindir) $(libgstgdp_la_OBJECTS) $(libgstgdp_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstgdp_la-gstgdp.lo: gstgdp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -MT libgstgdp_la-gstgdp.lo -MD -MP -MF $(DEPDIR)/libgstgdp_la-gstgdp.Tpo -c -o libgstgdp_la-gstgdp.lo `test -f 'gstgdp.c' || echo '$(srcdir)/'`gstgdp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdp_la-gstgdp.Tpo $(DEPDIR)/libgstgdp_la-gstgdp.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgdp.c' object='libgstgdp_la-gstgdp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgdp.c' object='libgstgdp_la-gstgdp.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdp.lo `test -f 'gstgdp.c' || echo '$(srcdir)/'`gstgdp.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdp.lo `test -f 'gstgdp.c' || echo '$(srcdir)/'`gstgdp.c
libgstgdp_la-gstgdppay.lo: gstgdppay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -MT libgstgdp_la-gstgdppay.lo -MD -MP -MF $(DEPDIR)/libgstgdp_la-gstgdppay.Tpo -c -o libgstgdp_la-gstgdppay.lo `test -f 'gstgdppay.c' || echo '$(srcdir)/'`gstgdppay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdp_la-gstgdppay.Tpo $(DEPDIR)/libgstgdp_la-gstgdppay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgdppay.c' object='libgstgdp_la-gstgdppay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgdppay.c' object='libgstgdp_la-gstgdppay.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdppay.lo `test -f 'gstgdppay.c' || echo '$(srcdir)/'`gstgdppay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdppay.lo `test -f 'gstgdppay.c' || echo '$(srcdir)/'`gstgdppay.c
libgstgdp_la-gstgdpdepay.lo: gstgdpdepay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -MT libgstgdp_la-gstgdpdepay.lo -MD -MP -MF $(DEPDIR)/libgstgdp_la-gstgdpdepay.Tpo -c -o libgstgdp_la-gstgdpdepay.lo `test -f 'gstgdpdepay.c' || echo '$(srcdir)/'`gstgdpdepay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgdp_la-gstgdpdepay.Tpo $(DEPDIR)/libgstgdp_la-gstgdpdepay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgdpdepay.c' object='libgstgdp_la-gstgdpdepay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstgdpdepay.c' object='libgstgdp_la-gstgdpdepay.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdpdepay.lo `test -f 'gstgdpdepay.c' || echo '$(srcdir)/'`gstgdpdepay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgdp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgdp_la_CFLAGS) $(CFLAGS) -c -o libgstgdp_la-gstgdpdepay.lo `test -f 'gstgdpdepay.c' || echo '$(srcdir)/'`gstgdpdepay.c
mostlyclean-libtool:
-rm -f *.lo
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:
"Depayloads GStreamer Data Protocol buffers",
"Thomas Vander Stichele <thomas at apestaart dot org>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gdp_depay_sink_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gdp_depay_src_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gdp_depay_sink_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &gdp_depay_src_template);
}
static void
"Payloads GStreamer Data Protocol buffers",
"Thomas Vander Stichele <thomas at apestaart dot org>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gdp_pay_sink_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gdp_pay_src_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gdp_pay_sink_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &gdp_pay_src_template);
}
static void
plugin_LTLIBRARIES = libgstplaybin.la libgstdecodebin.la libgstdecodebin2.la
+csp_cflags = -DCOLORSPACE=\"ffmpegcolorspace\"
+
libgstplaybin_la_SOURCES = \
gstplayback.c \
gstplaybin.c \
gststreaminfo.c \
gststreamselector.c \
gstsubtitleoverlay.c \
+ gstplaysinkvideoconvert.c \
+ gstplaysinkaudioconvert.c \
+ gstplaysinkconvertbin.c \
gststreamsynchronizer.c
nodist_libgstplaybin_la_SOURCES = $(built_sources)
-libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
libgstplaybin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstplaybin_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
libgstdecodebin_la_SOURCES = gstdecodebin.c
nodist_libgstdecodebin_la_SOURCES = $(built_sources)
-libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
libgstdecodebin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstdecodebin_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
libgstdecodebin2_la_SOURCES = gstdecodebin2.c gsturidecodebin.c gstplay-enum.c
nodist_libgstdecodebin2_la_SOURCES = $(built_sources)
-libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
libgstdecodebin2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstdecodebin2_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
gststreamselector.h \
gstrawcaps.h \
gstsubtitleoverlay.h \
+ gstplaysinkvideoconvert.h \
+ gstplaysinkaudioconvert.h \
+ gstplaysinkconvertbin.h \
gststreamsynchronizer.h
BUILT_SOURCES = $(built_headers) $(built_sources)
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstdecodebin_la_SOURCES) \
$(nodist_libgstdecodebin_la_SOURCES) \
- -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) $(csp_cflags) \
-:LDFLAGS $(libgstdecodebin_la_LDFLAGS) \
$(libgstdecodebin_la_LIBADD) \
-ldl \
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstdecodebin2_la_SOURCES) \
$(nodist_libgstdecodebin2_la_SOURCES) \
- -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) $(csp_cflags) \
-:LDFLAGS $(libgstdecodebin2_la_LDFLAGS) \
$(libgstdecodebin2_la_LIBADD) \
-ldl \
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstplaybin_la_SOURCES) \
$(nodist_libgstplaybin_la_SOURCES) \
- -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) $(csp_cflags) \
-:LDFLAGS $(libgstplaybin_la_LDFLAGS) \
$(libgstplaybin_la_LIBADD) \
-ldl \
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
nodist_libgstdecodebin_la_OBJECTS = $(am__objects_1)
libgstdecodebin_la_OBJECTS = $(am_libgstdecodebin_la_OBJECTS) \
$(nodist_libgstdecodebin_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
libgstdecodebin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
libgstplaybin_la-gststreaminfo.lo \
libgstplaybin_la-gststreamselector.lo \
libgstplaybin_la-gstsubtitleoverlay.lo \
+ libgstplaybin_la-gstplaysinkvideoconvert.lo \
+ libgstplaybin_la-gstplaysinkaudioconvert.lo \
+ libgstplaybin_la-gstplaysinkconvertbin.lo \
libgstplaybin_la-gststreamsynchronizer.lo
am__objects_3 = libgstplaybin_la-gstplay-marshal.lo
nodist_libgstplaybin_la_OBJECTS = $(am__objects_3)
$(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 = $(libgstdecodebin_la_SOURCES) \
$(nodist_libgstdecodebin_la_SOURCES) \
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
built_sources = gstplay-marshal.c
built_headers = gstplay-marshal.h
plugin_LTLIBRARIES = libgstplaybin.la libgstdecodebin.la libgstdecodebin2.la
+csp_cflags = -DCOLORSPACE=\"ffmpegcolorspace\"
libgstplaybin_la_SOURCES = \
gstplayback.c \
gstplaybin.c \
gststreaminfo.c \
gststreamselector.c \
gstsubtitleoverlay.c \
+ gstplaysinkvideoconvert.c \
+ gstplaysinkaudioconvert.c \
+ gstplaysinkconvertbin.c \
gststreamsynchronizer.c
nodist_libgstplaybin_la_SOURCES = $(built_sources)
-libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstplaybin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
libgstplaybin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstplaybin_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
libgstplaybin_la_LIBTOOLFLAGS = --tag=disable-static
libgstdecodebin_la_SOURCES = gstdecodebin.c
nodist_libgstdecodebin_la_SOURCES = $(built_sources)
-libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
libgstdecodebin_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstdecodebin_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
libgstdecodebin_la_LIBTOOLFLAGS = --tag=disable-static
libgstdecodebin2_la_SOURCES = gstdecodebin2.c gsturidecodebin.c gstplay-enum.c
nodist_libgstdecodebin2_la_SOURCES = $(built_sources)
-libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+libgstdecodebin2_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(csp_cflags)
libgstdecodebin2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstdecodebin2_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
gststreamselector.h \
gstrawcaps.h \
gstsubtitleoverlay.h \
+ gstplaysinkvideoconvert.h \
+ gstplaysinkaudioconvert.h \
+ gstplaysinkconvertbin.h \
gststreamsynchronizer.h
BUILT_SOURCES = $(built_headers) $(built_sources)
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstdecodebin.la: $(libgstdecodebin_la_OBJECTS) $(libgstdecodebin_la_DEPENDENCIES)
+libgstdecodebin.la: $(libgstdecodebin_la_OBJECTS) $(libgstdecodebin_la_DEPENDENCIES) $(EXTRA_libgstdecodebin_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstdecodebin_la_LINK) -rpath $(plugindir) $(libgstdecodebin_la_OBJECTS) $(libgstdecodebin_la_LIBADD) $(LIBS)
-libgstdecodebin2.la: $(libgstdecodebin2_la_OBJECTS) $(libgstdecodebin2_la_DEPENDENCIES)
+libgstdecodebin2.la: $(libgstdecodebin2_la_OBJECTS) $(libgstdecodebin2_la_DEPENDENCIES) $(EXTRA_libgstdecodebin2_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstdecodebin2_la_LINK) -rpath $(plugindir) $(libgstdecodebin2_la_OBJECTS) $(libgstdecodebin2_la_LIBADD) $(LIBS)
-libgstplaybin.la: $(libgstplaybin_la_OBJECTS) $(libgstplaybin_la_DEPENDENCIES)
+libgstplaybin.la: $(libgstplaybin_la_OBJECTS) $(libgstplaybin_la_DEPENDENCIES) $(EXTRA_libgstplaybin_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstplaybin_la_LINK) -rpath $(plugindir) $(libgstplaybin_la_OBJECTS) $(libgstplaybin_la_LIBADD) $(LIBS)
mostlyclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaybin.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaybin2.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysink.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gststreaminfo.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gststreamselector.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.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 $@ $<
libgstdecodebin_la-gstdecodebin.lo: gstdecodebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin_la-gstdecodebin.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin_la-gstdecodebin.Tpo -c -o libgstdecodebin_la-gstdecodebin.lo `test -f 'gstdecodebin.c' || echo '$(srcdir)/'`gstdecodebin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin_la-gstdecodebin.Tpo $(DEPDIR)/libgstdecodebin_la-gstdecodebin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdecodebin.c' object='libgstdecodebin_la-gstdecodebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdecodebin.c' object='libgstdecodebin_la-gstdecodebin.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstdecodebin.lo `test -f 'gstdecodebin.c' || echo '$(srcdir)/'`gstdecodebin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstdecodebin.lo `test -f 'gstdecodebin.c' || echo '$(srcdir)/'`gstdecodebin.c
libgstdecodebin_la-gstplay-marshal.lo: gstplay-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin_la-gstplay-marshal.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin_la-gstplay-marshal.Tpo -c -o libgstdecodebin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin_la-gstplay-marshal.Tpo $(DEPDIR)/libgstdecodebin_la-gstplay-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplay-marshal.c' object='libgstdecodebin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplay-marshal.c' object='libgstdecodebin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
libgstdecodebin2_la-gstdecodebin2.lo: gstdecodebin2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gstdecodebin2.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gstdecodebin2.Tpo -c -o libgstdecodebin2_la-gstdecodebin2.lo `test -f 'gstdecodebin2.c' || echo '$(srcdir)/'`gstdecodebin2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gstdecodebin2.Tpo $(DEPDIR)/libgstdecodebin2_la-gstdecodebin2.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdecodebin2.c' object='libgstdecodebin2_la-gstdecodebin2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstdecodebin2.c' object='libgstdecodebin2_la-gstdecodebin2.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstdecodebin2.lo `test -f 'gstdecodebin2.c' || echo '$(srcdir)/'`gstdecodebin2.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstdecodebin2.lo `test -f 'gstdecodebin2.c' || echo '$(srcdir)/'`gstdecodebin2.c
libgstdecodebin2_la-gsturidecodebin.lo: gsturidecodebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gsturidecodebin.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gsturidecodebin.Tpo -c -o libgstdecodebin2_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gsturidecodebin.Tpo $(DEPDIR)/libgstdecodebin2_la-gsturidecodebin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsturidecodebin.c' object='libgstdecodebin2_la-gsturidecodebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsturidecodebin.c' object='libgstdecodebin2_la-gsturidecodebin.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
libgstdecodebin2_la-gstplay-enum.lo: gstplay-enum.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gstplay-enum.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gstplay-enum.Tpo -c -o libgstdecodebin2_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gstplay-enum.Tpo $(DEPDIR)/libgstdecodebin2_la-gstplay-enum.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplay-enum.c' object='libgstdecodebin2_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplay-enum.c' object='libgstdecodebin2_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
libgstdecodebin2_la-gstplay-marshal.lo: gstplay-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -MT libgstdecodebin2_la-gstplay-marshal.lo -MD -MP -MF $(DEPDIR)/libgstdecodebin2_la-gstplay-marshal.Tpo -c -o libgstdecodebin2_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdecodebin2_la-gstplay-marshal.Tpo $(DEPDIR)/libgstdecodebin2_la-gstplay-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplay-marshal.c' object='libgstdecodebin2_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplay-marshal.c' object='libgstdecodebin2_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdecodebin2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdecodebin2_la_CFLAGS) $(CFLAGS) -c -o libgstdecodebin2_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
libgstplaybin_la-gstplayback.lo: gstplayback.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplayback.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplayback.Tpo -c -o libgstplaybin_la-gstplayback.lo `test -f 'gstplayback.c' || echo '$(srcdir)/'`gstplayback.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplayback.Tpo $(DEPDIR)/libgstplaybin_la-gstplayback.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplayback.c' object='libgstplaybin_la-gstplayback.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplayback.c' object='libgstplaybin_la-gstplayback.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplayback.lo `test -f 'gstplayback.c' || echo '$(srcdir)/'`gstplayback.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplayback.lo `test -f 'gstplayback.c' || echo '$(srcdir)/'`gstplayback.c
libgstplaybin_la-gstplaybin.lo: gstplaybin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaybin.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaybin.Tpo -c -o libgstplaybin_la-gstplaybin.lo `test -f 'gstplaybin.c' || echo '$(srcdir)/'`gstplaybin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaybin.Tpo $(DEPDIR)/libgstplaybin_la-gstplaybin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplaybin.c' object='libgstplaybin_la-gstplaybin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplaybin.c' object='libgstplaybin_la-gstplaybin.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin.lo `test -f 'gstplaybin.c' || echo '$(srcdir)/'`gstplaybin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin.lo `test -f 'gstplaybin.c' || echo '$(srcdir)/'`gstplaybin.c
libgstplaybin_la-gstplaybin2.lo: gstplaybin2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaybin2.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaybin2.Tpo -c -o libgstplaybin_la-gstplaybin2.lo `test -f 'gstplaybin2.c' || echo '$(srcdir)/'`gstplaybin2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaybin2.Tpo $(DEPDIR)/libgstplaybin_la-gstplaybin2.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplaybin2.c' object='libgstplaybin_la-gstplaybin2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplaybin2.c' object='libgstplaybin_la-gstplaybin2.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin2.lo `test -f 'gstplaybin2.c' || echo '$(srcdir)/'`gstplaybin2.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybin2.lo `test -f 'gstplaybin2.c' || echo '$(srcdir)/'`gstplaybin2.c
libgstplaybin_la-gstplaysink.lo: gstplaysink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysink.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysink.Tpo -c -o libgstplaybin_la-gstplaysink.lo `test -f 'gstplaysink.c' || echo '$(srcdir)/'`gstplaysink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysink.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplaysink.c' object='libgstplaybin_la-gstplaysink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplaysink.c' object='libgstplaybin_la-gstplaysink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysink.lo `test -f 'gstplaysink.c' || echo '$(srcdir)/'`gstplaysink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysink.lo `test -f 'gstplaysink.c' || echo '$(srcdir)/'`gstplaysink.c
libgstplaybin_la-gstplaybasebin.lo: gstplaybasebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaybasebin.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaybasebin.Tpo -c -o libgstplaybin_la-gstplaybasebin.lo `test -f 'gstplaybasebin.c' || echo '$(srcdir)/'`gstplaybasebin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaybasebin.Tpo $(DEPDIR)/libgstplaybin_la-gstplaybasebin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplaybasebin.c' object='libgstplaybin_la-gstplaybasebin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplaybasebin.c' object='libgstplaybin_la-gstplaybasebin.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybasebin.lo `test -f 'gstplaybasebin.c' || echo '$(srcdir)/'`gstplaybasebin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaybasebin.lo `test -f 'gstplaybasebin.c' || echo '$(srcdir)/'`gstplaybasebin.c
libgstplaybin_la-gstplay-enum.lo: gstplay-enum.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplay-enum.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplay-enum.Tpo -c -o libgstplaybin_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplay-enum.Tpo $(DEPDIR)/libgstplaybin_la-gstplay-enum.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplay-enum.c' object='libgstplaybin_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplay-enum.c' object='libgstplaybin_la-gstplay-enum.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-enum.lo `test -f 'gstplay-enum.c' || echo '$(srcdir)/'`gstplay-enum.c
libgstplaybin_la-gststreaminfo.lo: gststreaminfo.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gststreaminfo.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gststreaminfo.Tpo -c -o libgstplaybin_la-gststreaminfo.lo `test -f 'gststreaminfo.c' || echo '$(srcdir)/'`gststreaminfo.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gststreaminfo.Tpo $(DEPDIR)/libgstplaybin_la-gststreaminfo.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststreaminfo.c' object='libgstplaybin_la-gststreaminfo.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststreaminfo.c' object='libgstplaybin_la-gststreaminfo.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreaminfo.lo `test -f 'gststreaminfo.c' || echo '$(srcdir)/'`gststreaminfo.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreaminfo.lo `test -f 'gststreaminfo.c' || echo '$(srcdir)/'`gststreaminfo.c
libgstplaybin_la-gststreamselector.lo: gststreamselector.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gststreamselector.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gststreamselector.Tpo -c -o libgstplaybin_la-gststreamselector.lo `test -f 'gststreamselector.c' || echo '$(srcdir)/'`gststreamselector.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gststreamselector.Tpo $(DEPDIR)/libgstplaybin_la-gststreamselector.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststreamselector.c' object='libgstplaybin_la-gststreamselector.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststreamselector.c' object='libgstplaybin_la-gststreamselector.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamselector.lo `test -f 'gststreamselector.c' || echo '$(srcdir)/'`gststreamselector.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamselector.lo `test -f 'gststreamselector.c' || echo '$(srcdir)/'`gststreamselector.c
libgstplaybin_la-gstsubtitleoverlay.lo: gstsubtitleoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstsubtitleoverlay.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstsubtitleoverlay.Tpo -c -o libgstplaybin_la-gstsubtitleoverlay.lo `test -f 'gstsubtitleoverlay.c' || echo '$(srcdir)/'`gstsubtitleoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstsubtitleoverlay.Tpo $(DEPDIR)/libgstplaybin_la-gstsubtitleoverlay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsubtitleoverlay.c' object='libgstplaybin_la-gstsubtitleoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsubtitleoverlay.c' object='libgstplaybin_la-gstsubtitleoverlay.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstsubtitleoverlay.lo `test -f 'gstsubtitleoverlay.c' || echo '$(srcdir)/'`gstsubtitleoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstsubtitleoverlay.lo `test -f 'gstsubtitleoverlay.c' || echo '$(srcdir)/'`gstsubtitleoverlay.c
+
+libgstplaybin_la-gstplaysinkvideoconvert.lo: gstplaysinkvideoconvert.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysinkvideoconvert.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Tpo -c -o libgstplaybin_la-gstplaysinkvideoconvert.lo `test -f 'gstplaysinkvideoconvert.c' || echo '$(srcdir)/'`gstplaysinkvideoconvert.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysinkvideoconvert.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplaysinkvideoconvert.c' object='libgstplaybin_la-gstplaysinkvideoconvert.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 $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysinkvideoconvert.lo `test -f 'gstplaysinkvideoconvert.c' || echo '$(srcdir)/'`gstplaysinkvideoconvert.c
+
+libgstplaybin_la-gstplaysinkaudioconvert.lo: gstplaysinkaudioconvert.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysinkaudioconvert.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Tpo -c -o libgstplaybin_la-gstplaysinkaudioconvert.lo `test -f 'gstplaysinkaudioconvert.c' || echo '$(srcdir)/'`gstplaysinkaudioconvert.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysinkaudioconvert.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplaysinkaudioconvert.c' object='libgstplaybin_la-gstplaysinkaudioconvert.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 $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysinkaudioconvert.lo `test -f 'gstplaysinkaudioconvert.c' || echo '$(srcdir)/'`gstplaysinkaudioconvert.c
+
+libgstplaybin_la-gstplaysinkconvertbin.lo: gstplaysinkconvertbin.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplaysinkconvertbin.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Tpo -c -o libgstplaybin_la-gstplaysinkconvertbin.lo `test -f 'gstplaysinkconvertbin.c' || echo '$(srcdir)/'`gstplaysinkconvertbin.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Tpo $(DEPDIR)/libgstplaybin_la-gstplaysinkconvertbin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplaysinkconvertbin.c' object='libgstplaybin_la-gstplaysinkconvertbin.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 $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplaysinkconvertbin.lo `test -f 'gstplaysinkconvertbin.c' || echo '$(srcdir)/'`gstplaysinkconvertbin.c
libgstplaybin_la-gststreamsynchronizer.lo: gststreamsynchronizer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gststreamsynchronizer.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.Tpo -c -o libgstplaybin_la-gststreamsynchronizer.lo `test -f 'gststreamsynchronizer.c' || echo '$(srcdir)/'`gststreamsynchronizer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.Tpo $(DEPDIR)/libgstplaybin_la-gststreamsynchronizer.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gststreamsynchronizer.c' object='libgstplaybin_la-gststreamsynchronizer.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gststreamsynchronizer.c' object='libgstplaybin_la-gststreamsynchronizer.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamsynchronizer.lo `test -f 'gststreamsynchronizer.c' || echo '$(srcdir)/'`gststreamsynchronizer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gststreamsynchronizer.lo `test -f 'gststreamsynchronizer.c' || echo '$(srcdir)/'`gststreamsynchronizer.c
libgstplaybin_la-gstplay-marshal.lo: gstplay-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -MT libgstplaybin_la-gstplay-marshal.lo -MD -MP -MF $(DEPDIR)/libgstplaybin_la-gstplay-marshal.Tpo -c -o libgstplaybin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstplaybin_la-gstplay-marshal.Tpo $(DEPDIR)/libgstplaybin_la-gstplay-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstplay-marshal.c' object='libgstplaybin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstplay-marshal.c' object='libgstplaybin_la-gstplay-marshal.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplaybin_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplaybin_la_CFLAGS) $(CFLAGS) -c -o libgstplaybin_la-gstplay-marshal.lo `test -f 'gstplay-marshal.c' || echo '$(srcdir)/'`gstplay-marshal.c
mostlyclean-libtool:
-rm -f *.lo
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:
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstdecodebin_la_SOURCES) \
$(nodist_libgstdecodebin_la_SOURCES) \
- -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin_la_CFLAGS) $(csp_cflags) \
-:LDFLAGS $(libgstdecodebin_la_LDFLAGS) \
$(libgstdecodebin_la_LIBADD) \
-ldl \
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstdecodebin2_la_SOURCES) \
$(nodist_libgstdecodebin2_la_SOURCES) \
- -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstdecodebin2_la_CFLAGS) $(csp_cflags) \
-:LDFLAGS $(libgstdecodebin2_la_LDFLAGS) \
$(libgstdecodebin2_la_LIBADD) \
-ldl \
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
-:SOURCES $(libgstplaybin_la_SOURCES) \
$(nodist_libgstplaybin_la_SOURCES) \
- -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) \
+ -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstplaybin_la_CFLAGS) $(csp_cflags) \
-:LDFLAGS $(libgstplaybin_la_LDFLAGS) \
$(libgstplaybin_la_LIBADD) \
-ldl \
is particulary important for chained oggs. Initially, a new group is created in
the 'building' state. All new streams will be added to the building group until
no-more-pads is signaled or one of the preroll queues overflows. When this happens,
- the group is commited to a list of groups ready for playback. PlaybaseBin will then
+ the group is committed to a list of groups ready for playback. PlaybaseBin will then
attach a padprobe to each stream to figure out when it finished. It will remove
the current group and install the next playable group, then.
stream detected. implements seeking and querying on the configured sinks.
It also waits for new notifications from playbasebin about any new groups that are
- becomming active. It then disconnects the sinks and reconnects them to the new
+ becoming active. It then disconnects the sinks and reconnects them to the new
pads in the group.
TODO
/* GStreamer
* Copyright (C) <2004> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) 2011 Hewlett-Packard Development Company, L.P.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#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 <string.h>
#include <gst/gst.h>
#include <gst/pbutils/pbutils.h>
+#include "gst/glib-compat-private.h"
#include "gstplay-marshal.h"
"The caps of the input data. (NULL = use typefind element)",
GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&decoder_bin_sink_template));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&decoder_bin_src_template));
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &decoder_bin_sink_template);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &decoder_bin_src_template);
gst_element_class_set_details_simple (gstelement_klass,
"Decoder Bin", "Generic/Bin/Decoder",
/* loop over the factories */
for (walk = factories; walk; walk = g_list_next (walk)) {
GstElementFactory *factory = GST_ELEMENT_FACTORY (walk->data);
+ GstElementFactory *src_factory;
GstElement *element;
GstPadLinkReturn ret;
GstPad *sinkpad;
- GST_DEBUG_OBJECT (decode_bin, "trying to link %s",
- gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+ GST_DEBUG_OBJECT (decode_bin, "trying to link %s to %s",
+ gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)),
+ GST_OBJECT_NAME (srcelement));
+
+ /* don't plug the same parser twice, but allow multiple
+ * instances of other elements (e.g. id3demux) in a row */
+ src_factory = gst_element_get_factory (srcelement);
+ if (src_factory == factory
+ && gst_element_factory_list_is_type (factory,
+ GST_ELEMENT_FACTORY_TYPE_PARSER)) {
+ GST_DEBUG_OBJECT (decode_bin,
+ "not inserting parser element %s twice in a row, skipping",
+ GST_PLUGIN_FEATURE_NAME (factory));
+ continue;
+ }
/* make an element from the factory first */
if ((element = gst_element_factory_create (factory, NULL)) == NULL) {
/* FIXME: we don't really do anything here for now. Ideally we should
* see if some of the queues are filled and increase their values
* in that case.
- * Note: be very carefull with thread safety here as this underrun
+ * Note: be very careful with thread safety here as this underrun
* signal is done from the streaming thread of queue srcpad which
* is different from the pad_added (where we add the queue to the
* list) and the overrun signals that are signalled from the
}
/* Check if this is an element with more than 1 pad. If this element
- * has more than 1 pad, we need to be carefull not to signal the
+ * has more than 1 pad, we need to be careful not to signal the
* no_more_pads signal after connecting the first pad. */
more = g_list_length (to_connect) > 1;
/* GStreamer
* Copyright (C) <2006> Edward Hervey <edward@fluendo.com>
* Copyright (C) <2009> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Hewlett-Packard Development Company, L.P.
+ * Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#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 <string.h>
#include "gstplayback.h"
#include "gstrawcaps.h"
+#include "gst/glib-compat-private.h"
+
/* generic templates */
static GstStaticPadTemplate decoder_bin_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink",
#define GST_CAT_DEFAULT gst_decode_bin_debug
typedef struct _GstPendingPad GstPendingPad;
+typedef struct _GstDecodeElement GstDecodeElement;
typedef struct _GstDecodeChain GstDecodeChain;
typedef struct _GstDecodeGroup GstDecodeGroup;
typedef struct _GstDecodePad GstDecodePad;
gboolean have_type; /* if we received the have_type signal */
guint have_type_id; /* signal id for have-type from typefind */
- gboolean async_pending; /* async-start has been emited */
+ gboolean async_pending; /* async-start has been emitted */
GMutex *dyn_lock; /* lock protecting pad blocking */
gboolean shutdown; /* if we are shutting down */
GList *blocked_pads; /* pads that have set to block */
gboolean expose_allstreams; /* Whether to expose unknow type streams or not */
+
+ GList *filtered; /* elements for which error messages are filtered */
};
struct _GstDecodeBinClass
/* automatic sizes, while prerolling we buffer up to 2MB, we ignore time
* and buffers in this case. */
-#define AUTO_PREROLL_SIZE_BYTES 2 * 1024 * 1024
-#define AUTO_PREROLL_SIZE_BUFFERS 0
-#define AUTO_PREROLL_SIZE_TIME 0
+#define AUTO_PREROLL_SIZE_BYTES 2 * 1024 * 1024
+#define AUTO_PREROLL_SIZE_BUFFERS 0
+#define AUTO_PREROLL_NOT_SEEKABLE_SIZE_TIME 10 * GST_SECOND
+#define AUTO_PREROLL_SEEKABLE_SIZE_TIME 0
/* whan playing, keep a max of 2MB of data but try to keep the number of buffers
* as low as possible (try to aim for 5 buffers) */
GstCaps * caps, GstDecodeBin * decode_bin);
static void decodebin_set_queue_size (GstDecodeBin * dbin,
- GstElement * multiqueue, gboolean preroll);
+ GstElement * multiqueue, gboolean preroll, gboolean seekable);
static gboolean gst_decode_bin_autoplug_continue (GstElement * element,
GstPad * pad, GstCaps * caps);
static GstPad *find_sink_pad (GstElement * element);
static GstStateChangeReturn gst_decode_bin_change_state (GstElement * element,
GstStateChange transition);
+static void gst_decode_bin_handle_message (GstBin * bin, GstMessage * message);
+
+static gboolean check_upstream_seekable (GstDecodeBin * dbin, GstPad * pad);
#define EXPOSE_LOCK(dbin) G_STMT_START { \
GST_LOG_OBJECT (dbin, \
gulong event_probe_id;
};
+struct _GstDecodeElement
+{
+ GstElement *element;
+ GstElement *capsfilter; /* Optional capsfilter for Parser/Convert */
+};
+
/* GstDecodeGroup
*
* Streams belonging to the same group/chain of a media file
GstPad *pad; /* srcpad that caused creation of this chain */
gboolean demuxer; /* TRUE if elements->data is a demuxer */
+ gboolean seekable; /* TRUE if this chain ends on a demuxer and is seekable */
GList *elements; /* All elements in this group, first
is the latest and most downstream element */
static GstDecodeGroup *gst_decode_group_new (GstDecodeBin * dbin,
GstDecodeChain * chain);
static gboolean gst_decode_chain_is_complete (GstDecodeChain * chain);
-static void gst_decode_chain_handle_eos (GstDecodeChain * chain);
static gboolean gst_decode_chain_expose (GstDecodeChain * chain,
GList ** endpads, gboolean * missing_plugin);
static gboolean gst_decode_chain_is_drained (GstDecodeChain * chain);
{
GObjectClass *gobject_klass;
GstElementClass *gstelement_klass;
+ GstBinClass *gstbin_klass;
gobject_klass = (GObjectClass *) klass;
gstelement_klass = (GstElementClass *) klass;
+ gstbin_klass = (GstBinClass *) klass;
parent_class = g_type_class_peek_parent (klass);
* @pad: The #GstPad.
* @caps: The #GstCaps found.
*
- * This function is emited when an array of possible factories for @caps on
+ * This function is emitted when an array of possible factories for @caps on
* @pad is needed. Decodebin2 will by default return an array with all
* compatible factories, sorted by rank.
*
* @factories: A #GValueArray of possible #GstElementFactory to use.
*
* Once decodebin2 has found the possible #GstElementFactory objects to try
- * for @caps on @pad, this signal is emited. The purpose of the signal is for
+ * for @caps on @pad, this signal is emitted. The purpose of the signal is for
* the application to perform additional sorting or filtering on the element
* factory array.
*
*
* This signal is emitted once decodebin2 has found all the possible
* #GstElementFactory that can be used to handle the given @caps. For each of
- * those factories, this signal is emited.
+ * those factories, this signal is emitted.
*
* The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
* value indicating what decodebin2 should do next.
/**
* GstDecodebin2:max-size-bytes
*
- * Max amount amount of bytes in the queue (0=automatic).
+ * Max amount of bytes in the queue (0=automatic).
*
* Since: 0.10.26
*/
/**
* GstDecodebin2:max-size-buffers
*
- * Max amount amount of buffers in the queue (0=automatic).
+ * Max amount of buffers in the queue (0=automatic).
*
* Since: 0.10.26
*/
/**
* GstDecodebin2:max-size-time
*
- * Max amount amount of time in the queue (in ns, 0=automatic).
+ * Max amount of time in the queue (in ns, 0=automatic).
*
* Since: 0.10.26
*/
klass->autoplug_sort = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_sort);
klass->autoplug_select = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_select);
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&decoder_bin_sink_template));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&decoder_bin_src_template));
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &decoder_bin_sink_template);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &decoder_bin_src_template);
gst_element_class_set_details_simple (gstelement_klass,
"Decoder Bin", "Generic/Bin/Decoder",
gstelement_klass->change_state =
GST_DEBUG_FUNCPTR (gst_decode_bin_change_state);
+
+ gstbin_klass->handle_message =
+ GST_DEBUG_FUNCPTR (gst_decode_bin_handle_message);
}
/* Must be called with factories lock! */
gboolean apcontinue = TRUE;
GValueArray *factories = NULL, *result = NULL;
GstDecodePad *dpad;
+ GstElementFactory *factory;
+ const gchar *classification;
+ gboolean is_parser_converter = FALSE;
+ gboolean res;
GST_DEBUG_OBJECT (dbin, "Pad %s:%s caps:%" GST_PTR_FORMAT,
GST_DEBUG_PAD_NAME (pad), caps);
- if (chain->elements && src != chain->elements->data) {
+ if (chain->elements
+ && src != ((GstDecodeElement *) chain->elements->data)->element
+ && src != ((GstDecodeElement *) chain->elements->data)->capsfilter) {
GST_ERROR_OBJECT (dbin, "New pad from not the last element in this chain");
return;
}
dpad = gst_decode_pad_new (dbin, pad, chain);
/* 1. Emit 'autoplug-continue' the result will tell us if this pads needs
- * further autoplugging. */
- g_signal_emit (G_OBJECT (dbin),
- gst_decode_bin_signals[SIGNAL_AUTOPLUG_CONTINUE], 0, dpad, caps,
- &apcontinue);
+ * further autoplugging. Only do this for fixed caps, for unfixed caps
+ * we will later come here again from the notify::caps handler. The
+ * problem with unfixed caps is that we can reliably tell if the output
+ * is e.g. accepted by a sink because only parts of the possible final
+ * caps might be accepted by the sink. */
+ if (gst_caps_is_fixed (caps))
+ g_signal_emit (G_OBJECT (dbin),
+ gst_decode_bin_signals[SIGNAL_AUTOPLUG_CONTINUE], 0, dpad, caps,
+ &apcontinue);
+ else
+ apcontinue = TRUE;
/* 1.a if autoplug-continue is FALSE or caps is a raw format, goto pad_is_final */
if ((!apcontinue) || are_final_caps (dbin, caps))
goto expose_pad;
- /* 1.b when the caps are not fixed yet, we can't be sure what element to
+ /* 1.b For Parser/Converter that can output different stream formats
+ * we insert a capsfilter with the sorted caps of all possible next
+ * elements and continue with the capsfilter srcpad */
+ factory = gst_element_get_factory (src);
+ classification = gst_element_factory_get_klass (factory);
+ is_parser_converter = (strstr (classification, "Parser")
+ && strstr (classification, "Converter"));
+
+ /* 1.c when the caps are not fixed yet, we can't be sure what element to
* connect. We delay autoplugging until the caps are fixed */
- if (!gst_caps_is_fixed (caps))
+ if (!is_parser_converter && !gst_caps_is_fixed (caps))
goto non_fixed;
- /* 1.c else get the factories and if there's no compatible factory goto
+ /* 1.d else get the factories and if there's no compatible factory goto
* unknown_type */
g_signal_emit (G_OBJECT (dbin),
gst_decode_bin_signals[SIGNAL_AUTOPLUG_FACTORIES], 0, dpad, caps,
/* If the caps are raw, this just means we don't want to expose them */
if (gst_caps_can_intersect (raw, caps)) {
+ g_value_array_free (factories);
gst_caps_unref (raw);
gst_object_unref (dpad);
goto discarded_type;
goto unknown_type;
}
- /* 1.d sort some more. */
+ /* 1.e sort some more. */
g_signal_emit (G_OBJECT (dbin),
gst_decode_bin_signals[SIGNAL_AUTOPLUG_SORT], 0, dpad, caps, factories,
&result);
/* At this point we have a potential decoder, but we might not need it
* if it doesn't match the output caps */
- if (!dbin->expose_allstreams) {
+ if (!dbin->expose_allstreams && gst_caps_is_fixed (caps)) {
guint i;
const GList *tmps;
gboolean dontuse = FALSE;
GST_DEBUG ("Checking if we can abort early");
- /* 1.e Do an early check to see if the candidates are potential decoders, but
+ /* 1.f Do an early check to see if the candidates are potential decoders, but
* due to the fact that they decode to a mediatype that is not final we don't
* need them */
for (i = 0; i < factories->n_values && !dontuse; i++) {
GstElementFactory *factory =
- g_value_get_object (g_value_array_get_nth (factories, 0));
+ g_value_get_object (g_value_array_get_nth (factories, i));
GstCaps *tcaps;
/* We are only interested in skipping decoders */
if (dontuse) {
gst_object_unref (dpad);
+ g_value_array_free (factories);
goto discarded_type;
}
}
- /* 1.f else continue autoplugging something from the list. */
+ /* 1.g now get the factory template caps and insert the capsfilter if this
+ * is a parser/converter
+ */
+ if (is_parser_converter) {
+ GstCaps *filter_caps;
+ gint i;
+ GstPad *p;
+ GstDecodeElement *delem;
+
+ g_assert (chain->elements != NULL);
+ delem = (GstDecodeElement *) chain->elements->data;
+
+ filter_caps = gst_caps_new_empty ();
+ for (i = 0; i < factories->n_values; i++) {
+ GstElementFactory *factory =
+ g_value_get_object (g_value_array_get_nth (factories, i));
+ GstCaps *tcaps, *intersection;
+ const GList *tmps;
+
+ GST_DEBUG ("Trying factory %s",
+ gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+
+ if (gst_element_get_factory (src) == factory) {
+ GST_DEBUG ("Skipping factory");
+ continue;
+ }
+
+ for (tmps = gst_element_factory_get_static_pad_templates (factory); tmps;
+ tmps = tmps->next) {
+ GstStaticPadTemplate *st = (GstStaticPadTemplate *) tmps->data;
+ if (st->direction != GST_PAD_SINK || st->presence != GST_PAD_ALWAYS)
+ continue;
+ tcaps = gst_static_pad_template_get_caps (st);
+ intersection =
+ gst_caps_intersect_full (tcaps, caps, GST_CAPS_INTERSECT_FIRST);
+ gst_caps_merge (filter_caps, intersection);
+ gst_caps_unref (tcaps);
+ }
+ }
+
+ /* Append the parser caps to prevent any not-negotiated errors */
+ gst_caps_merge (filter_caps, gst_caps_copy (caps));
+
+ delem->capsfilter = gst_element_factory_make ("capsfilter", NULL);
+ g_object_set (G_OBJECT (delem->capsfilter), "caps", filter_caps, NULL);
+ gst_caps_unref (filter_caps);
+ gst_element_set_state (delem->capsfilter, GST_STATE_PAUSED);
+ gst_bin_add (GST_BIN_CAST (dbin), gst_object_ref (delem->capsfilter));
+
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (dpad), NULL);
+ p = gst_element_get_static_pad (delem->capsfilter, "sink");
+ gst_pad_link_full (pad, p, GST_PAD_LINK_CHECK_NOTHING);
+ gst_object_unref (p);
+ p = gst_element_get_static_pad (delem->capsfilter, "src");
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (dpad), p);
+ pad = p;
+
+ if (!gst_caps_is_fixed (caps)) {
+ g_value_array_free (factories);
+ goto non_fixed;
+ }
+ }
+
+ /* 1.h else continue autoplugging something from the list. */
GST_LOG_OBJECT (pad, "Let's continue discovery on this pad");
- connect_pad (dbin, src, dpad, pad, caps, factories, chain);
+ res = connect_pad (dbin, src, dpad, pad, caps, factories, chain);
+
+ /* Need to unref the capsfilter srcpad here if
+ * we inserted a capsfilter */
+ if (is_parser_converter)
+ gst_object_unref (pad);
gst_object_unref (dpad);
g_value_array_free (factories);
+ if (!res)
+ goto unknown_type;
+
return;
expose_pad:
ppad->event_probe_id =
gst_pad_add_event_probe (pad, (GCallback) pad_event_cb, ppad);
chain->pending_pads = g_list_prepend (chain->pending_pads, ppad);
- CHAIN_MUTEX_UNLOCK (chain);
g_signal_connect (G_OBJECT (pad), "notify::caps",
G_CALLBACK (caps_notify_cb), chain);
+ CHAIN_MUTEX_UNLOCK (chain);
+
+ /* If we're here because we have a Parser/Converter
+ * we have to unref the pad */
+ if (is_parser_converter)
+ gst_object_unref (pad);
+
return;
}
}
+static void
+add_error_filter (GstDecodeBin * dbin, GstElement * element)
+{
+ GST_OBJECT_LOCK (dbin);
+ dbin->filtered = g_list_prepend (dbin->filtered, element);
+ GST_OBJECT_UNLOCK (dbin);
+}
+
+static void
+remove_error_filter (GstDecodeBin * dbin, GstElement * element)
+{
+ GST_OBJECT_LOCK (dbin);
+ dbin->filtered = g_list_remove (dbin->filtered, element);
+ GST_OBJECT_UNLOCK (dbin);
+}
/* connect_pad:
*
while (factories->n_values > 0) {
GstAutoplugSelectResult ret;
GstElementFactory *factory;
+ GstDecodeElement *delem;
GstElement *element;
GstPad *sinkpad;
gboolean subtitle;
CHAIN_MUTEX_LOCK (chain);
for (l = chain->elements; l; l = l->next) {
- GstElement *otherelement = GST_ELEMENT_CAST (l->data);
+ GstDecodeElement *delem = (GstDecodeElement *) l->data;
+ GstElement *otherelement = delem->element;
if (gst_element_get_factory (otherelement) == factory) {
skip = TRUE;
continue;
}
- /* ... activate it ... We do this before adding it to the bin so that we
- * don't accidentally make it post error messages that will stop
- * everything. */
- if ((gst_element_set_state (element,
- GST_STATE_READY)) == GST_STATE_CHANGE_FAILURE) {
- GST_WARNING_OBJECT (dbin, "Couldn't set %s to READY",
+ /* Filter errors, this will prevent the element from causing the pipeline
+ * to error while we test it using READY state. */
+ add_error_filter (dbin, element);
+
+ /* ... add it ... */
+ if (!(gst_bin_add (GST_BIN_CAST (dbin), element))) {
+ GST_WARNING_OBJECT (dbin, "Couldn't add %s to the bin",
GST_ELEMENT_NAME (element));
+ remove_error_filter (dbin, element);
gst_object_unref (element);
continue;
}
- /* 2.3. Find its sink pad, this should work after activating it. */
+ /* Find its sink pad. */
if (!(sinkpad = find_sink_pad (element))) {
GST_WARNING_OBJECT (dbin, "Element %s doesn't have a sink pad",
GST_ELEMENT_NAME (element));
- gst_element_set_state (element, GST_STATE_NULL);
- gst_object_unref (element);
+ remove_error_filter (dbin, element);
+ gst_bin_remove (GST_BIN (dbin), element);
continue;
}
- /* 2.4 add it ... */
- if (!(gst_bin_add (GST_BIN_CAST (dbin), element))) {
- GST_WARNING_OBJECT (dbin, "Couldn't add %s to the bin",
- GST_ELEMENT_NAME (element));
+ /* ... and try to link */
+ if ((gst_pad_link (pad, sinkpad)) != GST_PAD_LINK_OK) {
+ GST_WARNING_OBJECT (dbin, "Link failed on pad %s:%s",
+ GST_DEBUG_PAD_NAME (sinkpad));
+ remove_error_filter (dbin, element);
gst_object_unref (sinkpad);
- gst_element_set_state (element, GST_STATE_NULL);
- gst_object_unref (element);
+ gst_bin_remove (GST_BIN (dbin), element);
continue;
}
- /* 2.5 ...and try to link */
- if ((gst_pad_link (pad, sinkpad)) != GST_PAD_LINK_OK) {
- GST_WARNING_OBJECT (dbin, "Link failed on pad %s:%s",
- GST_DEBUG_PAD_NAME (sinkpad));
- gst_element_set_state (element, GST_STATE_NULL);
+ /* ... activate it ... */
+ if ((gst_element_set_state (element,
+ GST_STATE_READY)) == GST_STATE_CHANGE_FAILURE) {
+ GST_WARNING_OBJECT (dbin, "Couldn't set %s to READY",
+ GST_ELEMENT_NAME (element));
+ remove_error_filter (dbin, element);
gst_object_unref (sinkpad);
gst_bin_remove (GST_BIN (dbin), element);
continue;
}
+
+ /* Stop filtering errors. */
+ remove_error_filter (dbin, element);
+
gst_object_unref (sinkpad);
GST_LOG_OBJECT (dbin, "linked on pad %s:%s", GST_DEBUG_PAD_NAME (pad));
CHAIN_MUTEX_LOCK (chain);
- chain->elements =
- g_list_prepend (chain->elements, gst_object_ref (element));
+ delem = g_slice_new (GstDecodeElement);
+ delem->element = gst_object_ref (element);
+ delem->capsfilter = NULL;
+ chain->elements = g_list_prepend (chain->elements, delem);
chain->demuxer = is_demuxer_element (element);
CHAIN_MUTEX_UNLOCK (chain);
/* Bring the element to the state of the parent */
if ((gst_element_set_state (element,
GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE) {
+ GstDecodeElement *dtmp = NULL;
GstElement *tmp = NULL;
GST_WARNING_OBJECT (dbin, "Couldn't set %s to PAUSED",
do {
GList *l;
- tmp = chain->elements->data;
+ dtmp = chain->elements->data;
+ tmp = dtmp->element;
/* Disconnect any signal handlers that might be connected
* in connect_element() or analyze_pad() */
l = n;
}
+ if (dtmp->capsfilter) {
+ gst_bin_remove (GST_BIN (dbin), dtmp->capsfilter);
+ gst_element_set_state (dtmp->capsfilter, GST_STATE_NULL);
+ gst_object_unref (dtmp->capsfilter);
+ }
+
gst_bin_remove (GST_BIN (dbin), tmp);
gst_element_set_state (tmp, GST_STATE_NULL);
gst_object_unref (tmp);
+ g_slice_free (GstDecodeElement, dtmp);
+
chain->elements = g_list_delete_link (chain->elements, chain->elements);
} while (tmp != element);
CHAIN_MUTEX_UNLOCK (chain);
return;
}
+/* check_upstream_seekable:
+ *
+ * Check if upstream is seekable.
+ */
+static gboolean
+check_upstream_seekable (GstDecodeBin * dbin, GstPad * pad)
+{
+ GstQuery *query;
+ gint64 start = -1, stop = -1;
+ gboolean seekable = FALSE;
+
+ query = gst_query_new_seeking (GST_FORMAT_BYTES);
+ if (!gst_pad_peer_query (pad, query)) {
+ GST_DEBUG_OBJECT (dbin, "seeking query failed");
+ gst_query_unref (query);
+ return FALSE;
+ }
+
+ gst_query_parse_seeking (query, NULL, &seekable, &start, &stop);
+
+ gst_query_unref (query);
+
+ /* 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 (dbin, "doing duration query to fix up unset stop");
+ gst_pad_query_peer_duration (pad, &fmt, &stop);
+ }
+
+ /* 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 (dbin, "seekable but unknown start/stop -> disable");
+ return FALSE;
+ }
+
+ GST_DEBUG_OBJECT (dbin, "upstream seekable: %d", seekable);
+ return seekable;
+}
+
static void
type_found (GstElement * typefind, guint probability,
GstCaps * caps, GstDecodeBin * decode_bin)
GST_LOG_OBJECT (element, "got no more pads");
CHAIN_MUTEX_LOCK (chain);
- if (!chain->elements || (GstElement *) chain->elements->data != element) {
+ if (!chain->elements
+ || ((GstDecodeElement *) chain->elements->data)->element != element) {
GST_LOG_OBJECT (chain->dbin, "no-more-pads from old chain element '%s'",
GST_OBJECT_NAME (element));
CHAIN_MUTEX_UNLOCK (chain);
* we can probably set its buffering state to playing now */
GST_DEBUG_OBJECT (group->dbin, "Setting group %p multiqueue to "
"'playing' buffering mode", group);
- decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE);
+ decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+ (group->parent ? group->parent->seekable : TRUE));
CHAIN_MUTEX_UNLOCK (chain);
EXPOSE_LOCK (chain->dbin);
chain->pending_pads = NULL;
for (l = chain->elements; l; l = l->next) {
- GstElement *element = GST_ELEMENT (l->data);
+ GstDecodeElement *delem = l->data;
+ GstElement *element = delem->element;
g_signal_handlers_disconnect_by_func (element, pad_added_cb, chain);
g_signal_handlers_disconnect_by_func (element, pad_removed_cb, chain);
g_signal_handlers_disconnect_by_func (element, no_more_pads_cb, chain);
+ if (delem->capsfilter) {
+ if (GST_OBJECT_PARENT (delem->capsfilter) ==
+ GST_OBJECT_CAST (chain->dbin))
+ gst_bin_remove (GST_BIN_CAST (chain->dbin), delem->capsfilter);
+ if (!hide) {
+ gst_element_set_state (delem->capsfilter, GST_STATE_NULL);
+ }
+ }
+
if (GST_OBJECT_PARENT (element) == GST_OBJECT_CAST (chain->dbin))
gst_bin_remove (GST_BIN_CAST (chain->dbin), element);
if (!hide) {
SUBTITLE_UNLOCK (chain->dbin);
if (!hide) {
+ if (delem->capsfilter) {
+ gst_object_unref (delem->capsfilter);
+ delem->capsfilter = NULL;
+ }
+
gst_object_unref (element);
l->data = NULL;
+
+ g_slice_free (GstDecodeElement, delem);
}
}
if (!hide) {
queue);
group->overrun = TRUE;
+ /* this group has prerolled enough to not need more pads,
+ * we can probably set its buffering state to playing now */
+ GST_DEBUG_OBJECT (group->dbin, "Setting group %p multiqueue to "
+ "'playing' buffering mode", group);
+ decodebin_set_queue_size (group->dbin, group->multiqueue, FALSE,
+ (group->parent ? group->parent->seekable : TRUE));
/* FIXME: We should make sure that everything gets exposed now
* even if child chains are not complete because the will never
* playing or prerolling. */
static void
decodebin_set_queue_size (GstDecodeBin * dbin, GstElement * multiqueue,
- gboolean preroll)
+ gboolean preroll, gboolean seekable)
{
guint max_bytes, max_buffers;
guint64 max_time;
if ((max_buffers = dbin->max_size_buffers) == 0)
max_buffers = AUTO_PREROLL_SIZE_BUFFERS;
if ((max_time = dbin->max_size_time) == 0)
- max_time = AUTO_PREROLL_SIZE_TIME;
+ max_time = seekable ? AUTO_PREROLL_SEEKABLE_SIZE_TIME :
+ AUTO_PREROLL_NOT_SEEKABLE_SIZE_TIME;
} else {
/* update runtime limits. At runtime, we try to keep the amount of buffers
* in the queues as low as possible (but at least 5 buffers). */
{
GstDecodeGroup *group = g_slice_new0 (GstDecodeGroup);
GstElement *mq;
+ gboolean seekable;
GST_DEBUG_OBJECT (dbin, "Creating new group %p with parent chain %p", group,
parent);
}
/* configure queue sizes for preroll */
- decodebin_set_queue_size (dbin, mq, TRUE);
+ seekable = FALSE;
+ if (parent && parent->demuxer) {
+ GstElement *element =
+ ((GstDecodeElement *) parent->elements->data)->element;
+ GstPad *pad = gst_element_get_static_pad (element, "sink");
+ if (pad) {
+ seekable = parent->seekable = check_upstream_seekable (dbin, pad);
+ gst_object_unref (pad);
+ }
+ }
+ decodebin_set_queue_size (dbin, mq, TRUE, seekable);
group->overrunsig = g_signal_connect (G_OBJECT (mq), "overrun",
G_CALLBACK (multi_queue_overrun_cb), group);
return complete;
}
-/* check if the group is drained, meaning all pads have seen an EOS
- * event. */
-static void
-gst_decode_pad_handle_eos (GstDecodePad * pad)
+static gboolean
+drain_and_switch_chains (GstDecodeChain * chain, GstDecodePad * drainpad,
+ gboolean * last_group, gboolean * drained, gboolean * switched);
+/* drain_and_switch_chains/groups:
+ *
+ * CALL WITH CHAIN LOCK (or group parent) TAKEN !
+ *
+ * Goes down the chains/groups until it finds the chain
+ * to which the drainpad belongs.
+ *
+ * It marks that pad/chain as drained and then will figure
+ * out which group to switch to or not.
+ *
+ * last_chain will be set to TRUE if the group to which the
+ * pad belongs is the last one.
+ *
+ * drained will be set to TRUE if the chain/group is drained.
+ *
+ * Returns: TRUE if the chain contained the target pad */
+static gboolean
+drain_and_switch_group (GstDecodeGroup * group, GstDecodePad * drainpad,
+ gboolean * last_group, gboolean * drained, gboolean * switched)
{
- GstDecodeChain *chain = pad->chain;
+ gboolean handled = FALSE;
+ gboolean alldrained = TRUE;
+ GList *tmp;
+
+ GST_DEBUG ("Checking group %p (target pad %s:%s)",
+ group, GST_DEBUG_PAD_NAME (drainpad));
- GST_LOG_OBJECT (pad->dbin, "chain : %p, pad %p", chain, pad);
- pad->drained = TRUE;
- gst_decode_chain_handle_eos (chain);
+ /* Definitely can't be in drained groups */
+ if (G_UNLIKELY (group->drained)) {
+ goto beach;
+ }
+
+ /* Figure out if all our chains are drained with the
+ * new information */
+ for (tmp = group->children; tmp; tmp = tmp->next) {
+ GstDecodeChain *chain = (GstDecodeChain *) tmp->data;
+ gboolean subdrained = FALSE;
+
+ handled |=
+ drain_and_switch_chains (chain, drainpad, last_group, &subdrained,
+ switched);
+ if (!subdrained)
+ alldrained = FALSE;
+ }
+
+beach:
+ GST_DEBUG ("group %p (last_group:%d, drained:%d, switched:%d, handled:%d)",
+ group, *last_group, alldrained, *switched, handled);
+ *drained = alldrained;
+ return handled;
}
-/* gst_decode_chain_handle_eos:
- *
- * Checks if there are next groups in any parent chain
- * to which we can switch or if everything is drained.
- *
- * If there are groups to switch to, hide the current active
- * one and expose the new one.
- *
- * MT-safe, don't call with chain lock!
- */
-static void
-gst_decode_chain_handle_eos (GstDecodeChain * eos_chain)
+static gboolean
+drain_and_switch_chains (GstDecodeChain * chain, GstDecodePad * drainpad,
+ gboolean * last_group, gboolean * drained, gboolean * switched)
{
- GstDecodeBin *dbin = eos_chain->dbin;
- GstDecodeGroup *group;
- GstDecodeChain *chain = eos_chain;
- gboolean drained;
+ gboolean handled = FALSE;
+ GstDecodeBin *dbin = chain->dbin;
- g_return_if_fail (eos_chain->endpad);
+ GST_DEBUG ("Checking chain %p (target pad %s:%s)",
+ chain, GST_DEBUG_PAD_NAME (drainpad));
CHAIN_MUTEX_LOCK (chain);
- while ((group = chain->parent)) {
- CHAIN_MUTEX_UNLOCK (chain);
- chain = group->parent;
- CHAIN_MUTEX_LOCK (chain);
- if (gst_decode_group_is_drained (group)) {
- continue;
+ if (chain->endpad) {
+ /* Check if we're reached the target endchain */
+ if (chain == drainpad->chain) {
+ GST_DEBUG ("Found the target chain");
+ drainpad->drained = TRUE;
+ handled = TRUE;
}
- break;
+
+ *drained = chain->endpad->drained;
+ goto beach;
}
- drained = chain->active_group ?
- gst_decode_group_is_drained (chain->active_group) : TRUE;
-
- /* Now either group == NULL and chain == dbin->decode_chain
- * or chain is the lowest chain that has a non-drained group */
- if (chain->active_group && drained && chain->next_groups) {
- GST_DEBUG_OBJECT (dbin, "Hiding current group %p", chain->active_group);
- gst_decode_group_hide (chain->active_group);
- chain->old_groups = g_list_prepend (chain->old_groups, chain->active_group);
- GST_DEBUG_OBJECT (dbin, "Switching to next group %p",
- chain->next_groups->data);
- chain->active_group = chain->next_groups->data;
- chain->next_groups =
- g_list_delete_link (chain->next_groups, chain->next_groups);
- CHAIN_MUTEX_UNLOCK (chain);
+ /* We known there are groups to switch to */
+ if (chain->next_groups)
+ *last_group = FALSE;
+
+ /* Check the active group */
+ if (chain->active_group) {
+ gboolean subdrained = FALSE;
+ handled = drain_and_switch_group (chain->active_group, drainpad,
+ last_group, &subdrained, switched);
+
+ /* The group is drained, see if we can switch to another */
+ if (handled && subdrained && !*switched) {
+ if (chain->next_groups) {
+ /* Switch to next group */
+ GST_DEBUG_OBJECT (dbin, "Hiding current group %p", chain->active_group);
+ gst_decode_group_hide (chain->active_group);
+ chain->old_groups =
+ g_list_prepend (chain->old_groups, chain->active_group);
+ GST_DEBUG_OBJECT (dbin, "Switching to next group %p",
+ chain->next_groups->data);
+ chain->active_group = chain->next_groups->data;
+ chain->next_groups =
+ g_list_delete_link (chain->next_groups, chain->next_groups);
+ *switched = TRUE;
+ *drained = FALSE;
+ } else {
+ GST_DEBUG ("Group %p was the last in chain %p", chain->active_group,
+ chain);
+ *drained = TRUE;
+ /* We're drained ! */
+ }
+ }
+ }
+
+beach:
+ CHAIN_MUTEX_UNLOCK (chain);
+
+ GST_DEBUG ("Chain %p (handled:%d, last_group:%d, drained:%d, switched:%d)",
+ chain, handled, *last_group, *drained, *switched);
+
+ if (*drained)
+ g_signal_emit (dbin, gst_decode_bin_signals[SIGNAL_DRAINED], 0, NULL);
+
+ return handled;
+}
+
+/* check if the group is drained, meaning all pads have seen an EOS
+ * event. */
+static gboolean
+gst_decode_pad_handle_eos (GstDecodePad * pad)
+{
+ gboolean last_group = TRUE;
+ gboolean switched = FALSE;
+ gboolean drained = FALSE;
+ GstDecodeChain *chain = pad->chain;
+ GstDecodeBin *dbin = chain->dbin;
+
+ GST_LOG_OBJECT (dbin, "pad %p", pad);
+ drain_and_switch_chains (dbin->decode_chain, pad, &last_group, &drained,
+ &switched);
+
+ if (switched) {
+ /* If we resulted in a group switch, expose what's needed */
EXPOSE_LOCK (dbin);
if (gst_decode_chain_is_complete (dbin->decode_chain))
gst_decode_bin_expose (dbin);
EXPOSE_UNLOCK (dbin);
- } else if (!chain->active_group || drained) {
- g_assert (chain == dbin->decode_chain);
- CHAIN_MUTEX_UNLOCK (chain);
-
- GST_LOG_OBJECT (dbin, "all groups drained, fire signal");
- g_signal_emit (G_OBJECT (dbin), gst_decode_bin_signals[SIGNAL_DRAINED], 0,
- NULL);
- } else {
- CHAIN_MUTEX_UNLOCK (chain);
- GST_DEBUG_OBJECT (dbin,
- "Current active group in chain %p is not drained yet", chain);
}
+
+ return last_group;
}
/* gst_decode_group_is_drained:
}
static GstCaps *
-_gst_element_get_linked_caps (GstElement * src, GstElement * sink)
+_gst_element_get_linked_caps (GstElement * src, GstElement * sink,
+ GstPad ** srcpad)
{
GstIterator *it;
GstElement *parent;
parent = gst_pad_get_parent_element (peer);
if (parent == sink) {
caps = gst_pad_get_negotiated_caps (pad);
+ if (srcpad) {
+ gst_object_ref (pad);
+ *srcpad = pad;
+ }
done = TRUE;
}
static GQuark topology_caps = 0;
static GQuark topology_next = 0;
static GQuark topology_pad = 0;
+static GQuark topology_element_srcpad = 0;
/* FIXME: Invent gst_structure_take_structure() to prevent all the
* structure copying for nothing
u = gst_structure_id_empty_new (topology_structure_name);
/* Now at the last element */
- if (chain->elements && (chain->endpad || chain->deadend)) {
+ if ((chain->elements || !chain->active_group) &&
+ (chain->endpad || chain->deadend)) {
s = gst_structure_id_empty_new (topology_structure_name);
gst_structure_id_set (u, topology_caps, GST_TYPE_CAPS, chain->endcaps,
NULL);
- if (chain->endpad)
+ if (chain->endpad) {
gst_structure_id_set (u, topology_pad, GST_TYPE_PAD, chain->endpad, NULL);
+ gst_structure_id_set (u, topology_element_srcpad, GST_TYPE_PAD,
+ chain->endpad, NULL);
+ }
gst_structure_id_set (s, topology_next, GST_TYPE_STRUCTURE, u, NULL);
gst_structure_free (u);
u = s;
/* Get caps between all elements in this chain */
l = (chain->elements && chain->elements->next) ? chain->elements : NULL;
for (; l && l->next; l = l->next) {
- GstCaps *caps = _gst_element_get_linked_caps (l->next->data, l->data);
+ GstDecodeElement *delem, *delem_next;
+ GstElement *elem, *elem_next;
+ GstCaps *caps;
+ GstPad *srcpad;
+
+ delem = l->data;
+ elem = delem->element;
+ delem_next = l->next->data;
+ elem_next = delem_next->element;
+ srcpad = NULL;
+
+ caps = _gst_element_get_linked_caps (elem_next, elem, &srcpad);
if (caps) {
s = gst_structure_id_empty_new (topology_structure_name);
gst_structure_free (u);
u = s;
}
+
+ if (srcpad) {
+ gst_structure_id_set (u, topology_element_srcpad, GST_TYPE_PAD, srcpad,
+ NULL);
+ gst_object_unref (srcpad);
+ }
}
/* Caps that resulted in this chain */
caps = NULL;
}
}
- gst_structure_set (u, "caps", GST_TYPE_CAPS, caps, NULL);
+ gst_structure_id_set (u, topology_caps, GST_TYPE_CAPS, caps, NULL);
+ gst_structure_id_set (u, topology_element_srcpad, GST_TYPE_PAD, chain->pad,
+ NULL);
gst_caps_unref (caps);
return u;
/* 4. Signal no-more-pads. This allows the application to hook stuff to the
* exposed pads */
- GST_LOG_OBJECT (dbin, "signalling no-more-pads");
+ GST_LOG_OBJECT (dbin, "signaling no-more-pads");
gst_element_no_more_pads (GST_ELEMENT (dbin));
/* 5. Send a custom element message with the stream topology */
dbin = group->dbin;
/* configure queues for playback */
- decodebin_set_queue_size (dbin, group->multiqueue, FALSE);
+ decodebin_set_queue_size (dbin, group->multiqueue, FALSE, TRUE);
/* we can now disconnect any overrun signal, which is used to expose the
* group. */
static gboolean
source_pad_event_probe (GstPad * pad, GstEvent * event, GstDecodePad * dpad)
{
+ gboolean res = TRUE;
+
GST_LOG_OBJECT (pad, "%s dpad:%p", GST_EVENT_TYPE_NAME (event), dpad);
if (GST_EVENT_TYPE (event) == GST_EVENT_EOS) {
GST_DEBUG_OBJECT (pad, "we received EOS");
- /* Check if all pads are drained. If there is a next group to expose, we
- * will remove the ghostpad of the current group first, which unlinks the
- * peer and so drops the EOS. */
- gst_decode_pad_handle_eos (dpad);
+ /* Check if all pads are drained.
+ * * If there is no next group, we will let the EOS go through.
+ * * If there is a next group but the current group isn't completely
+ * drained, we will drop the EOS event.
+ * * If there is a next group to expose and this was the last non-drained
+ * pad for that group, we will remove the ghostpad of the current group
+ * first, which unlinks the peer and so drops the EOS. */
+ res = gst_decode_pad_handle_eos (dpad);
}
- /* never drop events */
- return TRUE;
+
+ return res;
}
static void
}
}
+static void
+gst_decode_bin_handle_message (GstBin * bin, GstMessage * msg)
+{
+ GstDecodeBin *dbin = GST_DECODE_BIN (bin);
+ gboolean drop = FALSE;
+
+ if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
+ GST_OBJECT_LOCK (dbin);
+ drop = (g_list_find (dbin->filtered, GST_MESSAGE_SRC (msg)) != NULL);
+ GST_OBJECT_UNLOCK (dbin);
+ }
+
+ if (drop)
+ gst_message_unref (msg);
+ else
+ GST_BIN_CLASS (parent_class)->handle_message (bin, msg);
+}
+
gboolean
gst_decode_bin_plugin_init (GstPlugin * plugin)
{
topology_caps = g_quark_from_static_string ("caps");
topology_next = g_quark_from_static_string ("next");
topology_pad = g_quark_from_static_string ("pad");
+ topology_element_srcpad = g_quark_from_static_string ("element-srcpad");
return gst_element_register (plugin, "decodebin2", GST_RANK_NONE,
GST_TYPE_DECODE_BIN);
* @GST_PLAY_FLAG_DOWNLOAD: enable progressice download buffering for selected
* formats.
* @GST_PLAY_FLAG_BUFFERING: enable buffering of the demuxed or parsed data.
+ * @GST_PLAY_FLAG_DEINTERLACE: deinterlace raw video (if native not forced).
*
* Extra flags to configure the behaviour of the sinks.
*/
--- /dev/null
+#include "gstplay-marshal.h"
+
+#include <glib-object.h>
+
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_char (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* BOOLEAN:OBJECT,BOXED (gstplay-marshal.list:1) */
+void
+gst_play_marshal_BOOLEAN__OBJECT_BOXED (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gboolean (*GMarshalFunc_BOOLEAN__OBJECT_BOXED) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer data2);
+ register GMarshalFunc_BOOLEAN__OBJECT_BOXED callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gboolean v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_BOOLEAN__OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2),
+ data2);
+
+ g_value_set_boolean (return_value, v_return);
+}
+
+/* BOOLEAN:OBJECT,OBJECT,OBJECT (gstplay-marshal.list:2) */
+void
+gst_play_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gboolean (*GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer arg_3,
+ gpointer data2);
+ register GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gboolean v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_BOOLEAN__OBJECT_OBJECT_OBJECT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_object (param_values + 2),
+ g_marshal_value_peek_object (param_values + 3),
+ data2);
+
+ g_value_set_boolean (return_value, v_return);
+}
+
+/* BOXED:OBJECT,BOXED (gstplay-marshal.list:3) */
+void
+gst_play_marshal_BOXED__OBJECT_BOXED (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gpointer (*GMarshalFunc_BOXED__OBJECT_BOXED) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer data2);
+ register GMarshalFunc_BOXED__OBJECT_BOXED callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gpointer v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_BOXED__OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2),
+ data2);
+
+ g_value_take_boxed (return_value, v_return);
+}
+
+/* VOID:OBJECT,BOOLEAN (gstplay-marshal.list:4) */
+void
+gst_play_marshal_VOID__OBJECT_BOOLEAN (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__OBJECT_BOOLEAN) (gpointer data1,
+ gpointer arg_1,
+ gboolean arg_2,
+ gpointer data2);
+ register GMarshalFunc_VOID__OBJECT_BOOLEAN callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 3);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__OBJECT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boolean (param_values + 2),
+ data2);
+}
+
+/* ENUM:OBJECT,OBJECT,BOXED (gstplay-marshal.list:5) */
+void
+gst_play_marshal_ENUM__OBJECT_OBJECT_BOXED (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer arg_3,
+ gpointer data2);
+ register GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_ENUM__OBJECT_OBJECT_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_object (param_values + 2),
+ g_marshal_value_peek_boxed (param_values + 3),
+ data2);
+
+ g_value_set_enum (return_value, v_return);
+}
+
+/* ENUM:OBJECT,BOXED,OBJECT (gstplay-marshal.list:6) */
+void
+gst_play_marshal_ENUM__OBJECT_BOXED_OBJECT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gint (*GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer arg_3,
+ gpointer data2);
+ register GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gint v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_ENUM__OBJECT_BOXED_OBJECT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2),
+ g_marshal_value_peek_object (param_values + 3),
+ data2);
+
+ g_value_set_enum (return_value, v_return);
+}
+
+/* BOXED:OBJECT,BOXED,BOXED (gstplay-marshal.list:7) */
+void
+gst_play_marshal_BOXED__OBJECT_BOXED_BOXED (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gpointer (*GMarshalFunc_BOXED__OBJECT_BOXED_BOXED) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gpointer arg_3,
+ gpointer data2);
+ register GMarshalFunc_BOXED__OBJECT_BOXED_BOXED callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gpointer v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_BOXED__OBJECT_BOXED_BOXED) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_object (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2),
+ g_marshal_value_peek_boxed (param_values + 3),
+ data2);
+
+ g_value_take_boxed (return_value, v_return);
+}
+
+/* BOXED:INT (gstplay-marshal.list:8) */
+void
+gst_play_marshal_BOXED__INT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gpointer (*GMarshalFunc_BOXED__INT) (gpointer data1,
+ gint arg_1,
+ gpointer data2);
+ register GMarshalFunc_BOXED__INT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gpointer v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_BOXED__INT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_int (param_values + 1),
+ data2);
+
+ g_value_take_boxed (return_value, v_return);
+}
+
+/* OBJECT:BOXED (gstplay-marshal.list:9) */
+void
+gst_play_marshal_OBJECT__BOXED (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef GObject* (*GMarshalFunc_OBJECT__BOXED) (gpointer data1,
+ gpointer arg_1,
+ gpointer data2);
+ register GMarshalFunc_OBJECT__BOXED callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ GObject* v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_OBJECT__BOXED) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_boxed (param_values + 1),
+ data2);
+
+ g_value_take_object (return_value, v_return);
+}
+
+/* OBJECT:INT (gstplay-marshal.list:10) */
+void
+gst_play_marshal_OBJECT__INT (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef GObject* (*GMarshalFunc_OBJECT__INT) (gpointer data1,
+ gint arg_1,
+ gpointer data2);
+ register GMarshalFunc_OBJECT__INT callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ GObject* v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 2);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_OBJECT__INT) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_int (param_values + 1),
+ data2);
+
+ g_value_take_object (return_value, v_return);
+}
+
--- /dev/null
+
+#ifndef __gst_play_marshal_MARSHAL_H__
+#define __gst_play_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* BOOLEAN:OBJECT,BOXED (gstplay-marshal.list:1) */
+extern void gst_play_marshal_BOOLEAN__OBJECT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOOLEAN:OBJECT,OBJECT,OBJECT (gstplay-marshal.list:2) */
+extern void gst_play_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOXED:OBJECT,BOXED (gstplay-marshal.list:3) */
+extern void gst_play_marshal_BOXED__OBJECT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:OBJECT,BOOLEAN (gstplay-marshal.list:4) */
+extern void gst_play_marshal_VOID__OBJECT_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* ENUM:OBJECT,OBJECT,BOXED (gstplay-marshal.list:5) */
+extern void gst_play_marshal_ENUM__OBJECT_OBJECT_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* ENUM:OBJECT,BOXED,OBJECT (gstplay-marshal.list:6) */
+extern void gst_play_marshal_ENUM__OBJECT_BOXED_OBJECT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOXED:OBJECT,BOXED,BOXED (gstplay-marshal.list:7) */
+extern void gst_play_marshal_BOXED__OBJECT_BOXED_BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOXED:INT (gstplay-marshal.list:8) */
+extern void gst_play_marshal_BOXED__INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* OBJECT:BOXED (gstplay-marshal.list:9) */
+extern void gst_play_marshal_OBJECT__BOXED (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* OBJECT:INT (gstplay-marshal.list:10) */
+extern void gst_play_marshal_OBJECT__INT (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* __gst_play_marshal_MARSHAL_H__ */
+
#include <gst/pbutils/pbutils.h>
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (gst_play_base_bin_debug);
#define GST_CAT_DEFAULT gst_play_base_bin_debug
/* this signal will be fired when one of the queues with raw
* data is filled. This means that the group building stage is over
* and playback of the new queued group should start. This is a rather unusual
- * situation because normally the group is commited when the "no_more_pads"
+ * situation because normally the group is committed when the "no_more_pads"
* signal is fired.
*/
static void
GST_DEBUG_OBJECT (play_base_bin, "underrun signal received from queue %s",
GST_ELEMENT_NAME (queue));
- /* On underrun, we want to temoprarily pause playback, set a "min-size"
+ /* On underrun, we want to temporarily pause playback, set a "min-size"
* threshold and wait for the running signal and then play again.
*
* This signal could never be called because the queue max-size limits are set
- * too low. We take care of this possible deadlock in the the overrun signal
+ * too low. We take care of this possible deadlock in the overrun signal
* handler. */
g_signal_connect (G_OBJECT (queue), "pushing",
G_CALLBACK (queue_threshold_reached), play_base_bin);
g_return_if_reached ();
/* create stream selector */
- selector = g_object_new (GST_TYPE_STREAM_SELECTOR, NULL);
padname = gst_pad_get_name (pad);
name = g_strdup_printf ("selector_%s_%s", prename, padname);
- gst_object_set_name (GST_OBJECT_CAST (selector), name);
+ selector = g_object_new (GST_TYPE_STREAM_SELECTOR, "name", name, NULL);
g_free (name);
/* create preroll queue */
gst_object_unref (sinkpad);
- /* When we connect this queue, it will start running and immediatly
+ /* When we connect this queue, it will start running and immediately
* fire an underrun. */
g_signal_connect (G_OBJECT (preroll), "underrun",
G_CALLBACK (queue_out_of_data), play_base_bin);
gst_iterator_resync (pads_iter);
break;
case GST_ITERATOR_OK:
- /* we now officially have an ouput pad */
+ /* we now officially have an output pad */
*have_out = TRUE;
/* if FALSE, this pad has no caps and we continue with the next pad. */
struct _GstPlayBaseBinClass {
GstPipelineClass parent_class;
- /* virtual fuctions */
+ /* virtual functions */
gboolean (*setup_output_pads) (GstPlayBaseBin *play_base_bin,
GstPlayBaseGroup *group);
* GNOME-based applications, for example, will usually want to create
* gconfaudiosink and gconfvideosink elements and make playbin use those,
* so that output happens to whatever the user has configured in the GNOME
- * Multimedia System Selector confinguration dialog.
+ * Multimedia System Selector configuration dialog.
*
* The sink elements do not necessarily need to be ready-made sinks. It is
* possible to create container elements that look like a sink to playbin,
element = gst_bin_new ("vbin");
gst_bin_add (GST_BIN_CAST (element), sink);
- conv = gst_element_factory_make ("ffmpegcolorspace", "vconv");
+ conv = gst_element_factory_make (COLORSPACE, "vconv");
if (conv == NULL)
goto no_colorspace;
gst_bin_add (GST_BIN_CAST (element), conv);
}
no_colorspace:
{
- post_missing_element_message (play_bin, "ffmpegcolorspace");
+ post_missing_element_message (play_bin, COLORSPACE);
GST_ELEMENT_ERROR (play_bin, CORE, MISSING_PLUGIN,
(_("Missing element '%s' - check your GStreamer installation."),
- "ffmpegcolorspace"), (NULL));
+ COLORSPACE), (NULL));
gst_object_unref (element);
return NULL;
}
play_bin->textoverlay_element = GST_ELEMENT_CAST (gst_object_ref (overlay));
/* we know this will succeed, as the video bin already created one before */
- csp = gst_element_factory_make ("ffmpegcolorspace", "subtitlecsp");
+ csp = gst_element_factory_make (COLORSPACE, "subtitlecsp");
/* Add our elements */
gst_bin_add_many (GST_BIN_CAST (element), csp, overlay, vbin, NULL);
play_bin->spu_element = GST_ELEMENT_CAST (gst_object_ref (overlay));
/* we know this will succeed, as the video bin already created one before */
- csp = gst_element_factory_make ("ffmpegcolorspace", "spucsp");
+ csp = gst_element_factory_make (COLORSPACE, "spucsp");
/* Add our elements */
gst_bin_add_many (GST_BIN_CAST (element), csp, overlay, vbin, NULL);
}
/* make the element (bin) that contains the elements needed to perform
- * visualisation ouput. The idea is to split the audio using tee, then
+ * visualisation output. The idea is to split the audio using tee, then
* sending the output to the regular audio bin and the other output to
* the vis plugin that transforms it into a video that is rendered with the
* normal video bin. The video and audio bins are run in threads to make sure
goto subtitle_failed;
done:
- /* we got the sink succesfully linked, now keep the sink
+ /* we got the sink successfully linked, now keep the sink
* in our internal list */
play_bin->sinks = g_list_prepend (play_bin->sinks, sink);
gst_event_ref (event);
if ((res = gst_element_send_event (sink, event))) {
GST_DEBUG_OBJECT (play_bin,
- "Sent event succesfully to sink %" GST_PTR_FORMAT, sink);
+ "Sent event successfully to sink %" GST_PTR_FORMAT, sink);
break;
}
GST_DEBUG_OBJECT (play_bin,
/* GStreamer
* Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#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 <string.h>
#include <gst/gst.h>
#include "gstplaysink.h"
#include "gstsubtitleoverlay.h"
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (gst_play_bin_debug);
#define GST_CAT_DEFAULT gst_play_bin_debug
#define GST_SOURCE_GROUP_LOCK(group) (g_mutex_lock (GST_SOURCE_GROUP_GET_LOCK(group)))
#define GST_SOURCE_GROUP_UNLOCK(group) (g_mutex_unlock (GST_SOURCE_GROUP_GET_LOCK(group)))
+enum
+{
+ PLAYBIN_STREAM_AUDIO = 0,
+ PLAYBIN_STREAM_VIDEO,
+ PLAYBIN_STREAM_TEXT,
+ PLAYBIN_STREAM_LAST
+};
+
/* a structure to hold the objects for decoding a uri and the subtitle uri
*/
struct _GstSourceGroup
GList *stream_changed_pending;
/* selectors for different streams */
- GstSourceSelect selector[GST_PLAY_SINK_TYPE_LAST];
+ GstSourceSelect selector[PLAYBIN_STREAM_LAST];
};
#define GST_PLAY_BIN_GET_LOCK(bin) (&((GstPlayBin*)(bin))->lock)
*
* This signal is emitted when the current uri is about to finish. You can
* set the uri and suburi to make sure that playback continues.
+ *
+ * This signal is emitted from the context of a GStreamer streaming thread.
*/
gst_play_bin_signals[SIGNAL_ABOUT_TO_FINISH] =
g_signal_new ("about-to-finish", G_TYPE_FROM_CLASS (klass),
* This signal is emitted whenever the number or order of the video
* streams has changed. The application will most likely want to select
* a new video stream.
+ *
+ * This signal is usually emitted from the context of a GStreamer streaming
+ * thread. You can use gst_message_new_application() and
+ * gst_element_post_message() to notify your application's main thread.
*/
+ /* FIXME 0.11: turn video-changed signal into message? */
gst_play_bin_signals[SIGNAL_VIDEO_CHANGED] =
g_signal_new ("video-changed", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
* This signal is emitted whenever the number or order of the audio
* streams has changed. The application will most likely want to select
* a new audio stream.
+ *
+ * This signal may be emitted from the context of a GStreamer streaming thread.
+ * You can use gst_message_new_application() and gst_element_post_message()
+ * to notify your application's main thread.
*/
+ /* FIXME 0.11: turn audio-changed signal into message? */
gst_play_bin_signals[SIGNAL_AUDIO_CHANGED] =
g_signal_new ("audio-changed", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
* This signal is emitted whenever the number or order of the text
* streams has changed. The application will most likely want to select
* a new text stream.
+ *
+ * This signal may be emitted from the context of a GStreamer streaming thread.
+ * You can use gst_message_new_application() and gst_element_post_message()
+ * to notify your application's main thread.
*/
+ /* FIXME 0.11: turn text-changed signal into message? */
gst_play_bin_signals[SIGNAL_TEXT_CHANGED] =
g_signal_new ("text-changed", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
* This signal is emitted whenever the tags of a video stream have changed.
* The application will most likely want to get the new tags.
*
+ * This signal may be emitted from the context of a GStreamer streaming thread.
+ * You can use gst_message_new_application() and gst_element_post_message()
+ * to notify your application's main thread.
+ *
* Since: 0.10.24
*/
gst_play_bin_signals[SIGNAL_VIDEO_TAGS_CHANGED] =
* This signal is emitted whenever the tags of an audio stream have changed.
* The application will most likely want to get the new tags.
*
+ * This signal may be emitted from the context of a GStreamer streaming thread.
+ * You can use gst_message_new_application() and gst_element_post_message()
+ * to notify your application's main thread.
+ *
* Since: 0.10.24
*/
gst_play_bin_signals[SIGNAL_AUDIO_TAGS_CHANGED] =
* This signal is emitted whenever the tags of a text stream have changed.
* The application will most likely want to get the new tags.
*
+ * This signal may be emitted from the context of a GStreamer streaming thread.
+ * You can use gst_message_new_application() and gst_element_post_message()
+ * to notify your application's main thread.
+ *
* Since: 0.10.24
*/
gst_play_bin_signals[SIGNAL_TEXT_TAGS_CHANGED] =
* an audio cd source). This is functionally equivalent to connecting to
* the notify::source signal, but more convenient.
*
+ * This signal is usually emitted from the context of a GStreamer streaming
+ * thread.
+ *
* Since: 0.10.33
*/
gst_play_bin_signals[SIGNAL_SOURCE_SETUP] =
* matches the media. */
group->playbin = playbin;
/* If you add any items to these lists, check that media_list[] is defined
- * above to be large enough to hold MAX(items)+1, so as to accomodate a
+ * above to be large enough to hold MAX(items)+1, so as to accommodate a
* NULL terminator (set when the memory is zeroed on allocation) */
- group->selector[0].media_list[0] = "audio/x-raw-";
- group->selector[0].type = GST_PLAY_SINK_TYPE_AUDIO_RAW;
- group->selector[0].channels = group->audio_channels;
- group->selector[1].media_list[0] = "audio/";
- group->selector[1].type = GST_PLAY_SINK_TYPE_AUDIO;
- group->selector[1].channels = group->audio_channels;
- group->selector[2].media_list[0] = "text/";
- group->selector[2].media_list[1] = "application/x-subtitle";
- group->selector[2].media_list[2] = "application/x-ssa";
- group->selector[2].media_list[3] = "application/x-ass";
- group->selector[2].media_list[4] = "video/x-dvd-subpicture";
- group->selector[2].media_list[5] = "subpicture/";
- group->selector[2].media_list[6] = "subtitle/";
- group->selector[2].get_media_caps = gst_subtitle_overlay_create_factory_caps;
- group->selector[2].type = GST_PLAY_SINK_TYPE_TEXT;
- group->selector[2].channels = group->text_channels;
- group->selector[3].media_list[0] = "video/x-raw-";
- group->selector[3].type = GST_PLAY_SINK_TYPE_VIDEO_RAW;
- group->selector[3].channels = group->video_channels;
- group->selector[4].media_list[0] = "video/";
- group->selector[4].type = GST_PLAY_SINK_TYPE_VIDEO;
- group->selector[4].channels = group->video_channels;
-
- for (n = 0; n < GST_PLAY_SINK_TYPE_LAST; n++) {
+ group->selector[PLAYBIN_STREAM_AUDIO].media_list[0] = "audio/";
+ group->selector[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
+ group->selector[PLAYBIN_STREAM_AUDIO].channels = group->audio_channels;
+ group->selector[PLAYBIN_STREAM_VIDEO].media_list[0] = "video/";
+ group->selector[PLAYBIN_STREAM_VIDEO].type = GST_PLAY_SINK_TYPE_VIDEO;
+ group->selector[PLAYBIN_STREAM_VIDEO].channels = group->video_channels;
+ group->selector[PLAYBIN_STREAM_TEXT].media_list[0] = "text/";
+ group->selector[PLAYBIN_STREAM_TEXT].media_list[1] = "application/x-subtitle";
+ group->selector[PLAYBIN_STREAM_TEXT].media_list[2] = "application/x-ssa";
+ group->selector[PLAYBIN_STREAM_TEXT].media_list[3] = "application/x-ass";
+ group->selector[PLAYBIN_STREAM_TEXT].media_list[4] = "video/x-dvd-subpicture";
+ group->selector[PLAYBIN_STREAM_TEXT].media_list[5] = "subpicture/";
+ group->selector[PLAYBIN_STREAM_TEXT].media_list[6] = "subtitle/";
+ group->selector[PLAYBIN_STREAM_TEXT].get_media_caps =
+ gst_subtitle_overlay_create_factory_caps;
+ group->selector[PLAYBIN_STREAM_TEXT].type = GST_PLAY_SINK_TYPE_TEXT;
+ group->selector[PLAYBIN_STREAM_TEXT].channels = group->text_channels;
+
+ for (n = 0; n < PLAYBIN_STREAM_LAST; n++) {
GstSourceSelect *select = &group->selector[n];
select->sinkpad_delayed_event = NULL;
select->sinkpad_data_probe = 0;
{
int n;
- for (n = 0; n < GST_PLAY_SINK_TYPE_LAST; n++) {
+ for (n = 0; n < PLAYBIN_STREAM_LAST; n++) {
GstSourceSelect *select = &group->selector[n];
if (select->sinkpad && select->sinkpad_data_probe)
gst_pad_remove_data_probe (select->sinkpad, select->sinkpad_data_probe);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
+static gboolean
+gst_playbin_uri_is_valid (GstPlayBin * playbin, const gchar * uri)
+{
+ const gchar *c;
+
+ GST_LOG_OBJECT (playbin, "checking uri '%s'", uri);
+
+ /* this just checks the protocol */
+ if (!gst_uri_is_valid (uri))
+ return FALSE;
+
+ for (c = uri; *c != '\0'; ++c) {
+ if (!g_ascii_isprint (*c))
+ goto invalid;
+ if (*c == ' ')
+ goto invalid;
+ }
+
+ return TRUE;
+
+invalid:
+ {
+ GST_WARNING_OBJECT (playbin, "uri '%s' not valid, character #%u",
+ uri, (guint) ((guintptr) c - (guintptr) uri));
+ return FALSE;
+ }
+}
+
static void
gst_play_bin_set_uri (GstPlayBin * playbin, const gchar * uri)
{
return;
}
+ if (!gst_playbin_uri_is_valid (playbin, uri)) {
+ if (g_str_has_prefix (uri, "file:")) {
+ GST_WARNING_OBJECT (playbin, "not entirely correct file URI '%s' - make "
+ "sure to escape spaces and non-ASCII characters properly and specify "
+ "an absolute path. Use gst_filename_to_uri() to convert filenames "
+ "to URIs", uri);
+ } else {
+ /* GST_ERROR_OBJECT (playbin, "malformed URI '%s'", uri); */
+ }
+ }
+
GST_PLAY_BIN_LOCK (playbin);
group = playbin->next_group;
GstPad *sinkpad;
GST_PLAY_BIN_LOCK (playbin);
+
+ GST_DEBUG_OBJECT (playbin, "Changing current video stream %d -> %d",
+ playbin->current_video, stream);
+
group = get_group (playbin);
if (!(channels = group->video_channels))
goto no_channels;
GstPad *sinkpad;
GST_PLAY_BIN_LOCK (playbin);
+
+ GST_DEBUG_OBJECT (playbin, "Changing current audio stream %d -> %d",
+ playbin->current_audio, stream);
+
group = get_group (playbin);
if (!(channels = group->audio_channels))
goto no_channels;
GstPad *sinkpad;
GST_PLAY_BIN_LOCK (playbin);
+
+ GST_DEBUG_OBJECT (playbin, "Changing current text stream %d -> %d",
+ playbin->current_text, stream);
+
group = get_group (playbin);
if (!(channels = group->text_channels))
goto no_channels;
GST_PLAY_BIN_LOCK (playbin);
group = get_group (playbin);
- for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+ for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
if (selector == G_OBJECT (group->selector[i].selector)) {
select = &group->selector[i];
}
/* helper function to lookup stuff in lists */
static gboolean
-array_has_value (const gchar * values[], const gchar * value)
+array_has_value (const gchar * values[], const gchar * value, gboolean exact)
{
gint i;
for (i = 0; values[i]; i++) {
- if (g_str_has_prefix (value, values[i]))
+ if (exact && !strcmp (value, values[i]))
+ return TRUE;
+ if (!exact && g_str_has_prefix (value, values[i]))
return TRUE;
}
return FALSE;
GstPad *sinkpad;
GstPadLinkReturn res;
GstSourceSelect *select = NULL;
- gint i;
+ gint i, pass;
gboolean changed = FALSE;
playbin = group->playbin;
"pad %s:%s with caps %" GST_PTR_FORMAT " added in group %p",
GST_DEBUG_PAD_NAME (pad), caps, group);
- /* major type of the pad, this determines the selector to use */
- for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
- if (array_has_value (group->selector[i].media_list, name)) {
- select = &group->selector[i];
- break;
- } else if (group->selector[i].get_media_caps) {
- GstCaps *media_caps = group->selector[i].get_media_caps ();
-
- if (media_caps && gst_caps_can_intersect (media_caps, caps)) {
+ /* major type of the pad, this determines the selector to use,
+ try exact match first so we don't prematurely match video/
+ for video/x-dvd-subpicture */
+ for (pass = 0; !select && pass < 2; pass++) {
+ for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
+ if (array_has_value (group->selector[i].media_list, name, pass == 0)) {
select = &group->selector[i];
- gst_caps_unref (media_caps);
break;
+ } else if (group->selector[i].get_media_caps) {
+ GstCaps *media_caps = group->selector[i].get_media_caps ();
+
+ if (media_caps && gst_caps_can_intersect (media_caps, caps)) {
+ select = &group->selector[i];
+ gst_caps_unref (media_caps);
+ break;
+ }
+ gst_caps_unref (media_caps);
}
- gst_caps_unref (media_caps);
}
}
/* no selector found for the media type, don't bother linking it to a
(_("Missing element '%s' - check your GStreamer installation."),
"input-selector"), (NULL));
} else {
+ g_object_set (select->selector, "sync-streams", TRUE, NULL);
+
g_signal_connect (select->selector, "notify::active-pad",
G_CALLBACK (selector_active_pad_changed), playbin);
G_CALLBACK (notify_tags_cb), ntdata, (GClosureNotify) g_free,
(GConnectFlags) 0);
g_object_set_data (G_OBJECT (sinkpad), "playbin2.notify_tags_handler",
- (gpointer) notify_tags_handler);
+ (gpointer) (guintptr) notify_tags_handler);
/* store the pad in the array */
GST_DEBUG_OBJECT (playbin, "pad %p added to array", sinkpad);
gulong notify_tags_handler;
notify_tags_handler =
- (gulong) g_object_get_data (G_OBJECT (peer),
+ (guintptr) g_object_get_data (G_OBJECT (peer),
"playbin2.notify_tags_handler");
if (notify_tags_handler != 0)
g_signal_handler_disconnect (G_OBJECT (peer), notify_tags_handler);
GST_PLAY_BIN_SHUTDOWN_LOCK (playbin, shutdown);
GST_SOURCE_GROUP_LOCK (group);
- for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+ for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
GstSourceSelect *select = &group->selector[i];
/* check if the specific media type was detected and thus has a selector
/* if we have custom sinks, configure them now */
GST_SOURCE_GROUP_LOCK (group);
- GST_INFO_OBJECT (playbin, "setting custom audio sink %" GST_PTR_FORMAT,
- group->audio_sink);
- gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO,
- group->audio_sink);
+ if (group->audio_sink) {
+ GST_INFO_OBJECT (playbin, "setting custom audio sink %" GST_PTR_FORMAT,
+ group->audio_sink);
+ gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO,
+ group->audio_sink);
+ }
- GST_INFO_OBJECT (playbin, "setting custom video sink %" GST_PTR_FORMAT,
- group->video_sink);
- gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
- group->video_sink);
+ if (group->video_sink) {
+ GST_INFO_OBJECT (playbin, "setting custom video sink %" GST_PTR_FORMAT,
+ group->video_sink);
+ gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
+ group->video_sink);
+ }
- GST_INFO_OBJECT (playbin, "setting custom text sink %" GST_PTR_FORMAT,
- playbin->text_sink);
- gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT,
- playbin->text_sink);
+ if (playbin->text_sink) {
+ GST_INFO_OBJECT (playbin, "setting custom text sink %" GST_PTR_FORMAT,
+ playbin->text_sink);
+ gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT,
+ playbin->text_sink);
+ }
GST_SOURCE_GROUP_UNLOCK (group);
- GST_LOG_OBJECT (playbin, "reconfigure sink");
- /* we configure the modes if we were the last decodebin to complete. */
- gst_play_sink_reconfigure (playbin->playsink);
-
/* signal the other decodebins that they can continue now. */
GST_SOURCE_GROUP_LOCK (group);
/* unblock all selectors */
- for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+ for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
GstSourceSelect *select = &group->selector[i];
/* All streamsynchronizer streams should see stream-changed message,
* instead of a NOT_LINKED error.
*/
GST_SOURCE_GROUP_LOCK (group);
- for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+ for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
GstSourceSelect *select = &group->selector[i];
if (select->srcpad) {
setup_next_source (playbin, GST_STATE_PAUSED);
}
+/* Like gst_element_factory_can_sink_any_caps() but doesn't
+ * allow ANY caps on the sinkpad template */
+static gboolean
+_factory_can_sink_caps (GstElementFactory * factory, GstCaps * caps)
+{
+ const GList *templs;
+
+ templs = gst_element_factory_get_static_pad_templates (factory);
+
+ while (templs) {
+ GstStaticPadTemplate *templ = (GstStaticPadTemplate *) templs->data;
+
+ if (templ->direction == GST_PAD_SINK) {
+ GstCaps *templcaps = gst_static_caps_get (&templ->static_caps);
+
+ if (!gst_caps_is_any (templcaps)
+ && gst_caps_can_intersect (templcaps, caps)) {
+ gst_caps_unref (templcaps);
+ return TRUE;
+ }
+ gst_caps_unref (templcaps);
+ }
+ templs = g_list_next (templs);
+ }
+
+ return FALSE;
+}
+
/* Called when we must provide a list of factories to plug to @pad with @caps.
* We first check if we have a sink that can handle the format and if we do, we
* return NULL, to expose the pad. If we have no sink (or the sink does not
GST_DEBUG_OBJECT (playbin, "found factories %p", mylist);
GST_PLUGIN_FEATURE_LIST_DEBUG (mylist);
- result = g_value_array_new (g_list_length (mylist));
+ /* 2 additional elements for the already set audio/video sinks */
+ result = g_value_array_new (g_list_length (mylist) + 2);
+
+ /* Check if we already have an audio/video sink and if this is the case
+ * put it as the first element of the array */
+ if (group->audio_sink) {
+ GstElementFactory *factory = gst_element_get_factory (group->audio_sink);
+
+ if (factory && _factory_can_sink_caps (factory, caps)) {
+ GValue val = { 0, };
+
+ g_value_init (&val, G_TYPE_OBJECT);
+ g_value_set_object (&val, factory);
+ result = g_value_array_append (result, &val);
+ g_value_unset (&val);
+ }
+ }
+
+ if (group->video_sink) {
+ GstElementFactory *factory = gst_element_get_factory (group->video_sink);
+
+ if (factory && _factory_can_sink_caps (factory, caps)) {
+ GValue val = { 0, };
+
+ g_value_init (&val, G_TYPE_OBJECT);
+ g_value_set_object (&val, factory);
+ result = g_value_array_append (result, &val);
+ g_value_unset (&val);
+ }
+ }
for (tmp = mylist; tmp; tmp = tmp->next) {
GstElementFactory *factory = GST_ELEMENT_FACTORY_CAST (tmp->data);
GValue val = { 0, };
+ if (group->audio_sink && gst_element_factory_list_is_type (factory,
+ GST_ELEMENT_FACTORY_TYPE_SINK |
+ GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)) {
+ continue;
+ }
+ if (group->video_sink && gst_element_factory_list_is_type (factory,
+ GST_ELEMENT_FACTORY_TYPE_SINK | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO
+ | GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)) {
+ continue;
+ }
+
g_value_init (&val, G_TYPE_OBJECT);
g_value_set_object (&val, factory);
g_value_array_append (result, &val);
* supported subtitles directly */
/* FIXME 0.11: Remove the checks for ANY caps, a sink should specify
- * explicitely the caps it supports and if it claims to support ANY
+ * explicitly the caps it supports and if it claims to support ANY
* caps it really should support everything */
static gboolean
autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
gst_object_unref (sinkpad);
} else {
GstCaps *subcaps = gst_subtitle_overlay_create_factory_caps ();
- ret = !gst_caps_can_intersect (caps, subcaps);
+ ret = !gst_caps_is_subset (caps, subcaps);
gst_caps_unref (subcaps);
}
/* If autoplugging can stop don't do additional checks */
return TRUE;
}
+static GstStaticCaps raw_audio_caps = GST_STATIC_CAPS ("audio/x-raw-int; "
+ "audio/x-raw-float");
+static GstStaticCaps raw_video_caps = GST_STATIC_CAPS ("video/x-raw-rgb; "
+ "video/x-raw-yuv; " "video/x-raw-gray");
+
/* We are asked to select an element. See if the next element to check
* is a sink. If this is the case, we see if the sink works by setting it to
* READY. If the sink works, we return SELECT_EXPOSE to make decodebin
GST_DEBUG_OBJECT (playbin, "checking factory %s",
GST_PLUGIN_FEATURE_NAME (factory));
- /* if it's not a sink, we just make decodebin try it */
+ /* if it's not a sink, we make sure the element is compatible with
+ * the fixed sink */
if (!gst_element_factory_list_is_type (factory,
- GST_ELEMENT_FACTORY_TYPE_SINK))
- return GST_AUTOPLUG_SELECT_TRY;
+ GST_ELEMENT_FACTORY_TYPE_SINK)) {
+ gboolean isvideodec = gst_element_factory_list_is_type (factory,
+ GST_ELEMENT_FACTORY_TYPE_DECODER |
+ GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+ GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE);
+ gboolean isaudiodec = gst_element_factory_list_is_type (factory,
+ GST_ELEMENT_FACTORY_TYPE_DECODER |
+ GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO);
+
+ /* If it is a decoder and we have a fixed sink for the media
+ * type it outputs, check that the decoder is compatible with this sink */
+ if ((isvideodec && group->video_sink) || (isaudiodec && group->audio_sink)) {
+ gboolean compatible = TRUE;
+ GstPad *sinkpad;
+ GstCaps *caps;
+ GstElement *sink;
+
+ if (isaudiodec)
+ sink = group->audio_sink;
+ else
+ sink = group->video_sink;
+
+ if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
+ GstPlayFlags flags = gst_play_bin_get_flags (playbin);
+ GstCaps *raw_caps =
+ (isaudiodec) ? gst_static_caps_get (&raw_audio_caps) :
+ gst_static_caps_get (&raw_video_caps);
+
+ caps = gst_pad_get_caps_reffed (sinkpad);
+
+ /* If the sink supports raw audio/video, we first check
+ * if the decoder could output any raw audio/video format
+ * and assume it is compatible with the sink then. We don't
+ * do a complete compatibility check here if converters
+ * are plugged between the decoder and the sink because
+ * the converters will convert between raw formats and
+ * even if the decoder format is not supported by the decoder
+ * a converter will convert it.
+ *
+ * We assume here that the converters can convert between
+ * any raw format.
+ */
+ if ((isaudiodec && !(flags & GST_PLAY_FLAG_NATIVE_AUDIO)
+ && gst_caps_can_intersect (caps, raw_caps)) || (!isaudiodec
+ && !(flags & GST_PLAY_FLAG_NATIVE_VIDEO)
+ && gst_caps_can_intersect (caps, raw_caps))) {
+ compatible = gst_element_factory_can_src_any_caps (factory, raw_caps)
+ || gst_element_factory_can_src_any_caps (factory, caps);
+ } else {
+ compatible = gst_element_factory_can_src_any_caps (factory, caps);
+ }
+
+ gst_object_unref (sinkpad);
+ gst_caps_unref (caps);
+ }
+
+ if (compatible)
+ return GST_AUTOPLUG_SELECT_TRY;
+
+ GST_DEBUG_OBJECT (playbin, "%s not compatible with the fixed sink",
+ GST_PLUGIN_FEATURE_NAME (factory));
+
+ return GST_AUTOPLUG_SELECT_SKIP;
+ } else
+ return GST_AUTOPLUG_SELECT_TRY;
+ }
/* it's a sink, see if an instance of it actually works */
GST_DEBUG_OBJECT (playbin, "we found a sink");
GST_SOURCE_GROUP_LOCK (group);
group->active = FALSE;
- for (i = 0; i < GST_PLAY_SINK_TYPE_LAST; i++) {
+ for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
GstSourceSelect *select = &group->selector[i];
GST_DEBUG_OBJECT (playbin, "unlinking selector %s", select->media_list[0]);
/* see if there is a current group */
GST_PLAY_BIN_LOCK (playbin);
curr_group = playbin->curr_group;
- if (curr_group && curr_group->valid) {
+ if (curr_group && curr_group->valid && curr_group->active) {
/* unlink our pads with the sink */
deactivate_group (playbin, curr_group);
}
/* GStreamer
* Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#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 <string.h>
#include <gst/gst.h>
#include "gstplaysink.h"
#include "gststreamsynchronizer.h"
+#include "gstplaysinkvideoconvert.h"
+#include "gstplaysinkaudioconvert.h"
GST_DEBUG_CATEGORY_STATIC (gst_play_sink_debug);
#define GST_CAT_DEFAULT gst_play_sink_debug
GstPad *sinkpad;
GstElement *queue;
GstElement *conv;
- GstElement *resample;
GstElement *volume; /* element with the volume property */
gboolean sink_volume; /* if the volume was provided by the sink */
GstElement *mute; /* element with the mute property */
GstPad *sinkpad;
GstElement *queue;
GstElement *conv;
- GstElement *scale;
GstElement *sink;
gboolean async;
GstElement *ts_offset;
g_static_rec_mutex_unlock (GST_PLAY_SINK_GET_LOCK (playsink)); \
} G_STMT_END
+#define PENDING_FLAG_SET(playsink, flagtype) \
+ ((playsink->pending_blocked_pads) |= (1 << flagtype))
+#define PENDING_FLAG_UNSET(playsink, flagtype) \
+ ((playsink->pending_blocked_pads) &= ~(1 << flagtype))
+#define PENDING_FLAG_IS_SET(playsink, flagtype) \
+ ((playsink->pending_blocked_pads) & (1 << flagtype))
+#define PENDING_VIDEO_BLOCK(playsink) \
+ ((playsink->pending_blocked_pads) & (1 << GST_PLAY_SINK_TYPE_VIDEO_RAW | 1 << GST_PLAY_SINK_TYPE_VIDEO))
+#define PENDING_AUDIO_BLOCK(playsink) \
+ ((playsink->pending_blocked_pads) & (1 << GST_PLAY_SINK_TYPE_AUDIO_RAW | 1 << GST_PLAY_SINK_TYPE_AUDIO))
+#define PENDING_TEXT_BLOCK(playsink) \
+ PENDING_FLAG_IS_SET(playsink, GST_PLAY_SINK_TYPE_TEXT)
+
struct _GstPlaySink
{
GstBin bin;
/* audio */
GstPad *audio_pad;
gboolean audio_pad_raw;
+ gboolean audio_pad_blocked;
GstPad *audio_srcpad_stream_synchronizer;
GstPad *audio_sinkpad_stream_synchronizer;
/* audio tee */
/* video */
GstPad *video_pad;
gboolean video_pad_raw;
+ gboolean video_pad_blocked;
GstPad *video_srcpad_stream_synchronizer;
GstPad *video_sinkpad_stream_synchronizer;
/* text */
GstPad *text_pad;
+ gboolean text_pad_blocked;
GstPad *text_srcpad_stream_synchronizer;
GstPad *text_sinkpad_stream_synchronizer;
+ guint32 pending_blocked_pads;
+
/* properties */
GstElement *audio_sink;
GstElement *video_sink;
GstBuffer *(*convert_frame) (GstPlaySink * playsink, GstCaps * caps);
};
-static GstStaticPadTemplate audiorawtemplate =
-GST_STATIC_PAD_TEMPLATE ("audio_raw_sink",
+
+static GstStaticPadTemplate audiotemplate =
+GST_STATIC_PAD_TEMPLATE ("audio_sink",
GST_PAD_SINK,
GST_PAD_REQUEST,
GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate audiotemplate =
-GST_STATIC_PAD_TEMPLATE ("audio_sink",
+static GstStaticPadTemplate videotemplate =
+GST_STATIC_PAD_TEMPLATE ("video_sink",
GST_PAD_SINK,
GST_PAD_REQUEST,
GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate videorawtemplate =
-GST_STATIC_PAD_TEMPLATE ("video_raw_sink",
+static GstStaticPadTemplate texttemplate = GST_STATIC_PAD_TEMPLATE ("text_sink",
GST_PAD_SINK,
GST_PAD_REQUEST,
GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate videotemplate =
-GST_STATIC_PAD_TEMPLATE ("video_sink",
+
+/* FIXME 0.11: Remove */
+static GstStaticPadTemplate audiorawtemplate =
+GST_STATIC_PAD_TEMPLATE ("audio_raw_sink",
GST_PAD_SINK,
GST_PAD_REQUEST,
GST_STATIC_CAPS_ANY);
-static GstStaticPadTemplate texttemplate = GST_STATIC_PAD_TEMPLATE ("text_sink",
+static GstStaticPadTemplate videorawtemplate =
+GST_STATIC_PAD_TEMPLATE ("video_raw_sink",
GST_PAD_SINK,
GST_PAD_REQUEST,
GST_STATIC_CAPS_ANY);
+
/* props */
enum
{
PROP_VIS_PLUGIN,
PROP_FRAME,
PROP_AV_OFFSET,
+ PROP_VIDEO_SINK,
+ PROP_AUDIO_SINK,
+ PROP_TEXT_SINK,
PROP_LAST
};
G_MININT64, G_MAXINT64, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstPlaySink:video-sink:
+ *
+ * Set the used video sink element. NULL will use the default sink. playsink
+ * must be in %GST_STATE_NULL
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (gobject_klass, PROP_VIDEO_SINK,
+ g_param_spec_object ("video-sink", "Video Sink",
+ "the video output element to use (NULL = default sink)",
+ GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstPlaySink:audio-sink:
+ *
+ * Set the used audio sink element. NULL will use the default sink. playsink
+ * must be in %GST_STATE_NULL
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (gobject_klass, PROP_AUDIO_SINK,
+ g_param_spec_object ("audio-sink", "Audio Sink",
+ "the audio output element to use (NULL = default sink)",
+ GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ /**
+ * GstPlaySink:text-sink:
+ *
+ * Set the used text sink element. NULL will use the default sink. playsink
+ * must be in %GST_STATE_NULL
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (gobject_klass, PROP_TEXT_SINK,
+ g_param_spec_object ("text-sink", "Text sink",
+ "the text output element to use (NULL = default textoverlay)",
+ GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+
g_signal_new ("reconfigure", G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstPlaySinkClass,
reconfigure), NULL, NULL, gst_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN,
G_STRUCT_OFFSET (GstPlaySinkClass, convert_frame), NULL, NULL,
gst_play_marshal_BUFFER__BOXED, GST_TYPE_BUFFER, 1, GST_TYPE_CAPS);
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&audiorawtemplate));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&audiotemplate));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&videorawtemplate));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&videotemplate));
- gst_element_class_add_pad_template (gstelement_klass,
- gst_static_pad_template_get (&texttemplate));
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &audiorawtemplate);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &audiotemplate);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &videorawtemplate);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &videotemplate);
+ gst_element_class_add_static_pad_template (gstelement_klass,
+ &texttemplate);
gst_element_class_set_details_simple (gstelement_klass, "Player Sink",
"Generic/Bin/Sink",
"Convenience sink for multiple streams",
GST_PLAY_SINK_LOCK (playsink);
switch (type) {
case GST_PLAY_SINK_TYPE_AUDIO:
+ case GST_PLAY_SINK_TYPE_AUDIO_RAW:
{
GstPlayAudioChain *chain;
if ((chain = (GstPlayAudioChain *) playsink->audiochain))
break;
}
case GST_PLAY_SINK_TYPE_VIDEO:
+ case GST_PLAY_SINK_TYPE_VIDEO_RAW:
{
GstPlayVideoChain *chain;
if ((chain = (GstPlayVideoChain *) playsink->videochain))
}
/* make the element (bin) that contains the elements needed to perform
- * video display.
+ * video display. Only used for *raw* video streams.
*
* +------------------------------------------------------------+
* | vbin |
bin = GST_BIN_CAST (chain->chain.bin);
gst_object_ref_sink (bin);
- GST_DEBUG_OBJECT (playsink, "creating ffmpegcolorspace");
- chain->conv = gst_element_factory_make ("ffmpegcolorspace", "vdconv");
+ GST_DEBUG_OBJECT (playsink, "creating " COLORSPACE);
+ chain->conv = gst_element_factory_make (COLORSPACE, "vdconv");
if (chain->conv == NULL) {
- post_missing_element_message (playsink, "ffmpegcolorspace");
+ post_missing_element_message (playsink, COLORSPACE);
GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
(_("Missing element '%s' - check your GStreamer installation."),
- "ffmpegcolorspace"), ("video rendering might fail"));
+ COLORSPACE), ("video rendering might fail"));
} else {
gst_bin_add (bin, chain->conv);
head = chain->conv;
}
}
+#ifdef GST_EXT_LINK_FIMCCONVERT
+static gint
+compare_name (GstElement * element, const gchar * name)
+{
+ gchar *str;
+ GST_OBJECT_LOCK (element);
+ str = g_strrstr(GST_ELEMENT_NAME (element), name);
+ GST_OBJECT_UNLOCK (element);
+
+ if (str)
+ return 0;
+ else
+ return -1;
+}
+#endif
+
/* make the element (bin) that contains the elements needed to perform
* video display.
*
GstBin *bin;
GstPad *pad;
GstElement *head = NULL, *prev = NULL, *elem = NULL;
+ GstPlugin *p;
chain = g_new0 (GstPlayVideoChain, 1);
chain->chain.playsink = playsink;
}
/* find ts-offset element */
- chain->ts_offset =
+ gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
- G_TYPE_INT64);
+ G_TYPE_INT64));
/* create a bin to hold objects, as we create them we add them to this bin so
* that when something goes wrong we only need to unref the bin */
head = prev = chain->queue;
}
- if (raw && !(playsink->flags & GST_PLAY_FLAG_NATIVE_VIDEO)) {
- GST_DEBUG_OBJECT (playsink, "creating ffmpegcolorspace");
- chain->conv = gst_element_factory_make ("ffmpegcolorspace", "vconv");
- if (chain->conv == NULL) {
- post_missing_element_message (playsink, "ffmpegcolorspace");
- GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
- (_("Missing element '%s' - check your GStreamer installation."),
- "ffmpegcolorspace"), ("video rendering might fail"));
+ if (!(playsink->flags & GST_PLAY_FLAG_NATIVE_VIDEO)) {
+ GST_DEBUG_OBJECT (playsink, "creating videoconverter");
+#ifdef GST_EXT_LINK_FIMCCONVERT
+ GstIterator *iter = gst_bin_iterate_recurse (gst_element_get_parent(playsink));
+ gpointer e = gst_iterator_find_custom (iter, (GCompareFunc) compare_name, "omx");
+ gst_iterator_free (iter);
+ if (e) {
+ chain->conv = gst_element_factory_make ("fimcconvert", "vconv");
+ gst_object_unref(p);
+ } else
+ chain->conv = gst_element_factory_make (COLORSPACE, "vconv");
+#else
+ chain->conv = g_object_new (GST_TYPE_PLAY_SINK_VIDEO_CONVERT, "name", "vconv", NULL);
+#endif
+ gst_bin_add (bin, chain->conv);
+ if (prev) {
+ if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
+ GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+ goto link_failed;
} else {
- gst_bin_add (bin, chain->conv);
- if (prev) {
- if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
- GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
- goto link_failed;
- } else {
- head = chain->conv;
- }
- prev = chain->conv;
- }
-
- GST_DEBUG_OBJECT (playsink, "creating videoscale");
- chain->scale = gst_element_factory_make ("videoscale", "vscale");
- if (chain->scale == NULL) {
- post_missing_element_message (playsink, "videoscale");
- GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
- (_("Missing element '%s' - check your GStreamer installation."),
- "videoscale"), ("possibly a liboil version mismatch?"));
- } else {
- /* Add black borders if necessary to keep the DAR */
- g_object_set (chain->scale, "add-borders", TRUE, NULL);
- gst_bin_add (bin, chain->scale);
- if (prev) {
- if (!gst_element_link_pads_full (prev, "src", chain->scale, "sink",
- GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
- goto link_failed;
- } else {
- head = chain->scale;
- }
- prev = chain->scale;
+ head = chain->conv;
}
+ prev = chain->conv;
}
if (prev) {
chain = playsink->videochain;
+ chain->chain.raw = raw;
+
/* if the chain was active we don't do anything */
if (GST_PLAY_CHAIN (chain)->activated == TRUE)
return TRUE;
- if (chain->chain.raw != raw)
- return FALSE;
-
/* try to set the sink element to READY again */
ret = gst_element_set_state (chain->sink, GST_STATE_READY);
if (ret == GST_STATE_CHANGE_FAILURE)
return FALSE;
/* find ts-offset element */
- chain->ts_offset =
+
+ gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
- G_TYPE_INT64);
+ G_TYPE_INT64));
/* if we can disable async behaviour of the sink, we can avoid adding a
* queue for the audio chain. */
}
/* make an element for playback of video with subtitles embedded.
+ * Only used for *raw* video streams.
*
* +--------------------------------------------+
* | tbin |
chain->queue = NULL;
}
/* try to set sync to true but it's no biggie when we can't */
- if ((elem =
+ if (chain->sink && (elem =
gst_play_sink_find_property_sinks (playsink, chain->sink,
"sync", G_TYPE_BOOLEAN)))
g_object_set (elem, "sync", TRUE, NULL);
"max-size-bytes", 0, "max-size-time", (gint64) 0,
"silent", TRUE, NULL);
gst_bin_add (bin, element);
- gst_element_link_pads_full (element, "src", chain->overlay,
- "subtitle_sink", GST_PAD_LINK_CHECK_TEMPLATE_CAPS);
- textsinkpad = gst_element_get_static_pad (element, "sink");
- srcpad = gst_element_get_static_pad (chain->overlay, "src");
+ if (gst_element_link_pads_full (element, "src", chain->overlay,
+ "subtitle_sink", GST_PAD_LINK_CHECK_TEMPLATE_CAPS)) {
+ textsinkpad = gst_element_get_static_pad (element, "sink");
+ srcpad = gst_element_get_static_pad (chain->overlay, "src");
+ } else {
+ gst_bin_remove (bin, chain->sink);
+ gst_bin_remove (bin, chain->overlay);
+ chain->sink = NULL;
+ chain->overlay = NULL;
+ gst_object_unref (videosinkpad);
+ videosinkpad = NULL;
+ }
}
}
}
}
/* find ts-offset element */
- chain->ts_offset =
+ gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
- G_TYPE_INT64);
+ G_TYPE_INT64));
/* check if the sink, or something within the sink, has the volume property.
* If it does we don't need to add a volume element. */
chain->sink_volume = FALSE;
}
- if (raw && !(playsink->flags & GST_PLAY_FLAG_NATIVE_AUDIO)) {
- GST_DEBUG_OBJECT (playsink, "creating audioconvert");
- chain->conv = gst_element_factory_make ("audioconvert", "aconv");
- if (chain->conv == NULL) {
- post_missing_element_message (playsink, "audioconvert");
- GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
- (_("Missing element '%s' - check your GStreamer installation."),
- "audioconvert"), ("possibly a liboil version mismatch?"));
- } else {
- gst_bin_add (bin, chain->conv);
- if (prev) {
- if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
- GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
- goto link_failed;
- } else {
- head = chain->conv;
- }
- prev = chain->conv;
- }
-
- GST_DEBUG_OBJECT (playsink, "creating audioresample");
- chain->resample = gst_element_factory_make ("audioresample", "aresample");
- if (chain->resample == NULL) {
- post_missing_element_message (playsink, "audioresample");
- GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
- (_("Missing element '%s' - check your GStreamer installation."),
- "audioresample"), ("possibly a liboil version mismatch?"));
+ if (!(playsink->flags & GST_PLAY_FLAG_NATIVE_AUDIO) || (!have_volume
+ && playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME)) {
+ gboolean use_converters = !(playsink->flags & GST_PLAY_FLAG_NATIVE_AUDIO);
+ gboolean use_volume =
+ !have_volume && playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME;
+ GST_DEBUG_OBJECT (playsink,
+ "creating audioconvert with use-converters %d, use-volume %d",
+ use_converters, use_volume);
+ chain->conv =
+ g_object_new (GST_TYPE_PLAY_SINK_AUDIO_CONVERT, "name", "aconv",
+ "use-converters", use_converters, "use-volume", use_volume, NULL);
+ gst_bin_add (bin, chain->conv);
+ if (prev) {
+ if (!gst_element_link_pads_full (prev, "src", chain->conv, "sink",
+ GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+ goto link_failed;
} else {
- gst_bin_add (bin, chain->resample);
- if (prev) {
- if (!gst_element_link_pads_full (prev, "src", chain->resample, "sink",
- GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
- goto link_failed;
- } else {
- head = chain->resample;
- }
- prev = chain->resample;
+ head = chain->conv;
}
+ prev = chain->conv;
if (!have_volume && playsink->flags & GST_PLAY_FLAG_SOFT_VOLUME) {
- GST_DEBUG_OBJECT (playsink, "creating volume");
- chain->volume = gst_element_factory_make ("volume", "volume");
- if (chain->volume == NULL) {
- post_missing_element_message (playsink, "volume");
- GST_ELEMENT_WARNING (playsink, CORE, MISSING_PLUGIN,
- (_("Missing element '%s' - check your GStreamer installation."),
- "volume"), ("possibly a liboil version mismatch?"));
- } else {
+ GstPlaySinkAudioConvert *conv =
+ GST_PLAY_SINK_AUDIO_CONVERT_CAST (chain->conv);
+
+ if (conv->volume) {
+ chain->volume = conv->volume;
have_volume = TRUE;
g_signal_connect (chain->volume, "notify::volume",
g_object_set (G_OBJECT (chain->volume), "volume", playsink->volume,
NULL);
g_object_set (G_OBJECT (chain->mute), "mute", playsink->mute, NULL);
- gst_bin_add (bin, chain->volume);
-
- if (prev) {
- if (!gst_element_link_pads_full (prev, "src", chain->volume, "sink",
- GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
- goto link_failed;
- } else {
- head = chain->volume;
- }
- prev = chain->volume;
}
}
}
chain = playsink->audiochain;
+ chain->chain.raw = raw;
+
/* if the chain was active we don't do anything */
if (GST_PLAY_CHAIN (chain)->activated == TRUE)
return TRUE;
- if (chain->chain.raw != raw)
- return FALSE;
-
/* try to set the sink element to READY again */
ret = gst_element_set_state (chain->sink, GST_STATE_READY);
if (ret == GST_STATE_CHANGE_FAILURE)
return FALSE;
/* find ts-offset element */
- chain->ts_offset =
+ gst_object_replace ((GstObject **) & chain->ts_offset, (GstObject *)
gst_play_sink_find_property_sinks (playsink, chain->sink, "ts-offset",
- G_TYPE_INT64);
+ G_TYPE_INT64));
/* check if the sink, or something within the sink, has the volume property.
* If it does we don't need to add a volume element. */
g_signal_connect (chain->mute, "notify::mute",
G_CALLBACK (notify_mute_cb), playsink);
}
+
+ g_object_set (chain->conv, "use-volume", FALSE, NULL);
} else {
+ GstPlaySinkAudioConvert *conv =
+ GST_PLAY_SINK_AUDIO_CONVERT_CAST (chain->conv);
+
/* no volume, we need to add a volume element when we can */
+ g_object_set (chain->conv, "use-volume", TRUE, NULL);
GST_DEBUG_OBJECT (playsink, "the sink has no volume property");
- if (!raw) {
- GST_LOG_OBJECT (playsink, "non-raw format, can't do soft volume control");
- disconnect_chain (chain, playsink);
- chain->volume = NULL;
- chain->mute = NULL;
- } else {
- /* both last and current chain are raw audio, there should be a volume
- * element already, unless the sink changed from one with a volume
- * property to one that hasn't got a volume property, in which case we
- * re-generate the chain */
- if (chain->volume == NULL) {
- GST_DEBUG_OBJECT (playsink, "no existing volume element to re-use");
- /* undo background state change done earlier */
- gst_element_set_state (chain->sink, GST_STATE_NULL);
- return FALSE;
- }
+ /* Disconnect signals */
+ disconnect_chain (chain, playsink);
- GST_DEBUG_OBJECT (playsink, "reusing existing volume element");
+ if (conv->volume) {
+ chain->volume = conv->volume;
+ chain->mute = chain->volume;
+
+ g_signal_connect (chain->volume, "notify::volume",
+ G_CALLBACK (notify_volume_cb), playsink);
+
+ g_signal_connect (chain->mute, "notify::mute",
+ G_CALLBACK (notify_mute_cb), playsink);
+
+ /* configure with the latest volume and mute */
+ g_object_set (G_OBJECT (chain->volume), "volume", playsink->volume, NULL);
+ g_object_set (G_OBJECT (chain->mute), "mute", playsink->mute, NULL);
}
+
+ GST_DEBUG_OBJECT (playsink, "reusing existing volume element");
}
return TRUE;
}
add_chain (GST_PLAY_CHAIN (playsink->videochain), FALSE);
activate_chain (GST_PLAY_CHAIN (playsink->videochain), FALSE);
+ if (playsink->videochain->ts_offset)
+ gst_object_unref (playsink->videochain->ts_offset);
playsink->videochain->ts_offset = NULL;
}
disconnect_chain (playsink->audiochain, playsink);
playsink->audiochain->volume = NULL;
playsink->audiochain->mute = NULL;
+ if (playsink->audiochain->ts_offset)
+ gst_object_unref (playsink->audiochain->ts_offset);
playsink->audiochain->ts_offset = NULL;
free_chain ((GstPlayChain *) playsink->audiochain);
playsink->audiochain = NULL;
disconnect_chain (playsink->audiochain, playsink);
playsink->audiochain->volume = NULL;
playsink->audiochain->mute = NULL;
+ if (playsink->audiochain->ts_offset)
+ gst_object_unref (playsink->audiochain->ts_offset);
playsink->audiochain->ts_offset = NULL;
}
add_chain (GST_PLAY_CHAIN (playsink->audiochain), FALSE);
* on the bus or not. It's not like it's a critical issue regarding
* playsink behaviour. */
GST_ERROR ("Error converting frame: %s", err->message);
+ g_error_free (err);
}
result = temp;
}
return result;
}
+static gboolean
+is_raw_structure (GstStructure * s)
+{
+ const gchar *name;
+
+ name = gst_structure_get_name (s);
+
+ if (g_str_has_prefix (name, "video/x-raw-") ||
+ g_str_has_prefix (name, "audio/x-raw-"))
+ return TRUE;
+ return FALSE;
+}
+
+static gboolean
+is_raw_pad (GstPad * pad)
+{
+ GstPad *peer = gst_pad_get_peer (pad);
+ GstCaps *caps;
+ gboolean raw = TRUE;
+
+ if (!peer)
+ return raw;
+
+ caps = gst_pad_get_negotiated_caps (peer);
+ if (!caps) {
+ guint i, n;
+
+ caps = gst_pad_get_caps_reffed (peer);
+
+ n = gst_caps_get_size (caps);
+ for (i = 0; i < n; i++) {
+ gboolean r = is_raw_structure (gst_caps_get_structure (caps, i));
+
+ if (i == 0) {
+ raw = r;
+ } else if (raw != r) {
+ GST_ERROR_OBJECT (pad,
+ "Caps contains raw and non-raw structures: %" GST_PTR_FORMAT, caps);
+ raw = FALSE;
+ break;
+ }
+ }
+ } else {
+ raw = is_raw_structure (gst_caps_get_structure (caps, 0));
+ }
+ gst_caps_unref (caps);
+ gst_object_unref (peer);
+
+ return raw;
+}
+
+static void
+sinkpad_blocked_cb (GstPad * blockedpad, gboolean blocked, gpointer user_data)
+{
+ GstPlaySink *playsink = (GstPlaySink *) user_data;
+ GstPad *pad;
+
+ GST_PLAY_SINK_LOCK (playsink);
+
+ pad = GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (blockedpad)));
+ if (pad == playsink->video_pad) {
+ playsink->video_pad_blocked = blocked;
+ GST_DEBUG_OBJECT (pad, "Video pad blocked: %d", blocked);
+ if (!blocked) {
+ PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_VIDEO_RAW);
+ PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_VIDEO);
+ }
+ } else if (pad == playsink->audio_pad) {
+ playsink->audio_pad_blocked = blocked;
+ GST_DEBUG_OBJECT (pad, "Audio pad blocked: %d", blocked);
+ if (!blocked) {
+ PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_AUDIO_RAW);
+ PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_AUDIO);
+ }
+ } else if (pad == playsink->text_pad) {
+ playsink->text_pad_blocked = blocked;
+ GST_DEBUG_OBJECT (pad, "Text pad blocked: %d", blocked);
+ if (!blocked)
+ PENDING_FLAG_UNSET (playsink, GST_PLAY_SINK_TYPE_TEXT);
+ }
+
+ if (!blocked) {
+ gst_object_unref (pad);
+ GST_PLAY_SINK_UNLOCK (playsink);
+ return;
+ }
+
+ /* We reconfigure when for ALL streams:
+ * * there isn't a pad
+ * * OR the pad is blocked
+ * * OR there are no pending blocks on that pad
+ */
+
+ if ((!playsink->video_pad || playsink->video_pad_blocked
+ || !PENDING_VIDEO_BLOCK (playsink)) && (!playsink->audio_pad
+ || playsink->audio_pad_blocked || !PENDING_AUDIO_BLOCK (playsink))
+ && (!playsink->text_pad || playsink->text_pad_blocked
+ || !PENDING_TEXT_BLOCK (playsink))) {
+ GST_DEBUG_OBJECT (playsink, "All pads blocked -- reconfiguring");
+
+ if (playsink->video_pad) {
+ playsink->video_pad_raw = is_raw_pad (playsink->video_pad);
+ GST_DEBUG_OBJECT (playsink, "Video pad is raw: %d",
+ playsink->video_pad_raw);
+ }
+
+ if (playsink->audio_pad) {
+ playsink->audio_pad_raw = is_raw_pad (playsink->audio_pad);
+ GST_DEBUG_OBJECT (playsink, "Audio pad is raw: %d",
+ playsink->audio_pad_raw);
+ }
+
+ gst_play_sink_reconfigure (playsink);
+
+ if (playsink->video_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->video_pad)));
+ gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ gst_object_unref (opad);
+ }
+
+ if (playsink->audio_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->audio_pad)));
+ gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ gst_object_unref (opad);
+ }
+
+ if (playsink->text_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->text_pad)));
+ gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ gst_object_unref (opad);
+ }
+ }
+
+ gst_object_unref (pad);
+
+ GST_PLAY_SINK_UNLOCK (playsink);
+}
+
+static void
+caps_notify_cb (GstPad * pad, GParamSpec * unused, GstPlaySink * playsink)
+{
+ gboolean reconfigure = FALSE;
+ GstCaps *caps;
+ gboolean raw;
+
+ g_object_get (pad, "caps", &caps, NULL);
+ if (!caps)
+ return;
+
+ if (pad == playsink->audio_pad) {
+ raw = is_raw_pad (pad);
+ reconfigure = (!!playsink->audio_pad_raw != !!raw)
+ && playsink->audiochain;
+ GST_DEBUG_OBJECT (pad,
+ "Audio caps changed: raw %d reconfigure %d caps %" GST_PTR_FORMAT, raw,
+ reconfigure, caps);
+ } else if (pad == playsink->video_pad) {
+ raw = is_raw_pad (pad);
+ reconfigure = (!!playsink->video_pad_raw != !!raw)
+ && playsink->videochain;
+ GST_DEBUG_OBJECT (pad,
+ "Video caps changed: raw %d reconfigure %d caps %" GST_PTR_FORMAT, raw,
+ reconfigure, caps);
+ }
+
+ gst_caps_unref (caps);
+
+ if (reconfigure) {
+ GST_PLAY_SINK_LOCK (playsink);
+ if (playsink->video_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->video_pad)));
+ gst_pad_set_blocked_async_full (opad, TRUE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ gst_object_unref (opad);
+ }
+
+ if (playsink->audio_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->audio_pad)));
+ gst_pad_set_blocked_async_full (opad, TRUE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ gst_object_unref (opad);
+ }
+
+ if (playsink->text_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->text_pad)));
+ gst_pad_set_blocked_async_full (opad, TRUE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ gst_object_unref (opad);
+ }
+ GST_PLAY_SINK_UNLOCK (playsink);
+ }
+}
+
/**
* gst_play_sink_request_pad
* @playsink: a #GstPlaySink
{
GstPad *res = NULL;
gboolean created = FALSE;
- gboolean raw = FALSE;
gboolean activate = TRUE;
const gchar *pad_name = NULL;
GST_PLAY_SINK_LOCK (playsink);
switch (type) {
case GST_PLAY_SINK_TYPE_AUDIO_RAW:
- pad_name = "audio_raw_sink";
- raw = TRUE;
case GST_PLAY_SINK_TYPE_AUDIO:
- if (pad_name == NULL)
- pad_name = "audio_sink";
+ pad_name = "audio_sink";
if (!playsink->audio_tee) {
GST_LOG_OBJECT (playsink, "creating tee");
/* create tee when needed. This element will feed the audio sink chain
GST_LOG_OBJECT (playsink, "ghosting tee sinkpad");
playsink->audio_pad =
gst_ghost_pad_new (pad_name, playsink->audio_tee_sink);
+ g_signal_connect (G_OBJECT (playsink->audio_pad), "notify::caps",
+ G_CALLBACK (caps_notify_cb), playsink);
created = TRUE;
}
- playsink->audio_pad_raw = raw;
+ playsink->audio_pad_raw = FALSE;
res = playsink->audio_pad;
break;
case GST_PLAY_SINK_TYPE_VIDEO_RAW:
- pad_name = "video_raw_sink";
- raw = TRUE;
case GST_PLAY_SINK_TYPE_VIDEO:
- if (pad_name == NULL)
- pad_name = "video_sink";
+ pad_name = "video_sink";
if (!playsink->video_pad) {
GST_LOG_OBJECT (playsink, "ghosting videosink");
playsink->video_pad =
gst_ghost_pad_new_no_target (pad_name, GST_PAD_SINK);
+ g_signal_connect (G_OBJECT (playsink->video_pad), "notify::caps",
+ G_CALLBACK (caps_notify_cb), playsink);
created = TRUE;
}
- playsink->video_pad_raw = raw;
+ playsink->video_pad_raw = FALSE;
res = playsink->video_pad;
break;
case GST_PLAY_SINK_TYPE_TEXT:
* element is 'running' */
gst_pad_set_active (res, TRUE);
gst_element_add_pad (GST_ELEMENT_CAST (playsink), res);
+ if (type != GST_PLAY_SINK_TYPE_FLUSHING) {
+ GstPad *blockpad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (res)));
+
+ gst_pad_set_blocked_async_full (blockpad, TRUE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ PENDING_FLAG_SET (playsink, type);
+ gst_object_unref (blockpad);
+ }
if (!activate)
gst_pad_set_active (res, activate);
}
GST_PLAY_SINK_LOCK (playsink);
if (pad == playsink->video_pad) {
res = &playsink->video_pad;
+ g_signal_handlers_disconnect_by_func (playsink->video_pad, caps_notify_cb,
+ playsink);
} else if (pad == playsink->audio_pad) {
res = &playsink->audio_pad;
+ g_signal_handlers_disconnect_by_func (playsink->audio_pad, caps_notify_cb,
+ playsink);
} else if (pad == playsink->text_pad) {
res = &playsink->text_pad;
} else {
if (playsink->textchain && playsink->textchain->sink) {
gst_event_ref (event);
if ((res = gst_element_send_event (playsink->textchain->chain.bin, event))) {
- GST_DEBUG_OBJECT (playsink, "Sent event succesfully to text sink");
+ GST_DEBUG_OBJECT (playsink, "Sent event successfully to text sink");
} else {
GST_DEBUG_OBJECT (playsink, "Event failed when sent to text sink");
}
if (playsink->videochain) {
gst_event_ref (event);
if ((res = gst_element_send_event (playsink->videochain->chain.bin, event))) {
- GST_DEBUG_OBJECT (playsink, "Sent event succesfully to video sink");
+ GST_DEBUG_OBJECT (playsink, "Sent event successfully to video sink");
goto done;
}
GST_DEBUG_OBJECT (playsink, "Event failed when sent to video sink");
if (playsink->audiochain) {
gst_event_ref (event);
if ((res = gst_element_send_event (playsink->audiochain->chain.bin, event))) {
- GST_DEBUG_OBJECT (playsink, "Sent event succesfully to audio sink");
+ GST_DEBUG_OBJECT (playsink, "Sent event successfully to audio sink");
goto done;
}
GST_DEBUG_OBJECT (playsink, "Event failed when sent to audio sink");
ret = GST_STATE_CHANGE_ASYNC;
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
+ /* unblock all pads here */
+ GST_PLAY_SINK_LOCK (playsink);
+ if (playsink->video_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->video_pad)));
+ if (gst_pad_is_blocked (opad)) {
+ gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ }
+ gst_object_unref (opad);
+ playsink->video_pad_blocked = FALSE;
+ }
+
+ if (playsink->audio_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->audio_pad)));
+
+ if (gst_pad_is_blocked (opad)) {
+ gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ }
+ gst_object_unref (opad);
+ playsink->audio_pad_blocked = FALSE;
+ }
+
+ if (playsink->text_pad) {
+ GstPad *opad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (playsink->text_pad)));
+ if (gst_pad_is_blocked (opad)) {
+ gst_pad_set_blocked_async_full (opad, FALSE, sinkpad_blocked_cb,
+ gst_object_ref (playsink), (GDestroyNotify) gst_object_unref);
+ }
+ gst_object_unref (opad);
+ playsink->text_pad_blocked = FALSE;
+ }
+ GST_PLAY_SINK_UNLOCK (playsink);
+ /* fall through */
case GST_STATE_CHANGE_READY_TO_NULL:
if (playsink->audiochain && playsink->audiochain->sink_volume) {
/* remove our links to the mute and volume elements when they were
disconnect_chain (playsink->audiochain, playsink);
playsink->audiochain->volume = NULL;
playsink->audiochain->mute = NULL;
+ }
+
+ if (playsink->audiochain && playsink->audiochain->ts_offset) {
+ gst_object_unref (playsink->audiochain->ts_offset);
playsink->audiochain->ts_offset = NULL;
}
+
+ if (playsink->videochain && playsink->videochain->ts_offset) {
+ gst_object_unref (playsink->videochain->ts_offset);
+ playsink->videochain->ts_offset = NULL;
+ }
ret = GST_STATE_CHANGE_SUCCESS;
break;
default:
case PROP_AV_OFFSET:
gst_play_sink_set_av_offset (playsink, g_value_get_int64 (value));
break;
+ case PROP_VIDEO_SINK:
+ gst_play_sink_set_sink (playsink, GST_PLAY_SINK_TYPE_VIDEO,
+ g_value_get_object (value));
+ break;
+ case PROP_AUDIO_SINK:
+ gst_play_sink_set_sink (playsink, GST_PLAY_SINK_TYPE_AUDIO,
+ g_value_get_object (value));
+ break;
+ case PROP_TEXT_SINK:
+ gst_play_sink_set_sink (playsink, GST_PLAY_SINK_TYPE_TEXT,
+ g_value_get_object (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, spec);
break;
case PROP_AV_OFFSET:
g_value_set_int64 (value, gst_play_sink_get_av_offset (playsink));
break;
+ case PROP_VIDEO_SINK:
+ g_value_take_object (value, gst_play_sink_get_sink (playsink,
+ GST_PLAY_SINK_TYPE_VIDEO));
+ break;
+ case PROP_AUDIO_SINK:
+ g_value_take_object (value, gst_play_sink_get_sink (playsink,
+ GST_PLAY_SINK_TYPE_AUDIO));
+ break;
+ case PROP_TEXT_SINK:
+ g_value_take_object (value, gst_play_sink_get_sink (playsink,
+ GST_PLAY_SINK_TYPE_TEXT));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, spec);
break;
/**
* GstPlaySinkType:
- * @GST_PLAY_SINK_TYPE_AUDIO: A non-raw audio pad
- * @GST_PLAY_SINK_TYPE_AUDIO_RAW: a raw audio pad
- * @GST_PLAY_SINK_TYPE_VIDEO: a non-raw video pad
- * @GST_PLAY_SINK_TYPE_VIDEO_RAW: a raw video pad
- * @GST_PLAY_SINK_TYPE_TEXT: a raw text pad
+ * @GST_PLAY_SINK_TYPE_AUDIO: an audio pad
+ * @GST_PLAY_SINK_TYPE_AUDIO_RAW: a raw audio pad. Deprecated.
+ * @GST_PLAY_SINK_TYPE_VIDEO: a video pad
+ * @GST_PLAY_SINK_TYPE_VIDEO_RAW: a raw video pad. Deprecated.
+ * @GST_PLAY_SINK_TYPE_TEXT: a text pad
* @GST_PLAY_SINK_TYPE_LAST: the last type
* @GST_PLAY_SINK_TYPE_FLUSHING: a flushing pad, used when shutting down
*
--- /dev/null
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * 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 "gstplaysinkaudioconvert.h"
+
+#include <gst/pbutils/pbutils.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_play_sink_audio_convert_debug);
+#define GST_CAT_DEFAULT gst_play_sink_audio_convert_debug
+
+#define parent_class gst_play_sink_audio_convert_parent_class
+
+G_DEFINE_TYPE (GstPlaySinkAudioConvert, gst_play_sink_audio_convert,
+ GST_TYPE_PLAY_SINK_CONVERT_BIN);
+
+enum
+{
+ PROP_0,
+ PROP_USE_CONVERTERS,
+ PROP_USE_VOLUME,
+};
+
+static gboolean
+gst_play_sink_audio_convert_add_conversion_elements (GstPlaySinkAudioConvert *
+ self)
+{
+ GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+ GstElement *el, *prev = NULL;
+
+ g_assert (cbin->conversion_elements == NULL);
+
+ GST_DEBUG_OBJECT (self,
+ "Building audio conversion with use-converters %d, use-volume %d",
+ self->use_converters, self->use_volume);
+
+ if (self->use_converters) {
+ el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+ "audioconvert", "conv");
+ if (el) {
+ prev = el;
+ }
+
+ el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+ "audioresample", "resample");
+ if (el) {
+
+ if (prev) {
+ if (!gst_element_link_pads_full (prev, "src", el, "sink",
+ GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+ goto link_failed;
+ }
+ prev = el;
+ }
+ }
+
+ if (self->use_volume && self->volume) {
+ el = self->volume;
+ gst_play_sink_convert_bin_add_conversion_element (cbin, el);
+ if (prev) {
+ if (!gst_element_link_pads_full (prev, "src", el, "sink",
+ GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+ goto link_failed;
+ }
+ prev = el;
+ }
+
+ return TRUE;
+
+link_failed:
+ return FALSE;
+}
+
+static void
+gst_play_sink_audio_convert_finalize (GObject * object)
+{
+ GstPlaySinkAudioConvert *self = GST_PLAY_SINK_AUDIO_CONVERT_CAST (object);
+
+ if (self->volume)
+ gst_object_unref (self->volume);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_play_sink_audio_convert_set_property (GObject * object, guint prop_id,
+ const GValue * value, GParamSpec * pspec)
+{
+ GstPlaySinkAudioConvert *self = GST_PLAY_SINK_AUDIO_CONVERT_CAST (object);
+ gboolean v, changed = FALSE;
+
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ switch (prop_id) {
+ case PROP_USE_CONVERTERS:
+ v = g_value_get_boolean (value);
+ if (v != self->use_converters) {
+ self->use_converters = v;
+ changed = TRUE;
+ }
+ break;
+ case PROP_USE_VOLUME:
+ v = g_value_get_boolean (value);
+ if (v != self->use_volume) {
+ self->use_volume = v;
+ changed = TRUE;
+ }
+ break;
+ default:
+ break;
+ }
+
+ if (changed) {
+ GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+ GST_DEBUG_OBJECT (self, "Rebuilding converter bin");
+ gst_play_sink_convert_bin_remove_elements (cbin);
+ gst_play_sink_audio_convert_add_conversion_elements (self);
+ gst_play_sink_convert_bin_add_identity (cbin);
+ gst_play_sink_convert_bin_cache_converter_caps (cbin);
+ }
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+}
+
+static void
+gst_play_sink_audio_convert_get_property (GObject * object, guint prop_id,
+ GValue * value, GParamSpec * pspec)
+{
+ GstPlaySinkAudioConvert *self = GST_PLAY_SINK_AUDIO_CONVERT_CAST (object);
+
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ switch (prop_id) {
+ case PROP_USE_CONVERTERS:
+ g_value_set_boolean (value, self->use_converters);
+ break;
+ case PROP_USE_VOLUME:
+ g_value_set_boolean (value, self->use_volume);
+ break;
+ default:
+ break;
+ }
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+}
+
+static void
+gst_play_sink_audio_convert_class_init (GstPlaySinkAudioConvertClass * klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
+
+ GST_DEBUG_CATEGORY_INIT (gst_play_sink_audio_convert_debug,
+ "playsinkaudioconvert", 0, "play bin");
+
+ gobject_class = (GObjectClass *) klass;
+ gstelement_class = (GstElementClass *) klass;
+
+ gobject_class->finalize = gst_play_sink_audio_convert_finalize;
+ gobject_class->set_property = gst_play_sink_audio_convert_set_property;
+ gobject_class->get_property = gst_play_sink_audio_convert_get_property;
+
+ g_object_class_install_property (gobject_class, PROP_USE_CONVERTERS,
+ g_param_spec_boolean ("use-converters", "Use converters",
+ "Whether to use conversion elements", FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (gobject_class, PROP_USE_VOLUME,
+ g_param_spec_boolean ("use-volume", "Use volume",
+ "Whether to use a volume element", FALSE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ gst_element_class_set_details_simple (gstelement_class,
+ "Player Sink Audio Converter", "Audio/Bin/Converter",
+ "Convenience bin for audio conversion",
+ "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+}
+
+static void
+gst_play_sink_audio_convert_init (GstPlaySinkAudioConvert * self)
+{
+ GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+
+ cbin->audio = TRUE;
+
+ /* FIXME: Only create this on demand but for now we need
+ * it to always exist because of playsink's volume proxying
+ * logic.
+ */
+ self->volume = gst_element_factory_make ("volume", "volume");
+ if (self->volume)
+ gst_object_ref_sink (self->volume);
+
+ gst_play_sink_audio_convert_add_conversion_elements (self);
+ gst_play_sink_convert_bin_cache_converter_caps (cbin);
+}
--- /dev/null
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * 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 <gst/gst.h>
+#include "gstplaysinkconvertbin.h"
+
+#ifndef __GST_PLAY_SINK_AUDIO_CONVERT_H__
+#define __GST_PLAY_SINK_AUDIO_CONVERT_H__
+
+G_BEGIN_DECLS
+#define GST_TYPE_PLAY_SINK_AUDIO_CONVERT \
+ (gst_play_sink_audio_convert_get_type())
+#define GST_PLAY_SINK_AUDIO_CONVERT(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY_SINK_AUDIO_CONVERT, GstPlaySinkAudioConvert))
+#define GST_PLAY_SINK_AUDIO_CONVERT_CAST(obj) \
+ ((GstPlaySinkAudioConvert *) obj)
+#define GST_PLAY_SINK_AUDIO_CONVERT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAY_SINK_AUDIO_CONVERT, GstPlaySinkAudioConvertClass))
+#define GST_IS_PLAY_SINK_AUDIO_CONVERT(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLAY_SINK_AUDIO_CONVERT))
+#define GST_IS_PLAY_SINK_AUDIO_CONVERT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PLAY_SINK_AUDIO_CONVERT))
+typedef struct _GstPlaySinkAudioConvert GstPlaySinkAudioConvert;
+typedef struct _GstPlaySinkAudioConvertClass GstPlaySinkAudioConvertClass;
+
+struct _GstPlaySinkAudioConvert
+{
+ GstPlaySinkConvertBin parent;
+
+ /* < pseudo public > */
+ GstElement *volume;
+ gboolean use_converters;
+ gboolean use_volume;
+};
+
+struct _GstPlaySinkAudioConvertClass
+{
+ GstPlaySinkConvertBinClass parent;
+};
+
+GType gst_play_sink_audio_convert_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_PLAY_SINK_AUDIO_CONVERT_H__ */
--- /dev/null
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Vincent Penquerch <vincent.penquerch@collabora.co.uk>
+ *
+ * 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 "gstplaysinkconvertbin.h"
+
+#include <gst/pbutils/pbutils.h>
+#include <gst/gst-i18n-plugin.h>
+#include "gst/glib-compat-private.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_play_sink_convert_bin_debug);
+#define GST_CAT_DEFAULT gst_play_sink_convert_bin_debug
+
+#define parent_class gst_play_sink_convert_bin_parent_class
+
+G_DEFINE_TYPE (GstPlaySinkConvertBin, gst_play_sink_convert_bin, GST_TYPE_BIN);
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS_ANY);
+
+static gboolean
+is_raw_caps (GstCaps * caps, gboolean audio)
+{
+ gint i, n;
+ GstStructure *s;
+ const gchar *name;
+ const gchar *prefix = audio ? "audio/x-raw-" : "video/x-raw-";
+
+ n = gst_caps_get_size (caps);
+ for (i = 0; i < n; i++) {
+ s = gst_caps_get_structure (caps, i);
+ name = gst_structure_get_name (s);
+ if (!g_str_has_prefix (name, prefix))
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+gst_play_sink_convert_bin_post_missing_element_message (GstPlaySinkConvertBin *
+ self, const gchar * name)
+{
+ GstMessage *msg;
+
+ msg = gst_missing_element_message_new (GST_ELEMENT_CAST (self), name);
+ gst_element_post_message (GST_ELEMENT_CAST (self), msg);
+}
+
+static void
+distribute_running_time (GstElement * element, const GstSegment * segment)
+{
+ GstEvent *event;
+ GstPad *pad;
+
+ pad = gst_element_get_static_pad (element, "sink");
+
+ gst_pad_send_event (pad, gst_event_new_flush_start ());
+ gst_pad_send_event (pad, gst_event_new_flush_stop ());
+
+ if (segment->accum && segment->format != GST_FORMAT_UNDEFINED) {
+ 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);
+ }
+
+ if (segment->format != GST_FORMAT_UNDEFINED) {
+ 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);
+}
+
+void
+gst_play_sink_convert_bin_add_conversion_element (GstPlaySinkConvertBin * self,
+ GstElement * el)
+{
+ self->conversion_elements = g_list_append (self->conversion_elements, el);
+ gst_bin_add (GST_BIN (self), gst_object_ref (el));
+}
+
+GstElement *
+gst_play_sink_convert_bin_add_conversion_element_factory (GstPlaySinkConvertBin
+ * self, const char *factory, const char *name)
+{
+ GstElement *el;
+
+ el = gst_element_factory_make (factory, name);
+ if (el == NULL) {
+ gst_play_sink_convert_bin_post_missing_element_message (self, factory);
+ GST_ELEMENT_WARNING (self, CORE, MISSING_PLUGIN,
+ (_("Missing element '%s' - check your GStreamer installation."),
+ factory),
+ (self->audio ? "audio rendering might fail" :
+ "video rendering might fail"));
+ } else {
+ gst_play_sink_convert_bin_add_conversion_element (self, el);
+ }
+ return el;
+}
+
+void
+gst_play_sink_convert_bin_add_identity (GstPlaySinkConvertBin * self)
+{
+ if (self->identity)
+ return;
+
+ self->identity = gst_element_factory_make ("identity", "identity");
+ if (self->identity == NULL) {
+ gst_play_sink_convert_bin_post_missing_element_message (self, "identity");
+ GST_ELEMENT_WARNING (self, CORE, MISSING_PLUGIN,
+ (_("Missing element '%s' - check your GStreamer installation."),
+ "identity"), (self->audio ?
+ "audio rendering might fail" : "video rendering might fail")
+
+ );
+ } else {
+ g_object_set (self->identity, "silent", TRUE, "signal-handoffs", FALSE,
+ NULL);
+ gst_bin_add (GST_BIN_CAST (self), self->identity);
+ }
+}
+
+static void
+gst_play_sink_convert_bin_set_targets (GstPlaySinkConvertBin * self,
+ gboolean passthrough)
+{
+ GstPad *pad;
+ GstElement *head, *tail;
+
+ GST_DEBUG_OBJECT (self, "Setting pad targets with passthrough %d",
+ passthrough);
+ if (self->conversion_elements == NULL || passthrough) {
+ GST_DEBUG_OBJECT (self, "no conversion elements, using identity (%p) as "
+ "head/tail", self->identity);
+ if (!passthrough) {
+ GST_WARNING_OBJECT (self,
+ "Doing passthrough as no converter elements were added");
+ }
+ head = tail = self->identity;
+ } else {
+ head = GST_ELEMENT (g_list_first (self->conversion_elements)->data);
+ tail = GST_ELEMENT (g_list_last (self->conversion_elements)->data);
+ GST_DEBUG_OBJECT (self, "conversion elements in use, picking "
+ "head:%s and tail:%s", GST_OBJECT_NAME (head), GST_OBJECT_NAME (tail));
+ }
+
+ g_return_if_fail (head != NULL);
+ g_return_if_fail (tail != NULL);
+
+ pad = gst_element_get_static_pad (head, "sink");
+ GST_DEBUG_OBJECT (self, "Ghosting bin sink pad to %" GST_PTR_FORMAT, pad);
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->sinkpad), pad);
+ gst_object_unref (pad);
+
+ pad = gst_element_get_static_pad (tail, "src");
+ GST_DEBUG_OBJECT (self, "Ghosting bin src pad to %" GST_PTR_FORMAT, pad);
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), pad);
+ gst_object_unref (pad);
+}
+
+static void
+gst_play_sink_convert_bin_remove_element (GstElement * element,
+ GstPlaySinkConvertBin * self)
+{
+ gst_element_set_state (element, GST_STATE_NULL);
+ gst_bin_remove (GST_BIN_CAST (self), element);
+}
+
+static void
+gst_play_sink_convert_bin_on_element_added (GstElement * element,
+ GstPlaySinkConvertBin * self)
+{
+ gst_element_sync_state_with_parent (element);
+ distribute_running_time (element, &self->segment);
+}
+
+static void
+pad_blocked_cb (GstPad * pad, gboolean blocked, GstPlaySinkConvertBin * self)
+{
+ GstPad *peer;
+ GstCaps *caps;
+ gboolean raw;
+
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ self->sink_proxypad_blocked = blocked;
+ GST_DEBUG_OBJECT (self, "Pad blocked: %d", blocked);
+ if (!blocked)
+ goto done;
+
+ /* There must be a peer at this point */
+ peer = gst_pad_get_peer (self->sinkpad);
+ caps = gst_pad_get_negotiated_caps (peer);
+ if (!caps)
+ caps = gst_pad_get_caps_reffed (peer);
+ gst_object_unref (peer);
+
+ raw = is_raw_caps (caps, self->audio);
+ GST_DEBUG_OBJECT (self, "Caps %" GST_PTR_FORMAT " are raw: %d", caps, raw);
+ gst_caps_unref (caps);
+
+ if (raw == self->raw)
+ goto unblock;
+ self->raw = raw;
+
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->sinkpad), NULL);
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), NULL);
+
+ if (raw) {
+ GST_DEBUG_OBJECT (self, "Switching to raw conversion pipeline");
+
+ if (self->conversion_elements)
+ g_list_foreach (self->conversion_elements,
+ (GFunc) gst_play_sink_convert_bin_on_element_added, self);
+ } else {
+
+ GST_DEBUG_OBJECT (self, "Switch to passthrough pipeline");
+
+ gst_play_sink_convert_bin_on_element_added (self->identity, self);
+ }
+
+ gst_play_sink_convert_bin_set_targets (self, !raw);
+
+unblock:
+ gst_pad_set_blocked_async_full (self->sink_proxypad, FALSE,
+ (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+ (GDestroyNotify) gst_object_unref);
+
+done:
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ return;
+}
+
+static gboolean
+gst_play_sink_convert_bin_sink_event (GstPad * pad, GstEvent * event)
+{
+ GstPlaySinkConvertBin *self =
+ GST_PLAY_SINK_CONVERT_BIN (gst_pad_get_parent (pad));
+ gboolean ret;
+
+ ret = gst_proxy_pad_event_default (pad, gst_event_ref (event));
+
+ if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
+ gboolean update;
+ gdouble rate, applied_rate;
+ GstFormat format;
+ gint64 start, stop, position;
+
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ gst_event_parse_new_segment_full (event, &update, &rate, &applied_rate,
+ &format, &start, &stop, &position);
+
+ GST_DEBUG_OBJECT (self, "Segment before %" GST_SEGMENT_FORMAT,
+ &self->segment);
+ gst_segment_set_newsegment_full (&self->segment, update, rate, applied_rate,
+ format, start, stop, position);
+ GST_DEBUG_OBJECT (self, "Segment after %" GST_SEGMENT_FORMAT,
+ &self->segment);
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ } else if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ GST_DEBUG_OBJECT (self, "Resetting segment");
+ gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ }
+
+ gst_event_unref (event);
+ gst_object_unref (self);
+
+ return ret;
+}
+
+static gboolean
+gst_play_sink_convert_bin_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+ GstPlaySinkConvertBin *self =
+ GST_PLAY_SINK_CONVERT_BIN (gst_pad_get_parent (pad));
+ gboolean ret;
+ GstStructure *s;
+ const gchar *name;
+ gboolean reconfigure = FALSE;
+ gboolean raw;
+
+ GST_DEBUG_OBJECT (pad, "setcaps: %" GST_PTR_FORMAT, caps);
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ s = gst_caps_get_structure (caps, 0);
+ name = gst_structure_get_name (s);
+
+ if (self->audio) {
+ raw = g_str_has_prefix (name, "audio/x-raw-");
+ } else {
+ raw = g_str_has_prefix (name, "video/x-raw-");
+ }
+
+ GST_DEBUG_OBJECT (self, "raw %d, self->raw %d, blocked %d",
+ raw, self->raw, gst_pad_is_blocked (self->sink_proxypad));
+
+ if (raw) {
+ if (!gst_pad_is_blocked (self->sink_proxypad)) {
+ GstPad *target = gst_ghost_pad_get_target (GST_GHOST_PAD (self->sinkpad));
+
+ if (!self->raw || (target && !gst_pad_accept_caps (target, caps))) {
+ if (!self->raw)
+ GST_DEBUG_OBJECT (self, "Changing caps from non-raw to raw");
+ else
+ GST_DEBUG_OBJECT (self, "Changing caps in an incompatible way");
+
+ reconfigure = TRUE;
+ gst_pad_set_blocked_async_full (self->sink_proxypad, TRUE,
+ (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+ (GDestroyNotify) gst_object_unref);
+ }
+
+ if (target)
+ gst_object_unref (target);
+ }
+ } else {
+ if (self->raw && !gst_pad_is_blocked (self->sink_proxypad)) {
+ GST_DEBUG_OBJECT (self, "Changing caps from raw to non-raw");
+ reconfigure = TRUE;
+ gst_pad_set_blocked_async_full (self->sink_proxypad, TRUE,
+ (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+ (GDestroyNotify) gst_object_unref);
+ }
+ }
+
+ /* Otherwise the setcaps below fails */
+ if (reconfigure) {
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->sinkpad), NULL);
+ gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), NULL);
+ }
+
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ ret = gst_ghost_pad_setcaps_default (pad, caps);
+
+ GST_DEBUG_OBJECT (self, "Setting sink caps %" GST_PTR_FORMAT ": %d", caps,
+ ret);
+
+ gst_object_unref (self);
+
+ return ret;
+}
+
+static GstCaps *
+gst_play_sink_convert_bin_getcaps (GstPad * pad)
+{
+ GstPlaySinkConvertBin *self =
+ GST_PLAY_SINK_CONVERT_BIN (gst_pad_get_parent (pad));
+ GstCaps *ret;
+ GstPad *otherpad, *peer;
+
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ if (pad == self->srcpad) {
+ otherpad = self->sinkpad;
+ } else if (pad == self->sinkpad) {
+ otherpad = self->srcpad;
+ } else {
+ GST_ERROR_OBJECT (pad, "Not one of our pads");
+ otherpad = NULL;
+ }
+
+ if (otherpad) {
+ peer = gst_pad_get_peer (otherpad);
+ if (peer) {
+ GstCaps *peer_caps = gst_pad_get_caps_reffed (peer);
+ gst_object_unref (peer);
+ if (self->converter_caps && is_raw_caps (peer_caps, self->audio)) {
+ peer_caps = gst_caps_make_writable (peer_caps);
+ gst_caps_merge (peer_caps, gst_caps_ref (self->converter_caps));
+ ret = peer_caps;
+ } else {
+ ret = peer_caps;
+ }
+ } else {
+ ret = gst_caps_ref (self->converter_caps);
+ }
+ } else {
+ ret = gst_caps_new_any ();
+ }
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+
+ gst_object_unref (self);
+
+ GST_DEBUG_OBJECT (pad, "Returning caps %" GST_PTR_FORMAT, ret);
+
+ return ret;
+}
+
+static gboolean
+gst_play_sink_convert_bin_acceptcaps (GstPad * pad, GstCaps * caps)
+{
+ GstCaps *allowed_caps;
+ gboolean ret;
+
+ allowed_caps = gst_pad_get_caps_reffed (pad);
+ /* FIXME 0.11: Should be a subset check now */
+ ret = gst_caps_can_intersect (caps, allowed_caps);
+ gst_caps_unref (allowed_caps);
+
+ return ret;
+}
+
+void
+gst_play_sink_convert_bin_remove_elements (GstPlaySinkConvertBin * self)
+{
+ if (self->conversion_elements) {
+ g_list_foreach (self->conversion_elements,
+ (GFunc) gst_play_sink_convert_bin_remove_element, self);
+ g_list_free (self->conversion_elements);
+ self->conversion_elements = NULL;
+ }
+ if (self->converter_caps) {
+ gst_caps_unref (self->converter_caps);
+ self->converter_caps = NULL;
+ }
+}
+
+static void
+gst_play_sink_convert_bin_dispose (GObject * object)
+{
+ GstPlaySinkConvertBin *self = GST_PLAY_SINK_CONVERT_BIN_CAST (object);
+
+ gst_play_sink_convert_bin_remove_elements (self);
+
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_play_sink_convert_bin_finalize (GObject * object)
+{
+ GstPlaySinkConvertBin *self = GST_PLAY_SINK_CONVERT_BIN_CAST (object);
+
+ gst_object_unref (self->sink_proxypad);
+ g_mutex_free (self->lock);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+void
+gst_play_sink_convert_bin_cache_converter_caps (GstPlaySinkConvertBin * self)
+{
+ GstElement *head;
+ GstPad *pad;
+
+ if (self->converter_caps) {
+ gst_caps_unref (self->converter_caps);
+ self->converter_caps = NULL;
+ }
+
+ if (!self->conversion_elements) {
+ GST_WARNING_OBJECT (self, "No conversion elements");
+ return;
+ }
+
+ head = GST_ELEMENT (g_list_first (self->conversion_elements)->data);
+ pad = gst_element_get_static_pad (head, "sink");
+ if (!pad) {
+ GST_WARNING_OBJECT (self, "No sink pad found");
+ return;
+ }
+
+ self->converter_caps = gst_pad_get_caps_reffed (pad);
+ GST_INFO_OBJECT (self, "Converter caps: %" GST_PTR_FORMAT,
+ self->converter_caps);
+
+ gst_object_unref (pad);
+}
+
+static GstStateChangeReturn
+gst_play_sink_convert_bin_change_state (GstElement * element,
+ GstStateChange transition)
+{
+ GstStateChangeReturn ret;
+ GstPlaySinkConvertBin *self = GST_PLAY_SINK_CONVERT_BIN_CAST (element);
+
+ switch (transition) {
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ if (gst_pad_is_blocked (self->sink_proxypad))
+ gst_pad_set_blocked_async_full (self->sink_proxypad, FALSE,
+ (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+ (GDestroyNotify) gst_object_unref);
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ break;
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+ gst_play_sink_convert_bin_set_targets (self, TRUE);
+ self->raw = FALSE;
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ break;
+ default:
+ break;
+ }
+
+ ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+ if (ret == GST_STATE_CHANGE_FAILURE)
+ return ret;
+
+ switch (transition) {
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+ gst_play_sink_convert_bin_set_targets (self, TRUE);
+ self->raw = FALSE;
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ break;
+ case GST_STATE_CHANGE_READY_TO_PAUSED:
+ GST_PLAY_SINK_CONVERT_BIN_LOCK (self);
+ if (!gst_pad_is_blocked (self->sink_proxypad))
+ gst_pad_set_blocked_async_full (self->sink_proxypad, TRUE,
+ (GstPadBlockCallback) pad_blocked_cb, gst_object_ref (self),
+ (GDestroyNotify) gst_object_unref);
+ GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);
+ break;
+ default:
+ break;
+ }
+
+ return ret;
+}
+
+static void
+gst_play_sink_convert_bin_class_init (GstPlaySinkConvertBinClass * klass)
+{
+ GObjectClass *gobject_class;
+ GstElementClass *gstelement_class;
+
+ GST_DEBUG_CATEGORY_INIT (gst_play_sink_convert_bin_debug,
+ "playsinkconvertbin", 0, "play bin");
+
+ gobject_class = (GObjectClass *) klass;
+ gstelement_class = (GstElementClass *) klass;
+
+ gobject_class->dispose = gst_play_sink_convert_bin_dispose;
+ gobject_class->finalize = gst_play_sink_convert_bin_finalize;
+
+ 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_set_details_simple (gstelement_class,
+ "Player Sink Converter Bin", "Bin/Converter",
+ "Convenience bin for audio/video conversion",
+ "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+
+ gstelement_class->change_state =
+ GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_change_state);
+}
+
+static void
+gst_play_sink_convert_bin_init (GstPlaySinkConvertBin * self)
+{
+ GstPadTemplate *templ;
+
+ self->lock = g_mutex_new ();
+ gst_segment_init (&self->segment, GST_FORMAT_UNDEFINED);
+
+ templ = gst_static_pad_template_get (&sinktemplate);
+ self->sinkpad = gst_ghost_pad_new_no_target_from_template ("sink", templ);
+ gst_pad_set_event_function (self->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_sink_event));
+ gst_pad_set_setcaps_function (self->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_sink_setcaps));
+ gst_pad_set_getcaps_function (self->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_getcaps));
+ gst_pad_set_acceptcaps_function (self->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_acceptcaps));
+
+ self->sink_proxypad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (self->sinkpad)));
+
+ gst_element_add_pad (GST_ELEMENT_CAST (self), self->sinkpad);
+ gst_object_unref (templ);
+
+ templ = gst_static_pad_template_get (&srctemplate);
+ self->srcpad = gst_ghost_pad_new_no_target_from_template ("src", templ);
+ gst_pad_set_getcaps_function (self->srcpad,
+ GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_getcaps));
+ gst_pad_set_acceptcaps_function (self->srcpad,
+ GST_DEBUG_FUNCPTR (gst_play_sink_convert_bin_acceptcaps));
+ gst_element_add_pad (GST_ELEMENT_CAST (self), self->srcpad);
+ gst_object_unref (templ);
+
+ gst_play_sink_convert_bin_add_identity (self);
+}
--- /dev/null
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+ *
+ * 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 <gst/gst.h>
+
+#ifndef __GST_PLAY_SINK_CONVERT_BIN_H__
+#define __GST_PLAY_SINK_CONVERT_BIN_H__
+
+G_BEGIN_DECLS
+#define GST_TYPE_PLAY_SINK_CONVERT_BIN \
+ (gst_play_sink_convert_bin_get_type())
+#define GST_PLAY_SINK_CONVERT_BIN(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY_SINK_CONVERT_BIN, GstPlaySinkConvertBin))
+#define GST_PLAY_SINK_CONVERT_BIN_CAST(obj) \
+ ((GstPlaySinkConvertBin *) obj)
+#define GST_PLAY_SINK_CONVERT_BIN_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAY_SINK_CONVERT_BIN, GstPlaySinkConvertBinClass))
+#define GST_IS_PLAY_SINK_CONVERT_BIN(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLAY_SINK_CONVERT_BIN))
+#define GST_IS_PLAY_SINK_CONVERT_BIN_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PLAY_SINK_CONVERT_BIN))
+
+#define GST_PLAY_SINK_CONVERT_BIN_LOCK(obj) G_STMT_START { \
+ GST_LOG_OBJECT (obj, \
+ "locking from thread %p", \
+ g_thread_self ()); \
+ g_mutex_lock (GST_PLAY_SINK_CONVERT_BIN_CAST(obj)->lock); \
+ GST_LOG_OBJECT (obj, \
+ "locked from thread %p", \
+ g_thread_self ()); \
+} G_STMT_END
+
+#define GST_PLAY_SINK_CONVERT_BIN_UNLOCK(obj) G_STMT_START { \
+ GST_LOG_OBJECT (obj, \
+ "unlocking from thread %p", \
+ g_thread_self ()); \
+ g_mutex_unlock (GST_PLAY_SINK_CONVERT_BIN_CAST(obj)->lock); \
+} G_STMT_END
+
+typedef struct _GstPlaySinkConvertBin GstPlaySinkConvertBin;
+typedef struct _GstPlaySinkConvertBinClass GstPlaySinkConvertBinClass;
+
+struct _GstPlaySinkConvertBin
+{
+ GstBin parent;
+
+ /* < private > */
+ GMutex *lock;
+
+ GstPad *sinkpad, *sink_proxypad;
+ gboolean sink_proxypad_blocked;
+ GstSegment segment;
+
+ GstPad *srcpad;
+
+ gboolean raw;
+ GList *conversion_elements;
+ GstElement *identity;
+
+ GstCaps *converter_caps;
+
+ /* configuration for derived classes */
+ gboolean audio;
+};
+
+struct _GstPlaySinkConvertBinClass
+{
+ GstBinClass parent;
+};
+
+GType gst_play_sink_convert_bin_get_type (void);
+GstElement *
+gst_play_sink_convert_bin_add_conversion_element_factory (GstPlaySinkConvertBin *self,
+ const char *factory, const char *name);
+void
+gst_play_sink_convert_bin_add_conversion_element (GstPlaySinkConvertBin *self,
+ GstElement *el);
+void
+gst_play_sink_convert_bin_cache_converter_caps (GstPlaySinkConvertBin * self);
+void
+gst_play_sink_convert_bin_remove_elements (GstPlaySinkConvertBin * self);
+void
+gst_play_sink_convert_bin_add_identity (GstPlaySinkConvertBin * self);
+
+G_END_DECLS
+#endif /* __GST_PLAY_SINK_CONVERT_BIN_H__ */
--- /dev/null
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * 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 "gstplaysinkvideoconvert.h"
+
+#include <gst/pbutils/pbutils.h>
+#include <gst/gst-i18n-plugin.h>
+
+GST_DEBUG_CATEGORY_STATIC (gst_play_sink_video_convert_debug);
+#define GST_CAT_DEFAULT gst_play_sink_video_convert_debug
+
+#define parent_class gst_play_sink_video_convert_parent_class
+
+G_DEFINE_TYPE (GstPlaySinkVideoConvert, gst_play_sink_video_convert,
+ GST_TYPE_PLAY_SINK_CONVERT_BIN);
+
+static gboolean
+gst_play_sink_video_convert_add_conversion_elements (GstPlaySinkVideoConvert *
+ self)
+{
+ GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+ GstElement *el, *prev = NULL;
+
+ el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+ COLORSPACE, "conv");
+ if (el)
+ prev = el;
+
+ el = gst_play_sink_convert_bin_add_conversion_element_factory (cbin,
+ "videoscale", "scale");
+ if (el) {
+ /* Add black borders if necessary to keep the DAR */
+ g_object_set (el, "add-borders", TRUE, NULL);
+ if (prev) {
+ if (!gst_element_link_pads_full (prev, "src", el, "sink",
+ GST_PAD_LINK_CHECK_TEMPLATE_CAPS))
+ goto link_failed;
+ }
+ prev = el;
+ }
+
+ return TRUE;
+
+link_failed:
+ return FALSE;
+}
+
+static void
+gst_play_sink_video_convert_class_init (GstPlaySinkVideoConvertClass * klass)
+{
+ GstElementClass *gstelement_class;
+
+ GST_DEBUG_CATEGORY_INIT (gst_play_sink_video_convert_debug,
+ "playsinkvideoconvert", 0, "play bin");
+
+ gstelement_class = (GstElementClass *) klass;
+
+ gst_element_class_set_details_simple (gstelement_class,
+ "Player Sink Video Converter", "Video/Bin/Converter",
+ "Convenience bin for video conversion",
+ "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
+}
+
+static void
+gst_play_sink_video_convert_init (GstPlaySinkVideoConvert * self)
+{
+ GstPlaySinkConvertBin *cbin = GST_PLAY_SINK_CONVERT_BIN (self);
+ cbin->audio = FALSE;
+
+ gst_play_sink_video_convert_add_conversion_elements (self);
+ gst_play_sink_convert_bin_cache_converter_caps (cbin);
+}
--- /dev/null
+/* GStreamer
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * 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 <gst/gst.h>
+#include "gstplaysinkconvertbin.h"
+
+#ifndef __GST_PLAY_SINK_VIDEO_CONVERT_H__
+#define __GST_PLAY_SINK_VIDEO_CONVERT_H__
+
+G_BEGIN_DECLS
+#define GST_TYPE_PLAY_SINK_VIDEO_CONVERT \
+ (gst_play_sink_video_convert_get_type())
+#define GST_PLAY_SINK_VIDEO_CONVERT(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_PLAY_SINK_VIDEO_CONVERT, GstPlaySinkVideoConvert))
+#define GST_PLAY_SINK_VIDEO_CONVERT_CAST(obj) \
+ ((GstPlaySinkVideoConvert *) obj)
+#define GST_PLAY_SINK_VIDEO_CONVERT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_PLAY_SINK_VIDEO_CONVERT, GstPlaySinkVideoConvertClass))
+#define GST_IS_PLAY_SINK_VIDEO_CONVERT(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_PLAY_SINK_VIDEO_CONVERT))
+#define GST_IS_PLAY_SINK_VIDEO_CONVERT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_PLAY_SINK_VIDEO_CONVERT))
+typedef struct _GstPlaySinkVideoConvert GstPlaySinkVideoConvert;
+typedef struct _GstPlaySinkVideoConvertClass GstPlaySinkVideoConvertClass;
+
+struct _GstPlaySinkVideoConvert
+{
+ GstPlaySinkConvertBin parent;
+
+};
+
+struct _GstPlaySinkVideoConvertClass
+{
+ GstPlaySinkConvertBinClass parent;
+};
+
+GType gst_play_sink_video_convert_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_PLAY_SINK_VIDEO_CONVERT_H__ */
"Julien Moutte <julien@moutte.net>, "
"Jan Schmidt <thaytan@mad.scientist.com>, "
"Wim Taymans <wim.taymans@gmail.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_stream_selector_sink_factory));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_stream_selector_src_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_stream_selector_sink_factory);
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_stream_selector_src_factory);
}
static void
#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 "gststreamsynchronizer.h"
+#include "gst/glib-compat-private.h"
GST_DEBUG_CATEGORY_STATIC (stream_synchronizer_debug);
#define GST_CAT_DEFAULT stream_synchronizer_debug
static GstPad *
gst_stream_get_other_pad_from_pad (GstPad * pad)
{
- GstStreamSynchronizer *self =
- GST_STREAM_SYNCHRONIZER (gst_pad_get_parent (pad));
+ GstObject *parent = gst_pad_get_parent (pad);
+ GstStreamSynchronizer *self;
GstStream *stream;
GstPad *opad = NULL;
+ /* released pad does not have parent anymore */
+ if (!G_LIKELY (parent))
+ goto exit;
+
+ self = GST_STREAM_SYNCHRONIZER (parent);
GST_STREAM_SYNCHRONIZER_LOCK (self);
stream = gst_pad_get_element_private (pad);
if (!stream)
GST_STREAM_SYNCHRONIZER_UNLOCK (self);
gst_object_unref (self);
+exit:
if (!opad)
GST_WARNING_OBJECT (pad, "Trying to get other pad after releasing");
guint size, GstCaps * caps, GstBuffer ** buf)
{
GstPad *opad;
- GstFlowReturn ret = GST_FLOW_ERROR;
+ GstFlowReturn ret = GST_FLOW_OK;
GST_LOG_OBJECT (pad, "Allocating buffer: size=%u", size);
if (opad) {
ret = gst_pad_alloc_buffer (opad, offset, size, caps, buf);
gst_object_unref (opad);
+ } else {
+ /* may have been released during shutdown;
+ * silently trigger fallback */
+ *buf = NULL;
}
GST_LOG_OBJECT (pad, "Allocation: %s", gst_flow_get_name (ret));
GST_STREAM_SYNCHRONIZER_LOCK (self);
stream = gst_pad_get_element_private (pad);
- stream->seen_data = TRUE;
+ if (stream)
+ stream->seen_data = TRUE;
if (stream && stream->drop_discont) {
buffer = gst_buffer_make_metadata_writable (buffer);
GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DISCONT);
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
- 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);
gst_element_class_set_details_simple (gstelement_class,
"Stream Synchronizer", "Generic",
#include <gst/video/video.h>
#include <string.h>
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (subtitle_overlay_debug);
#define GST_CAT_DEFAULT subtitle_overlay_debug
"subtitle_sink", "subtitle"
};
+static inline gboolean
+_is_raw_video (GstStructure * s)
+{
+ const gchar *name;
+
+ name = gst_structure_get_name (s);
+
+ if (g_str_has_prefix (name, "video/x-raw-"))
+ return TRUE;
+ return FALSE;
+}
+
+static gboolean
+_is_video_pad (GstPad * pad, gboolean * hw_accelerated)
+{
+ GstPad *peer = gst_pad_get_peer (pad);
+ GstCaps *caps;
+ gboolean ret;
+ const gchar *name;
+
+ if (peer) {
+ caps = gst_pad_get_negotiated_caps (peer);
+ if (!caps) {
+ caps = gst_pad_get_caps_reffed (peer);
+ }
+ gst_object_unref (peer);
+ } else {
+ caps = gst_pad_get_caps_reffed (pad);
+ }
+
+
+ name = gst_structure_get_name (gst_caps_get_structure (caps, 0));
+ if (g_str_has_prefix (name, "video/x-raw-")) {
+ ret = TRUE;
+ if (hw_accelerated)
+ *hw_accelerated = FALSE;
+
+ } else if (g_str_has_prefix (name, "video/x-surface")) {
+ ret = TRUE;
+ if (hw_accelerated)
+ *hw_accelerated = TRUE;
+ } else {
+
+ ret = FALSE;
+ if (hw_accelerated)
+ *hw_accelerated = FALSE;
+ }
+
+ gst_caps_unref (caps);
+
+ return ret;
+}
+
static GstCaps *
_get_sub_caps (GstElementFactory * factory)
{
templ_caps = _get_sub_caps (factory);
if (is_renderer && have_video_sink && templ_caps) {
- GstCaps *tmp;
-
GST_DEBUG ("Found renderer element %s (%s) with caps %" GST_PTR_FORMAT,
gst_element_factory_get_longname (factory),
gst_plugin_feature_get_name (feature), templ_caps);
- tmp = gst_caps_union (*subcaps, templ_caps);
- gst_caps_unref (templ_caps);
- gst_caps_replace (subcaps, tmp);
- gst_caps_unref (tmp);
+ gst_caps_merge (*subcaps, templ_caps);
return TRUE;
} else if (!is_renderer && !have_video_sink && templ_caps) {
- GstCaps *tmp;
-
GST_DEBUG ("Found parser element %s (%s) with caps %" GST_PTR_FORMAT,
gst_element_factory_get_longname (factory),
gst_plugin_feature_get_name (feature), templ_caps);
- tmp = gst_caps_union (*subcaps, templ_caps);
- gst_caps_unref (templ_caps);
- gst_caps_replace (subcaps, tmp);
- gst_caps_unref (tmp);
+ gst_caps_merge (*subcaps, templ_caps);
return TRUE;
} else {
if (templ_caps)
}
static gboolean
-_filter_factories_for_caps (GstElementFactory * factory, const GstCaps * caps)
+check_factory_for_caps (GstElementFactory * factory, const GstCaps * caps)
{
GstCaps *fcaps = _get_sub_caps (factory);
gboolean ret = (fcaps) ? gst_caps_can_intersect (fcaps, caps) : FALSE;
return ret;
}
+static GList *
+gst_subtitle_overlay_get_factories_for_caps (const GList * list,
+ const GstCaps * caps)
+{
+ const GList *walk = list;
+ GList *result = NULL;
+
+ while (walk) {
+ GstElementFactory *factory = walk->data;
+
+ walk = g_list_next (walk);
+
+ if (check_factory_for_caps (factory, caps)) {
+ result = g_list_prepend (result, factory);
+ }
+ }
+
+ return result;
+}
+
static gint
_sort_by_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
{
out:
/* Unblock pads */
gst_pad_set_blocked_async_full (self->video_block_pad, FALSE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
if (self->subtitle_sink_blocked)
gst_pad_set_blocked_async_full (self->subtitle_block_pad, FALSE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
return TRUE;
}
/* Unblock pads */
gst_pad_set_blocked_async_full (self->video_block_pad, FALSE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
if (self->subtitle_sink_blocked)
gst_pad_set_blocked_async_full (self->subtitle_block_pad, FALSE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
goto out;
} else if (target) {
gst_object_unref (target);
if (self->subtitle_sink_blocked && !self->video_sink_blocked) {
GST_DEBUG_OBJECT (self, "Subtitle sink blocked but video not blocked");
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
goto out;
}
g_mutex_lock (self->factories_lock);
gst_subtitle_overlay_update_factory_list (self);
if (subcaps) {
- factories = gst_filter_run (self->factories,
- (GstFilterFunc) _filter_factories_for_caps, FALSE, subcaps);
+ factories =
+ gst_subtitle_overlay_get_factories_for_caps (self->factories, subcaps);
if (!factories) {
GstMessage *msg;
for (l = factories; l; l = l->next) {
GstElementFactory *factory = l->data;
- gboolean is_renderer = _is_renderer (factory);
+ gboolean is_video, is_hw, is_renderer = _is_renderer (factory);
GstElement *element;
GstPad *sink, *src;
element = is_renderer ? self->renderer : self->parser;
+ is_video = _is_video_pad (self->video_sinkpad, &is_hw);
/* If this is a parser, create textoverlay and link video and the parser to it
* Else link the renderer to the output colorspace */
if (!is_renderer) {
gst_object_unref (sink);
gst_object_unref (src);
- if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
- "ffmpegcolorspace", NULL, "post-colorspace", FALSE))) {
- continue;
- }
+ /* If we are working with video/x-surface, we do not add
+ * colorspace conversion elements */
+ if (is_video && !is_hw) {
+ if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
+ COLORSPACE, NULL, "post-colorspace", FALSE))) {
+ continue;
+ }
- src = gst_element_get_static_pad (overlay, "src");
- if (G_UNLIKELY (!src)) {
- GST_WARNING_OBJECT (self, "Can't get src pad from overlay");
- continue;
- }
+ src = gst_element_get_static_pad (overlay, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get src pad from overlay");
+ continue;
+ }
- sink = gst_element_get_static_pad (self->post_colorspace, "sink");
- if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
- gst_object_unref (src);
- continue;
- }
+ sink = gst_element_get_static_pad (self->post_colorspace, "sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+ gst_object_unref (src);
+ continue;
+ }
- if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
- GST_WARNING_OBJECT (self, "Can't link overlay with ffmpegcolorspace");
+ if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+ GST_WARNING_OBJECT (self, "Can't link overlay with " COLORSPACE);
+ gst_object_unref (src);
+ gst_object_unref (sink);
+ continue;
+ }
gst_object_unref (src);
gst_object_unref (sink);
- continue;
- }
- gst_object_unref (src);
- gst_object_unref (sink);
- if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
- "ffmpegcolorspace", NULL, "pre-colorspace", FALSE))) {
- continue;
- }
+ if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
+ "identity", NULL, "pre-colorspace", FALSE))) {
+ continue;
+ }
- sink = gst_element_get_static_pad (overlay, "video_sink");
- if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get video sink from textoverlay");
- continue;
- }
+ sink = gst_element_get_static_pad (overlay, "video_sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get video sink from textoverlay");
+ continue;
+ }
- src = gst_element_get_static_pad (self->pre_colorspace, "src");
- if (G_UNLIKELY (!src)) {
- GST_WARNING_OBJECT (self, "Can't get srcpad from ffmpegcolorspace");
- gst_object_unref (sink);
- continue;
- }
+ src = gst_element_get_static_pad (self->pre_colorspace, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get srcpad from " COLORSPACE);
+ gst_object_unref (sink);
+ continue;
+ }
- if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
- GST_WARNING_OBJECT (self, "Can't link ffmpegcolorspace to textoverlay");
+ if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+ GST_WARNING_OBJECT (self, "Can't link " COLORSPACE " to textoverlay");
+ gst_object_unref (src);
+ gst_object_unref (sink);
+ continue;
+ }
gst_object_unref (src);
gst_object_unref (sink);
- continue;
- }
- gst_object_unref (src);
- gst_object_unref (sink);
- /* Set src ghostpad target */
- src = gst_element_get_static_pad (self->post_colorspace, "src");
- if (G_UNLIKELY (!src)) {
- GST_WARNING_OBJECT (self, "Can't get src pad from ffmpegcolorspace");
- continue;
- }
+ /* Set src ghostpad target */
+ src = gst_element_get_static_pad (self->post_colorspace, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get src pad from " COLORSPACE);
+ continue;
+ }
- if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
- (self->srcpad), src))) {
- GST_WARNING_OBJECT (self, "Can't set srcpad target");
+ if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
+ (self->srcpad), src))) {
+ GST_WARNING_OBJECT (self, "Can't set srcpad target");
+ gst_object_unref (src);
+ continue;
+ }
+ gst_object_unref (src);
+ } else if (is_hw) {
+ GST_DEBUG_OBJECT (self,
+ "Is Hardware, not adding colorspace converters, ");
+ /* Set src ghostpad target */
+ src = gst_element_get_static_pad (self->overlay, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get src pad from textoverlay");
+ continue;
+ }
+
+ if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
+ (self->srcpad), src))) {
+ GST_WARNING_OBJECT (self, "Can't set srcpad target");
+ gst_object_unref (src);
+ continue;
+ }
gst_object_unref (src);
- continue;
}
- gst_object_unref (src);
/* Send segments to the parser/overlay if necessary. These are not sent
* outside this element because of the proxy pad event function */
if (self->video_segment.format != GST_FORMAT_UNDEFINED) {
GstEvent *event1, *event2;
- sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
- if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
- continue;
+ if (is_video) {
+ sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+ continue;
+ }
+ } else {
+ sink = gst_element_get_static_pad (self->overlay, "video_sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from textoverlay");
+ continue;
+ }
}
_generate_update_newsegment_event (&self->video_segment, &event1,
}
/* Set the sink ghostpad targets */
- sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
- if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
- continue;
+ if (is_video && !is_hw) {
+ sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+ continue;
+ }
+ } else if (is_video && is_hw) {
+ GST_DEBUG_OBJECT (self, "Setting ghostpad to overlay video sink");
+ sink = gst_element_get_static_pad (self->overlay, "video_sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from overlay");
+ continue;
+ }
}
if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
g_object_set (self->renderer, "font-desc", self->font_desc, NULL);
}
- /* First link everything internally */
- if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
- "ffmpegcolorspace", NULL, "post-colorspace", FALSE))) {
- continue;
- }
+ if (is_video) {
+ gboolean render_is_hw;
- src = gst_element_get_static_pad (element, "src");
- if (G_UNLIKELY (!src)) {
- GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
- continue;
- }
-
- sink = gst_element_get_static_pad (self->post_colorspace, "sink");
- if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
- gst_object_unref (src);
- continue;
- }
+ /* First check that renderer also supports the video format */
+ sink = _get_video_pad (element);
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
+ continue;
+ }
- if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
- GST_WARNING_OBJECT (self, "Can't link renderer with ffmpegcolorspace");
- gst_object_unref (src);
+ if (is_video != _is_video_pad (sink, &render_is_hw) ||
+ is_hw != render_is_hw) {
+ GST_DEBUG_OBJECT (self, "Renderer doesn't support %s video",
+ is_hw ? "surface" : "raw");
+ gst_object_unref (sink);
+ continue;
+ }
gst_object_unref (sink);
- continue;
- }
- gst_object_unref (src);
- gst_object_unref (sink);
- if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
- "ffmpegcolorspace", NULL, "pre-colorspace", FALSE))) {
- continue;
- }
+ if (!is_hw) {
+ /* First link everything internally */
+ if (G_UNLIKELY (!_create_element (self, &self->post_colorspace,
+ COLORSPACE, NULL, "post-colorspace", FALSE))) {
+ continue;
+ }
+ src = gst_element_get_static_pad (element, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
+ continue;
+ }
- sink = _get_video_pad (element);
- if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
- continue;
- }
+ sink = gst_element_get_static_pad (self->post_colorspace, "sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+ gst_object_unref (src);
+ continue;
+ }
- src = gst_element_get_static_pad (self->pre_colorspace, "src");
- if (G_UNLIKELY (!src)) {
- GST_WARNING_OBJECT (self, "Can't get srcpad from ffmpegcolorspace");
- gst_object_unref (sink);
- continue;
- }
+ if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+ GST_WARNING_OBJECT (self, "Can't link renderer with " COLORSPACE);
+ gst_object_unref (src);
+ gst_object_unref (sink);
+ continue;
+ }
+ gst_object_unref (src);
+ gst_object_unref (sink);
- if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
- GST_WARNING_OBJECT (self, "Can't link ffmpegcolorspace to renderer");
- gst_object_unref (src);
+ if (G_UNLIKELY (!_create_element (self, &self->pre_colorspace,
+ COLORSPACE, NULL, "pre-colorspace", FALSE))) {
+ continue;
+ }
+
+ sink = _get_video_pad (element);
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
+ continue;
+ }
+
+ src = gst_element_get_static_pad (self->pre_colorspace, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get srcpad from " COLORSPACE);
+ gst_object_unref (sink);
+ continue;
+ }
+
+ if (G_UNLIKELY (gst_pad_link (src, sink) != GST_PAD_LINK_OK)) {
+ GST_WARNING_OBJECT (self, "Can't link " COLORSPACE " to renderer");
+ gst_object_unref (src);
+ gst_object_unref (sink);
+ continue;
+ }
+ gst_object_unref (src);
+ gst_object_unref (sink);
+
+ /* Set src ghostpad target */
+ src = gst_element_get_static_pad (self->post_colorspace, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get src pad from " COLORSPACE);
+ continue;
+ }
+ } else {
+ /* Set src ghostpad target in the harware accelerated case */
+
+ src = gst_element_get_static_pad (self->renderer, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
+ continue;
+ }
+ }
+ } else { /* No video pad */
+ GstCaps *allowed_caps, *video_caps = NULL;
+ GstPad *video_peer;
+ gboolean can_intersect = FALSE;
+
+ video_peer = gst_pad_get_peer (self->video_sinkpad);
+ if (video_peer) {
+ video_caps = gst_pad_get_negotiated_caps (video_peer);
+ if (!video_caps) {
+ video_caps = gst_pad_get_caps_reffed (video_peer);
+ }
+ gst_object_unref (video_peer);
+ }
+
+ sink = _get_video_pad (element);
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get video sink from renderer");
+ continue;
+ }
+ allowed_caps = gst_pad_get_caps_reffed (sink);
gst_object_unref (sink);
- continue;
- }
- gst_object_unref (src);
- gst_object_unref (sink);
- /* Set src ghostpad target */
- src = gst_element_get_static_pad (self->post_colorspace, "src");
- if (G_UNLIKELY (!src)) {
- GST_WARNING_OBJECT (self, "Can't get src pad from ffmpegcolorspace");
- continue;
+ if (allowed_caps && video_caps)
+ can_intersect = gst_caps_can_intersect (allowed_caps, video_caps);
+
+ if (allowed_caps)
+ gst_caps_unref (allowed_caps);
+
+ if (video_caps)
+ gst_caps_unref (video_caps);
+
+ if (G_UNLIKELY (!can_intersect)) {
+ GST_WARNING_OBJECT (self, "Renderer with custom caps is not "
+ "compatible with video stream");
+ continue;
+ }
+
+ src = gst_element_get_static_pad (element, "src");
+ if (G_UNLIKELY (!src)) {
+ GST_WARNING_OBJECT (self, "Can't get src pad from renderer");
+ continue;
+ }
}
if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
+ GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
continue;
}
}
/* Set the sink ghostpad targets */
- sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
- if (G_UNLIKELY (!sink)) {
- GST_WARNING_OBJECT (self, "Can't get sink pad from ffmpegcolorspace");
- continue;
+ if (self->pre_colorspace) {
+ sink = gst_element_get_static_pad (self->pre_colorspace, "sink");
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from " COLORSPACE);
+ continue;
+ }
+ } else {
+ sink = _get_video_pad (element);
+ if (G_UNLIKELY (!sink)) {
+ GST_WARNING_OBJECT (self, "Can't get sink pad from %" GST_PTR_FORMAT,
+ element);
+ continue;
+ }
}
if (G_UNLIKELY (!gst_ghost_pad_set_target (GST_GHOST_PAD_CAST
} else {
GST_DEBUG_OBJECT (self, "Everything worked, unblocking pads");
gst_pad_set_blocked_async_full (self->video_block_pad, FALSE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->subtitle_block_pad, FALSE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
do_async_done (self);
}
GST_SUBTITLE_OVERLAY_LOCK (self);
/* Set the internal pads to blocking */
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
GST_DEBUG_OBJECT (self, "State change PAUSED->READY");
+
+ /* Set the pads back to blocking state */
+ GST_SUBTITLE_OVERLAY_LOCK (self);
+ gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
+ _pad_blocked_cb, self, NULL);
+ gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
+ _pad_blocked_cb, self, NULL);
+ GST_SUBTITLE_OVERLAY_UNLOCK (self);
+
do_async_done (self);
break;
if (self->video_block_pad) {
pad = self->video_block_pad;
gst_pad_set_blocked_async_full (pad, FALSE, _pad_blocked_cb,
- gst_object_ref (self), (GDestroyNotify) gst_object_unref);
+ self, NULL);
}
if (self->subtitle_block_pad) {
pad = self->subtitle_block_pad;
gst_pad_set_blocked_async_full (pad, FALSE, _pad_blocked_cb,
- gst_object_ref (self), (GDestroyNotify) gst_object_unref);
+ self, NULL);
}
/* Remove elements */
self->subtitle_error = TRUE;
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
}
}
g_object_set (self->renderer, self->silent_property, silent, NULL);
} else {
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
}
GST_SUBTITLE_OVERLAY_UNLOCK (self);
break;
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&srctemplate));
+ gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&video_sinktemplate));
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&subtitle_sinktemplate));
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &video_sinktemplate);
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &subtitle_sinktemplate);
gst_element_class_set_details_simple (gstelement_class, "Subtitle Overlay",
"Video/Overlay/Subtitle",
return GST_FLOW_ERROR;
}
- ret = self->src_proxy_chain (proxypad, buffer);
+ ret = gst_proxy_pad_chain_default (proxypad, buffer);
if (IS_VIDEO_CHAIN_IGNORE_ERROR (ret)) {
GST_ERROR_OBJECT (self, "Downstream chain error: %s",
event = NULL;
ret = TRUE;
} else {
- ret = self->src_proxy_event (proxypad, event);
+ ret = gst_proxy_pad_event_default (proxypad, event);
event = NULL;
}
gst_subtitle_overlay_video_sink_setcaps (GstPad * pad, GstCaps * caps)
{
GstSubtitleOverlay *self = GST_SUBTITLE_OVERLAY (gst_pad_get_parent (pad));
+ GstPad *target;
gboolean ret = TRUE;
gint fps_n, fps_d;
GST_DEBUG_OBJECT (pad, "Setting caps: %" GST_PTR_FORMAT, caps);
+ target = gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (self->video_sinkpad));
+
+ GST_SUBTITLE_OVERLAY_LOCK (self);
+
+ if (!target || !gst_pad_accept_caps (target, caps)) {
+ GST_DEBUG_OBJECT (pad, "Target did not accept caps -- reconfiguring");
+
+ gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
+ _pad_blocked_cb, self, NULL);
+
+ gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
+ _pad_blocked_cb, self, NULL);
+ }
+
if (!gst_video_parse_caps_framerate (caps, &fps_n, &fps_d)) {
GST_ERROR_OBJECT (pad, "Failed to parse framerate from caps");
ret = FALSE;
+ GST_SUBTITLE_OVERLAY_UNLOCK (self);
goto out;
}
- GST_SUBTITLE_OVERLAY_LOCK (self);
if (self->fps_n != fps_n || self->fps_d != fps_d) {
GST_DEBUG_OBJECT (self, "New video fps: %d/%d", fps_n, fps_d);
self->fps_n = fps_n;
}
GST_SUBTITLE_OVERLAY_UNLOCK (self);
- ret = self->video_sink_setcaps (pad, caps);
+ ret = gst_ghost_pad_setcaps_default (pad, caps);
out:
+ if (target)
+ gst_object_unref (target);
gst_object_unref (self);
return ret;
}
self->fps_n = self->fps_d = 0;
}
- ret = self->video_sink_event (pad, gst_event_ref (event));
+ ret = gst_proxy_pad_event_default (pad, gst_event_ref (event));
if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
gboolean update;
if (format != GST_FORMAT_TIME) {
GST_ERROR_OBJECT (pad, "Newsegment event in non-time format: %s",
gst_format_get_name (format));
- gst_object_unref (event);
+ gst_event_unref (event);
gst_object_unref (self);
return FALSE;
}
gst_subtitle_overlay_video_sink_chain (GstPad * pad, GstBuffer * buffer)
{
GstSubtitleOverlay *self = GST_SUBTITLE_OVERLAY (GST_PAD_PARENT (pad));
- GstFlowReturn ret = self->video_sink_chain (pad, buffer);
+ GstFlowReturn ret = gst_proxy_pad_chain_default (pad, buffer);
if (G_UNLIKELY (self->downstream_chain_error) || self->passthrough_identity) {
return ret;
GST_SUBTITLE_OVERLAY_LOCK (self);
self->subtitle_error = TRUE;
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
return GST_FLOW_OK;
gst_buffer_unref (buffer);
return GST_FLOW_OK;
} else {
- GstFlowReturn ret = self->subtitle_sink_chain (pad, buffer);
+ GstFlowReturn ret = gst_proxy_pad_chain_default (pad, buffer);
if (IS_SUBTITLE_CHAIN_IGNORE_ERROR (ret)) {
GST_DEBUG_OBJECT (self, "Subtitle chain error: %s",
GST_SUBTITLE_OVERLAY_LOCK (self);
self->subtitle_error = TRUE;
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
return GST_FLOW_OK;
gst_subtitle_overlay_subtitle_sink_acceptcaps (GstPad * pad, GstCaps * caps)
{
GstCaps *othercaps = gst_subtitle_overlay_subtitle_sink_getcaps (pad);
- gboolean ret = gst_caps_can_intersect (caps, othercaps);
+ gboolean ret = gst_caps_is_subset (caps, othercaps);
gst_caps_unref (othercaps);
if (target && gst_pad_accept_caps (target, caps)) {
GST_DEBUG_OBJECT (pad, "Target accepts caps");
- ret = self->subtitle_sink_setcaps (pad, caps);
+ ret = gst_ghost_pad_setcaps_default (pad, caps);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
goto out;
}
self->subtitle_error = FALSE;
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
out:
self->subtitle_error = FALSE;
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
gst_caps_unref (caps);
}
- ret = self->subtitle_sink_link (pad, peer);
+ ret = gst_ghost_pad_link_default (pad, peer);
gst_object_unref (self);
return ret;
GST_DEBUG_OBJECT (pad, "Pad unlinking");
gst_caps_replace (&self->subcaps, NULL);
- self->subtitle_sink_unlink (pad);
+ gst_ghost_pad_unlink_default (pad);
GST_SUBTITLE_OVERLAY_LOCK (self);
self->subtitle_error = FALSE;
if (self->subtitle_block_pad)
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
if (self->video_block_pad)
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
gst_object_unref (self);
self->subtitle_error = FALSE;
if (self->subtitle_block_pad)
gst_pad_set_blocked_async_full (self->subtitle_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
if (self->video_block_pad)
gst_pad_set_blocked_async_full (self->video_block_pad, TRUE,
- _pad_blocked_cb, gst_object_ref (self),
- (GDestroyNotify) gst_object_unref);
+ _pad_blocked_cb, self, NULL);
GST_SUBTITLE_OVERLAY_UNLOCK (self);
gst_event_unref (event);
break;
}
- ret = self->subtitle_sink_event (pad, gst_event_ref (event));
+ ret = gst_proxy_pad_event_default (pad, gst_event_ref (event));
if (GST_EVENT_TYPE (event) == GST_EVENT_NEWSEGMENT) {
gboolean update;
GstSubtitleOverlayClass * klass)
{
GstPadTemplate *templ;
- GstIterator *it;
GstPad *proxypad = NULL;
self->lock = g_mutex_new ();
templ = gst_static_pad_template_get (&srctemplate);
self->srcpad = gst_ghost_pad_new_no_target_from_template ("src", templ);
- it = gst_pad_iterate_internal_links (self->srcpad);
- if (G_UNLIKELY (!it
- || gst_iterator_next (it, (gpointer) & proxypad) != GST_ITERATOR_OK
- || proxypad == NULL)) {
- GST_ERROR_OBJECT (self, "Failed to get proxypad of srcpad");
- } else {
- self->src_proxy_event = GST_PAD_EVENTFUNC (proxypad);
- gst_pad_set_event_function (proxypad,
- GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_event));
- self->src_proxy_chain = GST_PAD_CHAINFUNC (proxypad);
- gst_pad_set_chain_function (proxypad,
- GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_chain));
- gst_object_unref (proxypad);
- }
- if (it)
- gst_iterator_free (it);
+ gst_object_unref (templ);
+
+ proxypad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD (self->srcpad)));
+ gst_pad_set_event_function (proxypad,
+ GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_event));
+ gst_pad_set_chain_function (proxypad,
+ GST_DEBUG_FUNCPTR (gst_subtitle_overlay_src_proxy_chain));
+ gst_object_unref (proxypad);
gst_element_add_pad (GST_ELEMENT_CAST (self), self->srcpad);
templ = gst_static_pad_template_get (&video_sinktemplate);
self->video_sinkpad =
gst_ghost_pad_new_no_target_from_template ("video_sink", templ);
- self->video_sink_event = GST_PAD_EVENTFUNC (self->video_sinkpad);
+ gst_object_unref (templ);
gst_pad_set_event_function (self->video_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_video_sink_event));
- self->video_sink_setcaps = GST_PAD_SETCAPSFUNC (self->video_sinkpad);
gst_pad_set_setcaps_function (self->video_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_video_sink_setcaps));
- self->video_sink_chain = GST_PAD_CHAINFUNC (self->video_sinkpad);
gst_pad_set_chain_function (self->video_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_video_sink_chain));
- proxypad = NULL;
- it = gst_pad_iterate_internal_links (self->video_sinkpad);
- if (G_UNLIKELY (!it
- || gst_iterator_next (it, (gpointer) & proxypad) != GST_ITERATOR_OK
- || proxypad == NULL)) {
- GST_ERROR_OBJECT (self,
- "Failed to get internally linked pad from video sinkpad");
- }
- if (it)
- gst_iterator_free (it);
+ proxypad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (self->video_sinkpad)));
self->video_block_pad = proxypad;
+ gst_object_unref (proxypad);
gst_element_add_pad (GST_ELEMENT_CAST (self), self->video_sinkpad);
templ = gst_static_pad_template_get (&subtitle_sinktemplate);
self->subtitle_sinkpad =
gst_ghost_pad_new_no_target_from_template ("subtitle_sink", templ);
- self->subtitle_sink_link = GST_PAD_LINKFUNC (self->subtitle_sinkpad);
+ gst_object_unref (templ);
gst_pad_set_link_function (self->subtitle_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_link));
- self->subtitle_sink_unlink = GST_PAD_UNLINKFUNC (self->subtitle_sinkpad);
gst_pad_set_unlink_function (self->subtitle_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_unlink));
- self->subtitle_sink_event = GST_PAD_EVENTFUNC (self->subtitle_sinkpad);
gst_pad_set_event_function (self->subtitle_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_event));
- self->subtitle_sink_setcaps = GST_PAD_SETCAPSFUNC (self->subtitle_sinkpad);
gst_pad_set_setcaps_function (self->subtitle_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_setcaps));
- self->subtitle_sink_chain = GST_PAD_CHAINFUNC (self->subtitle_sinkpad);
gst_pad_set_chain_function (self->subtitle_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_chain));
gst_pad_set_getcaps_function (self->subtitle_sinkpad,
GST_DEBUG_FUNCPTR (gst_subtitle_overlay_subtitle_sink_acceptcaps));
gst_pad_set_bufferalloc_function (self->subtitle_sinkpad, NULL);
- proxypad = NULL;
- it = gst_pad_iterate_internal_links (self->subtitle_sinkpad);
- if (G_UNLIKELY (!it
- || gst_iterator_next (it, (gpointer) & proxypad) != GST_ITERATOR_OK
- || proxypad == NULL)) {
- GST_ERROR_OBJECT (self,
- "Failed to get internally linked pad from subtitle sinkpad");
- }
- if (it)
- gst_iterator_free (it);
+ proxypad =
+ GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD
+ (self->subtitle_sinkpad)));
self->subtitle_block_pad = proxypad;
+ gst_object_unref (proxypad);
gst_element_add_pad (GST_ELEMENT_CAST (self), self->subtitle_sinkpad);
gboolean do_async;
GstPad *srcpad;
- GstPadEventFunction src_proxy_event;
- GstPadChainFunction src_proxy_chain;
gboolean downstream_chain_error;
GstPad *video_sinkpad;
GstPad *video_block_pad;
- GstPadSetCapsFunction video_sink_setcaps;
- GstPadEventFunction video_sink_event;
- GstPadChainFunction video_sink_chain;
gboolean video_sink_blocked;
GstSegment video_segment;
gint fps_n, fps_d;
GstPad *subtitle_sinkpad;
GstPad *subtitle_block_pad;
- GstPadLinkFunction subtitle_sink_link;
- GstPadUnlinkFunction subtitle_sink_unlink;
- GstPadEventFunction subtitle_sink_event;
- GstPadChainFunction subtitle_sink_chain;
- GstPadSetCapsFunction subtitle_sink_setcaps;
gboolean subtitle_sink_blocked;
GstSegment subtitle_segment;
gboolean subtitle_flush;
#include "gstplay-enum.h"
#include "gstrawcaps.h"
+#include "gst/glib-compat-private.h"
+
#define GST_TYPE_URI_DECODE_BIN \
(gst_uri_decode_bin_get_type())
#define GST_URI_DECODE_BIN(obj) \
#define GST_URI_DECODE_BIN_LOCK(dec) (g_mutex_lock(GST_URI_DECODE_BIN_GET_LOCK(dec)))
#define GST_URI_DECODE_BIN_UNLOCK(dec) (g_mutex_unlock(GST_URI_DECODE_BIN_GET_LOCK(dec)))
+typedef struct _GstURIDecodeBinStream
+{
+ gulong probe_id;
+ guint bitrate;
+} GstURIDecodeBinStream;
+
/**
* GstURIDecodeBin
*
guint have_type_id; /* have-type signal id from typefind */
GSList *decodebins;
GSList *pending_decodebins;
- GSList *srcpads;
+ GHashTable *streams;
gint numpads;
/* for dynamic sources */
guint src_nmp_sig_id; /* no-more-pads signal id */
gint pending;
- gboolean async_pending; /* async-start has been emited */
+ gboolean async_pending; /* async-start has been emitted */
gboolean expose_allstreams; /* Whether to expose unknow type streams or not */
GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
GstPad * pad, GstCaps * caps, GstElementFactory * factory);
- /* emited when all data is decoded */
+ /* emitted when all data is decoded */
void (*drained) (GstElement * element);
};
{
GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&srctemplate));
+ gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
gst_element_class_set_details_simple (gstelement_class,
"URI Decoder", "Generic/Bin/Decoder",
"Autoplug and decode an URI to raw media",
* @pad: The #GstPad.
* @caps: The #GstCaps found.
*
- * This function is emited when an array of possible factories for @caps on
+ * This function is emitted when an array of possible factories for @caps on
* @pad is needed. Uridecodebin will by default return an array with all
* compatible factories, sorted by rank.
*
* @factories: A #GValueArray of possible #GstElementFactory to use.
*
* Once decodebin2 has found the possible #GstElementFactory objects to try
- * for @caps on @pad, this signal is emited. The purpose of the signal is for
+ * for @caps on @pad, this signal is emitted. The purpose of the signal is for
* the application to perform additional sorting or filtering on the element
* factory array.
*
*
* This signal is emitted once uridecodebin has found all the possible
* #GstElementFactory that can be used to handle the given @caps. For each of
- * those factories, this signal is emited.
+ * those factories, this signal is emitted.
*
* The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
* value indicating what decodebin2 should do next.
no_more_pads_full (element, FALSE, bin);
}
-/* Called by the signal handlers when a decodebin has
+static void
+configure_stream_buffering (GstURIDecodeBin * decoder)
+{
+ GstElement *queue = NULL;
+ GHashTableIter iter;
+ gpointer key, value;
+ gint bitrate = 0;
+
+ /* automatic configuration enabled ? */
+ if (decoder->buffer_size != -1)
+ return;
+
+ GST_URI_DECODE_BIN_LOCK (decoder);
+ if (decoder->queue)
+ queue = gst_object_ref (decoder->queue);
+
+ g_hash_table_iter_init (&iter, decoder->streams);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ GstURIDecodeBinStream *stream = value;
+
+ if (stream->bitrate && bitrate >= 0)
+ bitrate += stream->bitrate;
+ else
+ bitrate = -1;
+ }
+ GST_URI_DECODE_BIN_UNLOCK (decoder);
+
+ GST_DEBUG_OBJECT (decoder, "overall bitrate %d", bitrate);
+ if (!queue)
+ return;
+
+ if (bitrate > 0) {
+ guint64 time;
+ guint bytes;
+
+ /* all streams have a bitrate;
+ * configure queue size based on queue duration using combined bitrate */
+ g_object_get (queue, "max-size-time", &time, NULL);
+ GST_DEBUG_OBJECT (decoder, "queue buffering time %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (time));
+ if (time > 0) {
+ bytes = gst_util_uint64_scale (time, bitrate, 8 * GST_SECOND);
+ GST_DEBUG_OBJECT (decoder, "corresponds to buffer size %d", bytes);
+ g_object_set (queue, "max-size-bytes", bytes, NULL);
+ }
+ }
+
+ gst_object_unref (queue);
+}
+
+static gboolean
+decoded_pad_event_probe (GstPad * pad, GstEvent * event,
+ GstURIDecodeBin * decoder)
+{
+ GST_LOG_OBJECT (pad, "%s, decoder %p", GST_EVENT_TYPE_NAME (event), decoder);
+
+ /* look for a bitrate tag */
+ switch (GST_EVENT_TYPE (event)) {
+ case GST_EVENT_TAG:
+ {
+ GstTagList *list;
+ guint bitrate = 0;
+ GstURIDecodeBinStream *stream;
+
+ gst_event_parse_tag (event, &list);
+ if (!gst_tag_list_get_uint_index (list, GST_TAG_NOMINAL_BITRATE, 0,
+ &bitrate)) {
+ gst_tag_list_get_uint_index (list, GST_TAG_BITRATE, 0, &bitrate);
+ }
+ GST_DEBUG_OBJECT (pad, "found bitrate %u", bitrate);
+ if (bitrate) {
+ GST_URI_DECODE_BIN_LOCK (decoder);
+ stream = g_hash_table_lookup (decoder->streams, pad);
+ GST_URI_DECODE_BIN_UNLOCK (decoder);
+ if (stream) {
+ stream->bitrate = bitrate;
+ /* no longer need this probe now */
+ gst_pad_remove_event_probe (pad, stream->probe_id);
+ /* configure buffer if possible */
+ configure_stream_buffering (decoder);
+ }
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ /* never drop */
+ return TRUE;
+}
+
+/* Called by the signal handlers when a decodebin has
* found a new raw pad.
*/
static void
GstPad *newpad;
GstPadTemplate *pad_tmpl;
gchar *padname;
+ GstURIDecodeBinStream *stream;
GST_DEBUG_OBJECT (element, "new decoded pad, name: <%s>. Last: %d",
GST_PAD_NAME (pad), last);
/* store ref to the ghostpad so we can remove it */
g_object_set_data (G_OBJECT (pad), "uridecodebin.ghostpad", newpad);
+ /* add event probe to monitor tags */
+ stream = g_slice_alloc0 (sizeof (GstURIDecodeBinStream));
+ stream->probe_id =
+ gst_pad_add_event_probe (pad, G_CALLBACK (decoded_pad_event_probe),
+ decoder);
+ GST_URI_DECODE_BIN_LOCK (decoder);
+ g_hash_table_insert (decoder->streams, pad, stream);
+ GST_URI_DECODE_BIN_UNLOCK (decoder);
+
gst_pad_set_active (newpad, TRUE);
gst_element_add_pad (GST_ELEMENT_CAST (decoder), newpad);
}
-
static gboolean
source_pad_event_probe (GstPad * pad, GstEvent * event,
GstURIDecodeBin * decoder)
gst_iterator_resync (pads_iter);
break;
case GST_ITERATOR_OK:
- /* we now officially have an ouput pad */
+ /* we now officially have an output pad */
*have_out = TRUE;
/* if FALSE, this pad has no caps and we continue with the next pad. */
}
static void
-remove_pads (GstURIDecodeBin * bin)
-{
- GSList *walk;
-
- for (walk = bin->srcpads; walk; walk = g_slist_next (walk)) {
- GstPad *pad = GST_PAD_CAST (walk->data);
-
- GST_DEBUG_OBJECT (bin, "removing old pad");
- gst_pad_set_active (pad, FALSE);
- gst_element_remove_pad (GST_ELEMENT_CAST (bin), pad);
- }
- g_slist_free (bin->srcpads);
- bin->srcpads = NULL;
-}
-
-static void
proxy_unknown_type_signal (GstElement * element, GstPad * pad, GstCaps * caps,
GstURIDecodeBin * dec)
{
}
}
+static void
+free_stream (gpointer value)
+{
+ g_slice_free (GstURIDecodeBinStream, value);
+}
+
/* remove source and all related elements */
static void
remove_source (GstURIDecodeBin * bin)
gst_bin_remove (GST_BIN_CAST (bin), bin->typefind);
bin->typefind = NULL;
}
+ if (bin->streams) {
+ g_hash_table_destroy (bin->streams);
+ bin->streams = NULL;
+ }
/* Don't loose the SOURCE flag */
GST_OBJECT_FLAG_SET (bin, GST_ELEMENT_IS_SOURCE);
}
/* remove the old decoders now, if any */
remove_decoders (decoder, FALSE);
+ /* stream admin setup */
+ decoder->streams = g_hash_table_new_full (NULL, NULL, NULL, free_stream);
+
/* see if the source element emits raw audio/video all by itself,
* if so, we can create streams for the pads and be done with it.
* Also check that is has source pads, if not, we assume it will
case GST_STATE_CHANGE_PAUSED_TO_READY:
GST_DEBUG ("paused to ready");
remove_decoders (decoder, FALSE);
- remove_pads (decoder);
remove_source (decoder);
do_async_done (decoder);
break;
case GST_STATE_CHANGE_READY_TO_NULL:
GST_DEBUG ("ready to null");
remove_decoders (decoder, TRUE);
- remove_pads (decoder);
remove_source (decoder);
break;
default:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstsubparse_la-mpl2parse.lo \
libgstsubparse_la-qttextparse.lo
libgstsubparse_la_OBJECTS = $(am_libgstsubparse_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
libgstsubparse_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstsubparse_la_SOURCES)
DIST_SOURCES = $(am__libgstsubparse_la_SOURCES_DIST)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstsubparse.la: $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_DEPENDENCIES)
+libgstsubparse.la: $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_DEPENDENCIES) $(EXTRA_libgstsubparse_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstsubparse_la_LINK) -rpath $(plugindir) $(libgstsubparse_la_OBJECTS) $(libgstsubparse_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstsubparse_la-gstssaparse.lo: gstssaparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-gstssaparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-gstssaparse.Tpo -c -o libgstsubparse_la-gstssaparse.lo `test -f 'gstssaparse.c' || echo '$(srcdir)/'`gstssaparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-gstssaparse.Tpo $(DEPDIR)/libgstsubparse_la-gstssaparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstssaparse.c' object='libgstsubparse_la-gstssaparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstssaparse.c' object='libgstsubparse_la-gstssaparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstssaparse.lo `test -f 'gstssaparse.c' || echo '$(srcdir)/'`gstssaparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstssaparse.lo `test -f 'gstssaparse.c' || echo '$(srcdir)/'`gstssaparse.c
libgstsubparse_la-gstsubparse.lo: gstsubparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-gstsubparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-gstsubparse.Tpo -c -o libgstsubparse_la-gstsubparse.lo `test -f 'gstsubparse.c' || echo '$(srcdir)/'`gstsubparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-gstsubparse.Tpo $(DEPDIR)/libgstsubparse_la-gstsubparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstsubparse.c' object='libgstsubparse_la-gstsubparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstsubparse.c' object='libgstsubparse_la-gstsubparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstsubparse.lo `test -f 'gstsubparse.c' || echo '$(srcdir)/'`gstsubparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-gstsubparse.lo `test -f 'gstsubparse.c' || echo '$(srcdir)/'`gstsubparse.c
libgstsubparse_la-samiparse.lo: samiparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-samiparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-samiparse.Tpo -c -o libgstsubparse_la-samiparse.lo `test -f 'samiparse.c' || echo '$(srcdir)/'`samiparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-samiparse.Tpo $(DEPDIR)/libgstsubparse_la-samiparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='samiparse.c' object='libgstsubparse_la-samiparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='samiparse.c' object='libgstsubparse_la-samiparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-samiparse.lo `test -f 'samiparse.c' || echo '$(srcdir)/'`samiparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-samiparse.lo `test -f 'samiparse.c' || echo '$(srcdir)/'`samiparse.c
libgstsubparse_la-tmplayerparse.lo: tmplayerparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-tmplayerparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-tmplayerparse.Tpo -c -o libgstsubparse_la-tmplayerparse.lo `test -f 'tmplayerparse.c' || echo '$(srcdir)/'`tmplayerparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-tmplayerparse.Tpo $(DEPDIR)/libgstsubparse_la-tmplayerparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmplayerparse.c' object='libgstsubparse_la-tmplayerparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmplayerparse.c' object='libgstsubparse_la-tmplayerparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-tmplayerparse.lo `test -f 'tmplayerparse.c' || echo '$(srcdir)/'`tmplayerparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-tmplayerparse.lo `test -f 'tmplayerparse.c' || echo '$(srcdir)/'`tmplayerparse.c
libgstsubparse_la-mpl2parse.lo: mpl2parse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-mpl2parse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-mpl2parse.Tpo -c -o libgstsubparse_la-mpl2parse.lo `test -f 'mpl2parse.c' || echo '$(srcdir)/'`mpl2parse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-mpl2parse.Tpo $(DEPDIR)/libgstsubparse_la-mpl2parse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mpl2parse.c' object='libgstsubparse_la-mpl2parse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='mpl2parse.c' object='libgstsubparse_la-mpl2parse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-mpl2parse.lo `test -f 'mpl2parse.c' || echo '$(srcdir)/'`mpl2parse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-mpl2parse.lo `test -f 'mpl2parse.c' || echo '$(srcdir)/'`mpl2parse.c
libgstsubparse_la-qttextparse.lo: qttextparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -MT libgstsubparse_la-qttextparse.lo -MD -MP -MF $(DEPDIR)/libgstsubparse_la-qttextparse.Tpo -c -o libgstsubparse_la-qttextparse.lo `test -f 'qttextparse.c' || echo '$(srcdir)/'`qttextparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstsubparse_la-qttextparse.Tpo $(DEPDIR)/libgstsubparse_la-qttextparse.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='qttextparse.c' object='libgstsubparse_la-qttextparse.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='qttextparse.c' object='libgstsubparse_la-qttextparse.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-qttextparse.lo `test -f 'qttextparse.c' || echo '$(srcdir)/'`qttextparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstsubparse_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstsubparse_la_CFLAGS) $(CFLAGS) -c -o libgstsubparse_la-qttextparse.lo `test -f 'qttextparse.c' || echo '$(srcdir)/'`qttextparse.c
mostlyclean-libtool:
-rm -f *.lo
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:
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sink_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, &sink_templ);
+ gst_element_class_add_static_pad_template (element_class, &src_templ);
gst_element_class_set_details_simple (element_class,
"SSA Subtitle Parser", "Codec/Parser/Subtitle",
"Parses SSA subtitle streams",
{
GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sink_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, &sink_templ);
+ gst_element_class_add_static_pad_template (element_class, &src_templ);
gst_element_class_set_details_simple (element_class,
"Subtitle parser", "Codec/Parser/Subtitle",
"Parses subtitle (.sub) files into text streams",
gst_query_set_position (query, GST_FORMAT_TIME,
self->segment.last_stop);
}
+ break;
}
case GST_QUERY_SEEKING:
{
}
gst_query_set_seeking (query, fmt, seekable, seekable ? 0 : -1, -1);
-
break;
}
default:
switch (regtype) {
case GST_SUB_PARSE_REGEX_MDVDSUB:
result =
- (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}", 0, 0, &gerr);
+ (gpointer) g_regex_new ("^\\{[0-9]+\\}\\{[0-9]+\\}",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr);
if (result == NULL) {
g_warning ("Compilation of mdvd regex failed: %s", gerr->message);
g_error_free (gerr);
}
break;
case GST_SUB_PARSE_REGEX_SUBRIP:
- result = (gpointer) g_regex_new ("^([ 0-9]){0,3}[0-9]\\s*(\x0d)?\x0a"
- "[ 0-9][0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]"
- " +--> +([ 0-9])?[0-9]:[ 0-9][0-9]:[ 0-9][0-9][,.][ 0-9]{0,2}[0-9]",
- 0, 0, &gerr);
+ result = (gpointer) g_regex_new ("^ {0,3}[ 0-9]{1,4}\\s*(\x0d)?\x0a"
+ " ?[0-9]{1,2}: ?[0-9]{1,2}: ?[0-9]{1,2}[,.] {0,2}[0-9]{1,3}"
+ " +--> +[0-9]{1,2}: ?[0-9]{1,2}: ?[0-9]{1,2}[,.] {0,2}[0-9]{1,2}",
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr);
if (result == NULL) {
g_warning ("Compilation of subrip regex failed: %s", gerr->message);
g_error_free (gerr);
break;
case GST_SUB_PARSE_REGEX_DKS:
result = (gpointer) g_regex_new ("^\\[[0-9]+:[0-9]+:[0-9]+\\].*",
- 0, 0, &gerr);
+ G_REGEX_RAW | G_REGEX_OPTIMIZE, 0, &gerr);
if (result == NULL) {
g_warning ("Compilation of dks regex failed: %s", gerr->message);
g_error_free (gerr);
}
}
converted_str = gst_convert_to_utf8 (str, 128, enc, &tmp, &err);
- if (converted_str == NULL) {
- GST_DEBUG ("Charset conversion failed: %s", err->message);
- g_error_free (err);
- g_free (str);
- return;
- } else {
+ if (converted_str != NULL) {
g_free (str);
str = converted_str;
}
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
nodist_libgsttcp_la_OBJECTS = $(am__objects_1)
libgsttcp_la_OBJECTS = $(am_libgsttcp_la_OBJECTS) \
$(nodist_libgsttcp_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
libgsttcp_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgsttcp_la_SOURCES) $(nodist_libgsttcp_la_SOURCES)
DIST_SOURCES = $(libgsttcp_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgsttcp.la: $(libgsttcp_la_OBJECTS) $(libgsttcp_la_DEPENDENCIES)
+libgsttcp.la: $(libgsttcp_la_OBJECTS) $(libgsttcp_la_DEPENDENCIES) $(EXTRA_libgsttcp_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgsttcp_la_LINK) -rpath $(plugindir) $(libgsttcp_la_OBJECTS) $(libgsttcp_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgsttcp_la-gsttcpplugin.lo: gsttcpplugin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpplugin.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpplugin.Tpo -c -o libgsttcp_la-gsttcpplugin.lo `test -f 'gsttcpplugin.c' || echo '$(srcdir)/'`gsttcpplugin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpplugin.Tpo $(DEPDIR)/libgsttcp_la-gsttcpplugin.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcpplugin.c' object='libgsttcp_la-gsttcpplugin.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcpplugin.c' object='libgsttcp_la-gsttcpplugin.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpplugin.lo `test -f 'gsttcpplugin.c' || echo '$(srcdir)/'`gsttcpplugin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpplugin.lo `test -f 'gsttcpplugin.c' || echo '$(srcdir)/'`gsttcpplugin.c
libgsttcp_la-gsttcp.lo: gsttcp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp.Tpo -c -o libgsttcp_la-gsttcp.lo `test -f 'gsttcp.c' || echo '$(srcdir)/'`gsttcp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp.Tpo $(DEPDIR)/libgsttcp_la-gsttcp.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcp.c' object='libgsttcp_la-gsttcp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcp.c' object='libgsttcp_la-gsttcp.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp.lo `test -f 'gsttcp.c' || echo '$(srcdir)/'`gsttcp.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp.lo `test -f 'gsttcp.c' || echo '$(srcdir)/'`gsttcp.c
libgsttcp_la-gstmultifdsink.lo: gstmultifdsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gstmultifdsink.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gstmultifdsink.Tpo -c -o libgsttcp_la-gstmultifdsink.lo `test -f 'gstmultifdsink.c' || echo '$(srcdir)/'`gstmultifdsink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gstmultifdsink.Tpo $(DEPDIR)/libgsttcp_la-gstmultifdsink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmultifdsink.c' object='libgsttcp_la-gstmultifdsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstmultifdsink.c' object='libgsttcp_la-gstmultifdsink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gstmultifdsink.lo `test -f 'gstmultifdsink.c' || echo '$(srcdir)/'`gstmultifdsink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gstmultifdsink.lo `test -f 'gstmultifdsink.c' || echo '$(srcdir)/'`gstmultifdsink.c
libgsttcp_la-gsttcpclientsrc.lo: gsttcpclientsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpclientsrc.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Tpo -c -o libgsttcp_la-gsttcpclientsrc.lo `test -f 'gsttcpclientsrc.c' || echo '$(srcdir)/'`gsttcpclientsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Tpo $(DEPDIR)/libgsttcp_la-gsttcpclientsrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcpclientsrc.c' object='libgsttcp_la-gsttcpclientsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcpclientsrc.c' object='libgsttcp_la-gsttcpclientsrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsrc.lo `test -f 'gsttcpclientsrc.c' || echo '$(srcdir)/'`gsttcpclientsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsrc.lo `test -f 'gsttcpclientsrc.c' || echo '$(srcdir)/'`gsttcpclientsrc.c
libgsttcp_la-gsttcpclientsink.lo: gsttcpclientsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpclientsink.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpclientsink.Tpo -c -o libgsttcp_la-gsttcpclientsink.lo `test -f 'gsttcpclientsink.c' || echo '$(srcdir)/'`gsttcpclientsink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpclientsink.Tpo $(DEPDIR)/libgsttcp_la-gsttcpclientsink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcpclientsink.c' object='libgsttcp_la-gsttcpclientsink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcpclientsink.c' object='libgsttcp_la-gsttcpclientsink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsink.lo `test -f 'gsttcpclientsink.c' || echo '$(srcdir)/'`gsttcpclientsink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpclientsink.lo `test -f 'gsttcpclientsink.c' || echo '$(srcdir)/'`gsttcpclientsink.c
libgsttcp_la-gsttcpserversrc.lo: gsttcpserversrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpserversrc.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpserversrc.Tpo -c -o libgsttcp_la-gsttcpserversrc.lo `test -f 'gsttcpserversrc.c' || echo '$(srcdir)/'`gsttcpserversrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpserversrc.Tpo $(DEPDIR)/libgsttcp_la-gsttcpserversrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcpserversrc.c' object='libgsttcp_la-gsttcpserversrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcpserversrc.c' object='libgsttcp_la-gsttcpserversrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversrc.lo `test -f 'gsttcpserversrc.c' || echo '$(srcdir)/'`gsttcpserversrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversrc.lo `test -f 'gsttcpserversrc.c' || echo '$(srcdir)/'`gsttcpserversrc.c
libgsttcp_la-gsttcpserversink.lo: gsttcpserversink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcpserversink.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcpserversink.Tpo -c -o libgsttcp_la-gsttcpserversink.lo `test -f 'gsttcpserversink.c' || echo '$(srcdir)/'`gsttcpserversink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcpserversink.Tpo $(DEPDIR)/libgsttcp_la-gsttcpserversink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcpserversink.c' object='libgsttcp_la-gsttcpserversink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcpserversink.c' object='libgsttcp_la-gsttcpserversink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversink.lo `test -f 'gsttcpserversink.c' || echo '$(srcdir)/'`gsttcpserversink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcpserversink.lo `test -f 'gsttcpserversink.c' || echo '$(srcdir)/'`gsttcpserversink.c
libgsttcp_la-gsttcp-enumtypes.lo: gsttcp-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp-enumtypes.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Tpo -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Tpo $(DEPDIR)/libgsttcp_la-gsttcp-enumtypes.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcp-enumtypes.c' object='libgsttcp_la-gsttcp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcp-enumtypes.c' object='libgsttcp_la-gsttcp-enumtypes.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-enumtypes.lo `test -f 'gsttcp-enumtypes.c' || echo '$(srcdir)/'`gsttcp-enumtypes.c
libgsttcp_la-gsttcp-marshal.lo: gsttcp-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -MT libgsttcp_la-gsttcp-marshal.lo -MD -MP -MF $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Tpo -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Tpo $(DEPDIR)/libgsttcp_la-gsttcp-marshal.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttcp-marshal.c' object='libgsttcp_la-gsttcp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttcp-marshal.c' object='libgsttcp_la-gsttcp-marshal.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttcp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttcp_la_CFLAGS) $(CFLAGS) -c -o libgsttcp_la-gsttcp-marshal.lo `test -f 'gsttcp-marshal.c' || echo '$(srcdir)/'`gsttcp-marshal.c
mostlyclean-libtool:
-rm -f *.lo
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:
* prefer a minimum burst size even if it requires not starting with a keyframe.
*
* Multifdsink can be instructed to keep at least a minimum amount of data
- * expressed in time or byte units in its internal queues with the the
+ * expressed in time or byte units in its internal queues with the
* #GstMultiFdSink:time-min and #GstMultiFdSink:bytes-min properties respectively.
* These properties are useful if the application adds clients with the
* #GstMultiFdSink::add-full signal to make sure that a burst connect can
#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 <gst/gst-i18n-plugin.h>
#include <sys/ioctl.h>
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sinktemplate));
+ gst_element_class_add_static_pad_template (element_class, &sinktemplate);
gst_element_class_set_details_simple (element_class,
"Multi filedescriptor sink", "Sink/Network",
}
}
-/* "add" signal implemntation */
+/* "add" signal implementation */
void
gst_multi_fd_sink_add (GstMultiFdSink * sink, int fd)
{
*
* Special care is taken of clients that were waiting for a new buffer (they
* had a position of -1) because they can proceed after adding this new buffer.
- * This is done by adding the client back into the write fd_set and signalling
+ * This is done by adding the client back into the write fd_set and signaling
* the select thread that the fd_set changed.
*/
static void
GST_CLOCK_TIME_NONE);
/* Handle the special case in which the sink is not receiving more buffers
- * and will not disconnect innactive client in the streaming thread. */
+ * and will not disconnect inactive client in the streaming thread. */
if (G_UNLIKELY (result == 0)) {
GstClockTime now;
GTimeVal nowtv;
}
this->running = TRUE;
+
+#if !GLIB_CHECK_VERSION (2, 31, 0)
this->thread = g_thread_create ((GThreadFunc) gst_multi_fd_sink_thread,
this, TRUE, NULL);
+#else
+ this->thread = g_thread_new ("multifdsink",
+ (GThreadFunc) gst_multi_fd_sink_thread, this);
+#endif
GST_OBJECT_FLAG_SET (this, GST_MULTI_FD_SINK_OPEN);
bytes_written += wrote;
}
- GST_LOG ("wrote %" G_GSIZE_FORMAT " bytes succesfully", bytes_written);
+ GST_LOG ("wrote %" G_GSIZE_FORMAT " bytes successfully", bytes_written);
return bytes_written;
}
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&sinktemplate));
+ gst_element_class_add_static_pad_template (element_class, &sinktemplate);
gst_element_class_set_details_simple (element_class,
"TCP client sink", "Sink/Network",
{
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,
"TCP client source", "Source/Network",
{
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,
"TCP server source", "Source/Network",
libgsttypefindfunctions_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgsttypefindfunctions_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
- $(GST_LIBS) $(GIO_LIBS)
+ $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
libgsttypefindfunctions_la_LIBTOOLFLAGS = --tag=disable-static
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgsttypefindfunctions_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_libgsttypefindfunctions_la_OBJECTS = \
libgsttypefindfunctions_la-gsttypefindfunctions.lo
libgsttypefindfunctions_la_OBJECTS = \
$(am_libgsttypefindfunctions_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
libgsttypefindfunctions_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(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 = $(libgsttypefindfunctions_la_SOURCES)
DIST_SOURCES = $(libgsttypefindfunctions_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
libgsttypefindfunctions_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgsttypefindfunctions_la_LIBADD = \
$(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
- $(GST_LIBS) $(GIO_LIBS)
+ $(GST_BASE_LIBS) $(GST_LIBS) $(GIO_LIBS)
libgsttypefindfunctions_la_LIBTOOLFLAGS = --tag=disable-static
all: all-am
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgsttypefindfunctions.la: $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_DEPENDENCIES)
+libgsttypefindfunctions.la: $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_DEPENDENCIES) $(EXTRA_libgsttypefindfunctions_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgsttypefindfunctions_la_LINK) -rpath $(plugindir) $(libgsttypefindfunctions_la_OBJECTS) $(libgsttypefindfunctions_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgsttypefindfunctions_la-gsttypefindfunctions.lo: gsttypefindfunctions.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttypefindfunctions_la_CFLAGS) $(CFLAGS) -MT libgsttypefindfunctions_la-gsttypefindfunctions.lo -MD -MP -MF $(DEPDIR)/libgsttypefindfunctions_la-gsttypefindfunctions.Tpo -c -o libgsttypefindfunctions_la-gsttypefindfunctions.lo `test -f 'gsttypefindfunctions.c' || echo '$(srcdir)/'`gsttypefindfunctions.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttypefindfunctions_la-gsttypefindfunctions.Tpo $(DEPDIR)/libgsttypefindfunctions_la-gsttypefindfunctions.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttypefindfunctions.c' object='libgsttypefindfunctions_la-gsttypefindfunctions.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gsttypefindfunctions.c' object='libgsttypefindfunctions_la-gsttypefindfunctions.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttypefindfunctions_la_CFLAGS) $(CFLAGS) -c -o libgsttypefindfunctions_la-gsttypefindfunctions.lo `test -f 'gsttypefindfunctions.c' || echo '$(srcdir)/'`gsttypefindfunctions.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttypefindfunctions_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttypefindfunctions_la_CFLAGS) $(CFLAGS) -c -o libgsttypefindfunctions_la-gsttypefindfunctions.lo `test -f 'gsttypefindfunctions.c' || echo '$(srcdir)/'`gsttypefindfunctions.c
mostlyclean-libtool:
-rm -f *.lo
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:
#include <ctype.h>
#include <gst/pbutils/pbutils.h>
+#include <gst/base/gstbytereader.h>
GST_DEBUG_CATEGORY_STATIC (type_find_debug);
#define GST_CAT_DEFAULT type_find_debug
+/* so our code stays ready for 0.11 */
+#define gst_type_find_peek(tf,off,len) \
+ ((const guint8 *)gst_type_find_peek((tf),(off),(len)))
+
/* DataScanCtx: helper for typefind functions that scan through data
* step-by-step, to avoid doing a peek at each and every offset */
utf8_type_find_have_valid_utf8_at_offset (GstTypeFind * tf, guint64 offset,
GstTypeFindProbability * prob)
{
- guint8 *data;
+ const guint8 *data;
/* randomly decided values */
guint min_size = 16; /* minimum size */
gst_type_find_suggest (tf, (start_prob + mid_prob) / 2, UTF8_CAPS);
}
+/*** text/utf-16 and text/utf-32} ***/
+/* While UTF-8 is unicode too, using text/plain for UTF-16 and UTF-32
+ is going to break stuff. */
+
+typedef struct
+{
+ size_t bomlen;
+ const char *const bom;
+ gboolean (*checker) (const guint8 *, gint, gint);
+ int boost;
+ int endianness;
+} GstUnicodeTester;
+
+static gboolean
+check_utf16 (const guint8 * data, gint len, gint endianness)
+{
+ GstByteReader br;
+ guint16 high, low;
+
+ low = high = 0;
+
+ if (len & 1)
+ return FALSE;
+
+ gst_byte_reader_init (&br, data, len);
+ while (len >= 2) {
+ /* test first for a single 16 bit value in the BMP */
+ if (endianness == G_BIG_ENDIAN)
+ gst_byte_reader_get_uint16_be (&br, &high);
+ else
+ gst_byte_reader_get_uint16_le (&br, &high);
+ if (high >= 0xD800 && high <= 0xDBFF) {
+ /* start of a surrogate pair */
+ if (len < 4)
+ return FALSE;
+ len -= 2;
+ if (endianness == G_BIG_ENDIAN)
+ gst_byte_reader_get_uint16_be (&br, &low);
+ else
+ gst_byte_reader_get_uint16_le (&br, &low);
+ if (low >= 0xDC00 && low <= 0xDFFF) {
+ /* second half of the surrogate pair */
+ } else
+ return FALSE;
+ } else {
+ if (high >= 0xDC00 && high <= 0xDFFF)
+ return FALSE;
+ }
+ len -= 2;
+ }
+ return TRUE;
+}
+
+static gboolean
+check_utf32 (const guint8 * data, gint len, gint endianness)
+{
+ if (len & 3)
+ return FALSE;
+ while (len > 3) {
+ guint32 v;
+ if (endianness == G_BIG_ENDIAN)
+ v = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
+ else
+ v = (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0];
+ if (v >= 0x10FFFF)
+ return FALSE;
+ data += 4;
+ len -= 4;
+ }
+ return TRUE;
+}
+
+static void
+unicode_type_find (GstTypeFind * tf, const GstUnicodeTester * tester,
+ guint n_tester, const char *media_type, gboolean require_bom)
+{
+ size_t n;
+ gint len = 4;
+ const guint8 *data = gst_type_find_peek (tf, 0, len);
+ int prob = -1;
+ const gint max_scan_size = 256 * 1024;
+ int endianness = 0;
+
+ if (!data) {
+ len = 2;
+ data = gst_type_find_peek (tf, 0, len);
+ if (!data)
+ return;
+ }
+
+ /* find a large enough size that works */
+ while (len < max_scan_size) {
+ size_t newlen = len << 1;
+ const guint8 *newdata = gst_type_find_peek (tf, 0, newlen);
+ if (!newdata)
+ break;
+ len = newlen;
+ data = newdata;
+ }
+
+ for (n = 0; n < n_tester; ++n) {
+ int bom_boost = 0, tmpprob;
+ if (len >= tester[n].bomlen) {
+ if (!memcmp (data, tester[n].bom, tester[n].bomlen))
+ bom_boost = tester[n].boost;
+ }
+ if (require_bom && bom_boost == 0)
+ continue;
+ if (!(*tester[n].checker) (data, len, tester[n].endianness))
+ continue;
+ tmpprob = GST_TYPE_FIND_POSSIBLE - 20 + bom_boost;
+ if (tmpprob > prob) {
+ prob = tmpprob;
+ endianness = tester[n].endianness;
+ }
+ }
+
+ if (prob > 0) {
+ GST_DEBUG ("This is valid %s %s", media_type,
+ endianness == G_BIG_ENDIAN ? "be" : "le");
+ gst_type_find_suggest_simple (tf, prob, media_type,
+ "endianness", G_TYPE_INT, endianness, NULL);
+ }
+}
+
+static GstStaticCaps utf16_caps = GST_STATIC_CAPS ("text/utf-16");
+
+#define UTF16_CAPS gst_static_caps_get(&utf16_caps)
+
+static void
+utf16_type_find (GstTypeFind * tf, gpointer unused)
+{
+ static const GstUnicodeTester utf16tester[2] = {
+ {2, "\xff\xfe", check_utf16, 10, G_LITTLE_ENDIAN},
+ {2, "\xfe\xff", check_utf16, 20, G_BIG_ENDIAN},
+ };
+ unicode_type_find (tf, utf16tester, G_N_ELEMENTS (utf16tester),
+ "text/utf-16", TRUE);
+}
+
+static GstStaticCaps utf32_caps = GST_STATIC_CAPS ("text/utf-32");
+
+#define UTF32_CAPS gst_static_caps_get(&utf32_caps)
+
+static void
+utf32_type_find (GstTypeFind * tf, gpointer unused)
+{
+ static const GstUnicodeTester utf32tester[2] = {
+ {4, "\xff\xfe\x00\x00", check_utf32, 10, G_LITTLE_ENDIAN},
+ {4, "\x00\x00\xfe\xff", check_utf32, 20, G_BIG_ENDIAN}
+ };
+ unicode_type_find (tf, utf32tester, G_N_ELEMENTS (utf32tester),
+ "text/utf-32", TRUE);
+}
+
/*** text/uri-list ***/
static GstStaticCaps uri_caps = GST_STATIC_CAPS ("text/uri-list");
static void
uri_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, BUFFER_SIZE);
+ const guint8 *data = gst_type_find_peek (tf, 0, BUFFER_SIZE);
guint pos = 0;
guint offset = 0;
gboolean strict)
{
gboolean got_xmldec;
- guint8 *data;
+ const guint8 *data;
guint offset = 0;
guint pos = 0;
static gboolean
sdp_check_header (GstTypeFind * tf)
{
- guint8 *data;
+ const guint8 *data;
data = gst_type_find_peek (tf, 0, 5);
if (!data)
static void
html_type_find (GstTypeFind * tf, gpointer unused)
{
- gchar *d, *data;
+ const gchar *d, *data;
- data = (gchar *) gst_type_find_peek (tf, 0, 16);
+ data = (const gchar *) gst_type_find_peek (tf, 0, 16);
if (!data)
return;
} else if (xml_check_first_element (tf, "html", 4, FALSE)) {
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, HTML_CAPS);
} else if ((d = memchr (data, '<', 16))) {
- data = (gchar *) gst_type_find_peek (tf, d - data, 6);
+ data = (const gchar *) gst_type_find_peek (tf, d - data, 6);
if (data && g_ascii_strncasecmp (data, "<html>", 6) == 0) {
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, HTML_CAPS);
}
static void
mid_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
/* http://jedi.ks.uiuc.edu/~johns/links/music/midifile.html */
if (data && data[0] == 'M' && data[1] == 'T' && data[2] == 'h'
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MID_CAPS);
}
+#ifdef GST_EXT_MIME_TYPES
/*** audio/xmf ***/
static GstStaticCaps xmf_caps = GST_STATIC_CAPS ("audio/xmf");
}
}
}
-
-
+#endif
/*** audio/mobile-xmf ***/
static void
mxmf_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = NULL;
+ const guint8 *data = NULL;
/* Search FileId "XMF_" 4 bytes */
data = gst_type_find_peek (tf, 0, 4);
}
}
+#ifdef GST_EXT_MIME_TYPES
/*** audio/x-smaf ***/
-
static GstStaticCaps mmf_caps = GST_STATIC_CAPS ("audio/x-smaf");
#define MMF_CAPS gst_static_caps_get(&mmf_caps)
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MMF_CAPS);
}
}
-
+#endif
/*** video/x-fli ***/
static void
flx_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 134);
+ const guint8 *data = gst_type_find_peek (tf, 0, 134);
if (data) {
/* check magic and the frame type of the first frame */
static void
id3v2_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 10);
+ const guint8 *data = gst_type_find_peek (tf, 0, 10);
if (data && memcmp (data, "ID3", 3) == 0 &&
data[3] != 0xFF && data[4] != 0xFF &&
static void
id3v1_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, -128, 3);
+ const guint8 *data = gst_type_find_peek (tf, -128, 3);
if (data && memcmp (data, "TAG", 3) == 0) {
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, ID3_CAPS);
static void
apetag_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data;
+ const guint8 *data;
/* APEv1/2 at start of file */
data = gst_type_find_peek (tf, 0, 8);
static void
tta_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 3);
+ const guint8 *data = gst_type_find_peek (tf, 0, 3);
if (data) {
if (memcmp (data, "TTA", 3) == 0) {
/* bitrate index */
bitrate = header & 0xF;
if (bitrate == 0 && possible_free_framelen == -1) {
- GST_LOG ("Possibly a free format mp3 - signalling");
+ GST_LOG ("Possibly a free format mp3 - signaling");
*may_be_free_format = TRUE;
}
if (bitrate == 15 || (bitrate == 0 && possible_free_framelen == -1))
mp3_type_find_at_offset (GstTypeFind * tf, guint64 start_off,
guint * found_layer, GstTypeFindProbability * found_prob)
{
- guint8 *data = NULL;
- guint8 *data_end = NULL;
+ const guint8 *data = NULL;
+ const guint8 *data_end = NULL;
guint size;
guint64 skipped;
gint last_free_offset = -1;
data_end = data + size;
}
if (*data == 0xFF) {
- guint8 *head_data = NULL;
+ const guint8 *head_data = NULL;
guint layer = 0, bitrate, samplerate, channels;
guint found = 0; /* number of valid headers found */
guint64 offset = skipped;
+ gboolean changed = FALSE;
while (found < GST_MP3_TYPEFIND_TRY_HEADERS) {
guint32 head;
* that this is not a mp3 but just a random bytestream. It could
* be a freaking funky encoded mp3 though. We'll just not count
* this header*/
+ if (prev_layer)
+ changed = TRUE;
prev_layer = layer;
prev_channels = channels;
prev_samplerate = samplerate;
probability = GST_TYPE_FIND_MINIMUM;
if (start_off > 0)
probability /= 2;
+ if (!changed)
+ probability = (probability + GST_TYPE_FIND_MAXIMUM) / 2;
GST_INFO
("audio/mpeg calculated %u = %u * %u / %u * (%u - %"
mp3_type_find (GstTypeFind * tf, gpointer unused)
{
GstTypeFindProbability prob, mid_prob;
- guint8 *data;
+ const guint8 *data;
guint layer, mid_layer;
guint64 length;
static void
musepack_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
GstTypeFindProbability prop = GST_TYPE_FIND_MINIMUM;
gint streamversion = -1;
{
DataScanCtx c = { 0, NULL, 0 };
- /* Search for an ac3 frame; not neccesarily right at the start, but give it
+ /* Search for an ac3 frame; not necessarily right at the start, but give it
* a lower probability if not found right at the start. Check that the
* frame is followed by a second frame at the expected offset.
* We could also check the two ac3 CRCs, but we don't do that right now */
{
DataScanCtx c = { 0, NULL, 0 };
- /* Search for an dts frame; not neccesarily right at the start, but give it
+ /* Search for an dts frame; not necessarily right at the start, but give it
* a lower probability if not found right at the start. Check that the
* frame is followed by a second frame at the expected offset. */
while (c.offset <= DTS_MAX_FRAMESIZE) {
{
guint64 offset;
guint32 blocksize;
- guint8 *data;
+ const guint8 *data;
data = gst_type_find_peek (tf, 0, 32);
if (!data)
static void
postscript_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 3);
+ const guint8 *data = gst_type_find_peek (tf, 0, 3);
if (!data)
return;
static void
multipart_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data;
- guint8 *x;
+ const guint8 *data;
+ const guint8 *x;
#define MULTIPART_MAX_BOUNDARY_OFFSET 16
data = gst_type_find_peek (tf, 0, MULTIPART_MAX_BOUNDARY_OFFSET);
}
static gboolean
-mpeg_sys_is_valid_pes (GstTypeFind * tf, guint8 * data, guint len,
+mpeg_sys_is_valid_pes (GstTypeFind * tf, const guint8 * data, guint len,
guint * pack_size)
{
guint pes_packet_len;
}
static gboolean
-mpeg_sys_is_valid_sys (GstTypeFind * tf, guint8 * data, guint len,
+mpeg_sys_is_valid_sys (GstTypeFind * tf, const guint8 * data, guint len,
guint * pack_size)
{
guint sys_hdr_len;
static void
mpeg_sys_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data, *data0, *first_sync, *end;
+ const guint8 *data, *data0, *first_sync, *end;
gint mpegversion = 0;
guint pack_headers = 0;
guint pes_headers = 0;
{
/* We always enter this function having found at least one header already */
gint found = 1;
- guint8 *data = NULL;
+ const guint8 *data = NULL;
GST_LOG ("looking for mpeg-ts packets of size %u", packet_size);
while (found < GST_MPEGTS_TYPEFIND_MAX_HEADERS) {
/* TS packet sizes to test: normal, DVHS packet size and
* FEC with 16 or 20 byte codes packet size. */
const gint pack_sizes[] = { 188, 192, 204, 208 };
-
- guint8 *data = NULL;
+ const guint8 *data = NULL;
guint size = 0;
guint64 skipped = 0;
nut = c.data[3] & 0x9f; /* forbiden_zero_bit | nal_unit_type */
ref = c.data[3] & 0x60; /* nal_ref_idc */
- /* if forbiden bit is different to 0 won't be h264 */
+ /* if forbidden bit is different to 0 won't be h264 */
if (nut > 0x1f) {
bad++;
break;
static void
aiff_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if (data && memcmp (data, "FORM", 4) == 0) {
data += 8;
static void
svx_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if (data && memcmp (data, "FORM", 4) == 0) {
data += 8;
static void
shn_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if (data && memcmp (data, "ajkg", 4) == 0) {
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, SHN_CAPS);
static void
ape_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if (data && memcmp (data, "MAC ", 4) == 0) {
gst_type_find_suggest (tf, GST_TYPE_FIND_LIKELY + 10, APE_CAPS);
static void
m4a_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 4, 8);
+ const guint8 *data = gst_type_find_peek (tf, 4, 8);
if (data && (memcmp (data, "ftypM4A ", 8) == 0)) {
gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, M4A_CAPS);
const gchar *profile;
guint32 ftyp_size = 0;
gint offset = 0;
- guint8 *data = NULL;
+ const guint8 *data = NULL;
if ((data = gst_type_find_peek (tf, 0, 12)) == NULL) {
return;
static void
jp2_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data;
+ const guint8 *data;
data = gst_type_find_peek (tf, 0, 24);
if (!data)
static void
qt_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data;
+ const guint8 *data;
guint tip = 0;
guint64 offset = 0;
guint64 size;
}
}
if (size == 1) {
- guint8 *sizedata;
+ const guint8 *sizedata;
sizedata = gst_type_find_peek (tf, offset + 8, 8);
if (sizedata == NULL)
static void
mod_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data;
+ const guint8 *data;
/* MOD */
if ((data = gst_type_find_peek (tf, 1080, 4)) != NULL) {
}
/* DSM */
if (memcmp (data, "RIFF", 4) == 0) {
- guint8 *data2 = gst_type_find_peek (tf, 8, 4);
+ const guint8 *data2 = gst_type_find_peek (tf, 8, 4);
if (data2) {
if (memcmp (data2, "DSMF", 4) == 0) {
}
/* FAM */
if (memcmp (data, "FAM\xFE", 4) == 0) {
- guint8 *data2 = gst_type_find_peek (tf, 44, 3);
+ const guint8 *data2 = gst_type_find_peek (tf, 44, 3);
if (data2) {
if (memcmp (data2, "compare", 3) == 0) {
}
/* GDM */
if (memcmp (data, "GDM\xFE", 4) == 0) {
- guint8 *data2 = gst_type_find_peek (tf, 71, 4);
+ const guint8 *data2 = gst_type_find_peek (tf, 71, 4);
if (data2) {
if (memcmp (data2, "GMFS", 4) == 0) {
if ((data = gst_type_find_peek (tf, 20, 8)) != NULL) {
if (g_ascii_strncasecmp ((gchar *) data, "!Scream!", 8) == 0 ||
g_ascii_strncasecmp ((gchar *) data, "BMOD2STM", 8) == 0) {
- guint8 *id, *stmtype;
+ const guint8 *id, *stmtype;
if ((id = gst_type_find_peek (tf, 28, 1)) == NULL)
return;
return;
}
}
+ /* AMF */
+ if ((data = gst_type_find_peek (tf, 0, 19)) != NULL) {
+ if (memcmp (data, "ASYLUM Music Format", 19) == 0) {
+ gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, MOD_CAPS);
+ return;
+ }
+ }
}
/*** application/x-shockwave-flash ***/
static void
swf_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if (data && (data[0] == 'F' || data[0] == 'C') &&
data[1] == 'W' && data[2] == 'S') {
prob = GST_TYPE_FIND_LIKELY;
gst_caps_set_simple (caps, "width", G_TYPE_INT, w,
- "height", G_TYPE_INT, h, NULL);
+ "height", G_TYPE_INT, h, "sof-marker", G_TYPE_INT, marker & 0xf,
+ NULL);
+
break;
} else {
GST_WARNING ("bad length or unexpected JPEG marker 0xff 0x%02x", marker);
static void
tiff_type_find (GstTypeFind * tf, gpointer ununsed)
{
- guint8 *data = gst_type_find_peek (tf, 0, 8);
+ const guint8 *data = gst_type_find_peek (tf, 0, 8);
guint8 le_header[4] = { 0x49, 0x49, 0x2A, 0x00 };
guint8 be_header[4] = { 0x4D, 0x4D, 0x00, 0x2A };
static void
sds_type_find (GstTypeFind * tf, gpointer ununsed)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
guint8 mask[4] = { 0xFF, 0xFF, 0x80, 0xFF };
guint8 match[4] = { 0xF0, 0x7E, 0, 0x01 };
gint x;
static void
ircam_type_find (GstTypeFind * tf, gpointer ununsed)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
guint8 mask[4] = { 0xFF, 0xFF, 0xF8, 0xFF };
guint8 match[4] = { 0x64, 0xA3, 0x00, 0x00 };
gint x;
ebml_check_header (GstTypeFind * tf, const gchar * doctype, int doctype_len)
{
/* 4 bytes for EBML ID, 1 byte for header length identifier */
- guint8 *data = gst_type_find_peek (tf, 0, 4 + 1);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4 + 1);
gint len_mask = 0x80, size = 1, n = 1, total;
if (!data)
static void
dv_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data;
+ const guint8 *data;
data = gst_type_find_peek (tf, 0, 5);
static void
ogganx_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if ((data != NULL) && (memcmp (data, "OggS", 4) == 0)) {
static void
vorbis_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 30);
+ const guint8 *data = gst_type_find_peek (tf, 0, 30);
if (data) {
guint blocksize_0;
static void
theora_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 7); //42);
+ const guint8 *data = gst_type_find_peek (tf, 0, 7); //42);
if (data) {
if (data[0] != 0x80)
static void
kate_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 64);
+ const guint8 *data = gst_type_find_peek (tf, 0, 64);
gchar category[16] = { 0, };
if (G_UNLIKELY (data == NULL))
static void
ogmvideo_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 9);
+ const guint8 *data = gst_type_find_peek (tf, 0, 9);
if (data) {
if (memcmp (data, "\001video\000\000\000", 9) != 0)
static void
ogmaudio_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 9);
+ const guint8 *data = gst_type_find_peek (tf, 0, 9);
if (data) {
if (memcmp (data, "\001audio\000\000\000", 9) != 0)
static void
ogmtext_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 9);
+ const guint8 *data = gst_type_find_peek (tf, 0, 9);
if (data) {
if (memcmp (data, "\001text\000\000\000\000", 9) != 0)
static void
speex_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 80);
+ const guint8 *data = gst_type_find_peek (tf, 0, 80);
if (data) {
/* 8 byte string "Speex "
static void
celt_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 8);
+ const guint8 *data = gst_type_find_peek (tf, 0, 8);
if (data) {
/* 8 byte string "CELT " */
static void
oggskel_type_find (GstTypeFind * tf, gpointer private)
{
- guint8 *data = gst_type_find_peek (tf, 0, 12);
+ const guint8 *data = gst_type_find_peek (tf, 0, 12);
if (data) {
/* 8 byte string "fishead\0" for the ogg skeleton stream */
cmml_type_find (GstTypeFind * tf, gpointer private)
{
/* Header is 12 bytes minimum (though we don't check the minor version */
- guint8 *data = gst_type_find_peek (tf, 0, 12);
+ const guint8 *data = gst_type_find_peek (tf, 0, 12);
if (data) {
static void
tar_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 257, 8);
+ const guint8 *data = gst_type_find_peek (tf, 257, 8);
/* of course we are not certain, but we don't want other typefind funcs
* to detect formats of files within the tar archive, e.g. mp3s */
static void
ar_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 24);
+ const guint8 *data = gst_type_find_peek (tf, 0, 24);
if (data && memcmp (data, "!<arch>", 7) == 0) {
gint i;
static void
au_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if (data) {
if (memcmp (data, ".snd", 4) == 0 || memcmp (data, "dns.", 4) == 0) {
static void
nuv_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 11);
+ const guint8 *data = gst_type_find_peek (tf, 0, 11);
if (data) {
if (memcmp (data, "MythTVVideo", 11) == 0
static void
paris_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 4);
+ const guint8 *data = gst_type_find_peek (tf, 0, 4);
if (data) {
if (memcmp (data, " paf", 4) == 0 || memcmp (data, "fap ", 4) == 0) {
static void
ilbc_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 8);
+ const guint8 *data = gst_type_find_peek (tf, 0, 8);
if (data) {
if (memcmp (data, "#!iLBC30", 8) == 0 || memcmp (data, "#!iLBC20", 8) == 0) {
static void
msdos_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 64);
+ const guint8 *data = gst_type_find_peek (tf, 0, 64);
if (data && data[0] == 'M' && data[1] == 'Z' &&
GST_READ_UINT16_LE (data + 8) == 4) {
0xcf, 0x11, 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c
};
- guint8 *data;
+ const guint8 *data;
data = gst_type_find_peek (tf, 0, 2 + 2 + 4 + 2 + 2 + 16);
if (data && data[0] == 0x24 && data[1] == 0x48 &&
static void
dirac_type_find (GstTypeFind * tf, gpointer unused)
{
- guint8 *data = gst_type_find_peek (tf, 0, 8);
+ const guint8 *data = gst_type_find_peek (tf, 0, 8);
if (data) {
if (memcmp (data, "BBCD", 4) == 0 || memcmp (data, "KW-DIRAC", 8) == 0) {
static const guint8 vivo_marker[] = { 'V', 'e', 'r', 's', 'i', 'o', 'n',
':', 'V', 'i', 'v', 'o', '/'
};
- guint8 *data;
+ const guint8 *data;
guint hdr_len, pos;
data = gst_type_find_peek (tf, 0, 1024);
gchar *mimetype;
gsize length = 16384;
guint64 tf_length;
- guint8 *data;
+ const guint8 *data;
gchar *tmp;
if ((tf_length = gst_type_find_get_length (find)) > 0)
static void
windows_icon_typefind (GstTypeFind * find, gpointer user_data)
{
- guint8 *data;
+ const guint8 *data;
gint64 datalen;
guint16 type, nimages;
gint32 size, offset;
"image/x-icon", NULL);
}
+/*** WAP WBMP typefinder ***/
+
+static void
+wbmp_typefind (GstTypeFind * find, gpointer user_data)
+{
+ const guint8 *data;
+ gint64 datalen;
+ guint w, h, size;
+
+ /* http://en.wikipedia.org/wiki/Wireless_Application_Protocol_Bitmap_Format */
+ datalen = gst_type_find_get_length (find);
+ if (datalen == 0)
+ return;
+
+ data = gst_type_find_peek (find, 0, 5);
+ if (data == NULL)
+ return;
+
+ /* want 0x00 0x00 at start */
+ if (*data++ != 0 || *data++ != 0)
+ return;
+
+ /* min header size */
+ size = 4;
+
+ /* let's assume max width/height is 65536 */
+ w = *data++;
+ if ((w & 0x80)) {
+ w = (w << 8) | *data++;
+ if ((w & 0x80))
+ return;
+ ++size;
+ data = gst_type_find_peek (find, 4, 2);
+ if (data == NULL)
+ return;
+ }
+ h = *data++;
+ if ((h & 0x80)) {
+ h = (h << 8) | *data++;
+ if ((h & 0x80))
+ return;
+ ++size;
+ }
+
+ if (w == 0 || h == 0)
+ return;
+
+ /* now add bitmap size */
+ size += h * (GST_ROUND_UP_8 (w) / 8);
+
+ if (datalen == size) {
+ gst_type_find_suggest_simple (find, GST_TYPE_FIND_POSSIBLE - 10,
+ "image/vnd.wap.wbmp", NULL);
+ }
+}
/*** DEGAS Atari images (also to avoid false positives, see #625129) ***/
static void
if (len < 34) /* smallest header of the lot */
return;
data = gst_type_find_peek (tf, 0, 4);
+ if (G_UNLIKELY (data == NULL))
+ return;
resolution = GST_READ_UINT16_BE (data);
if (len == 32034) {
/* could be DEGAS */
/* could be DEGAS Elite */
if (resolution <= 2) {
data = gst_type_find_peek (tf, len - 16, 8);
+ if (G_UNLIKELY (data == NULL))
+ return;
for (n = 0; n < 4; n++) {
if (GST_READ_UINT16_BE (data + n * 2) > 2)
return;
it does have 4 16 bytes values near the end that are 0-2 though. */
if ((resolution & 0x8000) && (resolution & 0x7fff) <= 2) {
data = gst_type_find_peek (tf, len - 16, 8);
+ if (G_UNLIKELY (data == NULL))
+ return;
for (n = 0; n < 4; n++) {
if (GST_READ_UINT16_BE (data + n * 2) > 2)
return;
start_with_type_find (GstTypeFind * tf, gpointer private)
{
GstTypeFindData *start_with = (GstTypeFindData *) private;
- guint8 *data;
+ const guint8 *data;
GST_LOG ("trying to find mime type %s with the first %u bytes of data",
gst_structure_get_name (gst_caps_get_structure (start_with->caps, 0)),
riff_type_find (GstTypeFind * tf, gpointer private)
{
GstTypeFindData *riff_data = (GstTypeFindData *) private;
- guint8 *data = gst_type_find_peek (tf, 0, 12);
+ const guint8 *data = gst_type_find_peek (tf, 0, 12);
if (data && (memcmp (data, "RIFF", 4) == 0 || memcmp (data, "AVF0", 4) == 0)) {
data += 8;
static const gchar *rm_exts[] = { "ra", "ram", "rm", "rmvb", NULL };
static const gchar *swf_exts[] = { "swf", "swfl", NULL };
static const gchar *utf8_exts[] = { "txt", NULL };
+ static const gchar *unicode_exts[] = { "txt", NULL };
static const gchar *wav_exts[] = { "wav", NULL };
static const gchar *aiff_exts[] = { "aiff", "aif", "aifc", NULL };
static const gchar *svx_exts[] = { "iff", "svx", NULL };
static const gchar *sap_exts[] = { "sap", NULL };
static const gchar *vgm_exts[] = { "vgm", NULL };
static const gchar *mid_exts[] = { "mid", "midi", NULL };
+#ifdef GST_EXT_MIME_TYPES
+ static const gchar *mmf_exts[] = { "mmf", NULL };
static const gchar *xmf_exts[] = { "xmf", NULL };
+#endif
static const gchar *mxmf_exts[] = { "mxmf", NULL };
- static const gchar *mmf_exts[] = { "mmf", NULL };
static const gchar *imelody_exts[] = { "imy", "ime", "imelody", NULL };
static const gchar *pdf_exts[] = { "pdf", NULL };
static const gchar *ps_exts[] = { "ps", NULL };
asf_exts,
"\060\046\262\165\216\146\317\021\246\331\000\252\000\142\316\154", 16,
GST_TYPE_FIND_MAXIMUM);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "audio/x-musepack", GST_RANK_PRIMARY,
musepack_type_find, musepack_exts, MUSEPACK_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "audio/x-au", GST_RANK_MARGINAL,
#endif
TYPE_FIND_REGISTER_RIFF (plugin, "video/x-msvideo", GST_RANK_PRIMARY,
avi_exts, "AVI ");
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER_RIFF (plugin, "audio/qcelp", GST_RANK_PRIMARY,
qcp_exts, "QLCM");
TYPE_FIND_REGISTER_RIFF (plugin, "video/x-cdxa", GST_RANK_PRIMARY,
#endif
TYPE_FIND_REGISTER (plugin, "audio/midi", GST_RANK_PRIMARY, mid_type_find,
mid_exts, MID_CAPS, NULL, NULL);
- TYPE_FIND_REGISTER_RIFF (plugin, "audio/riff-midi", GST_RANK_PRIMARY,
- mid_exts, "RMID");
+#ifdef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "audio/xmf", GST_RANK_PRIMARY,
xmf_type_find, xmf_exts, XMF_CAPS, NULL, NULL);
- TYPE_FIND_REGISTER (plugin, "audio/mobile-xmf", GST_RANK_PRIMARY,
- mxmf_type_find, mxmf_exts, MXMF_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "audio/x-smaf", GST_RANK_PRIMARY,
mmf_type_find, mmf_exts, MMF_CAPS, NULL, NULL);
-#if 0
+#endif
+ TYPE_FIND_REGISTER_RIFF (plugin, "audio/riff-midi", GST_RANK_PRIMARY,
+ mid_exts, "RMID");
+ TYPE_FIND_REGISTER (plugin, "audio/mobile-xmf", GST_RANK_PRIMARY,
+ mxmf_type_find, mxmf_exts, MXMF_CAPS, NULL, NULL);
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "video/x-fli", GST_RANK_MARGINAL, flx_type_find,
flx_exts, FLX_CAPS, NULL, NULL);
#endif
id3v2_type_find, id3_exts, ID3_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "application/x-id3v1", GST_RANK_PRIMARY + 101,
id3v1_type_find, id3_exts, ID3_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "application/x-apetag", GST_RANK_PRIMARY + 102,
apetag_type_find, apetag_exts, APETAG_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "audio/x-ttafile", GST_RANK_PRIMARY,
ac3_exts, AC3_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "audio/x-dts", GST_RANK_SECONDARY, dts_type_find,
dts_exts, DTS_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "audio/x-gsm", GST_RANK_PRIMARY, NULL, gsm_exts,
GSM_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/mpeg-sys", GST_RANK_PRIMARY,
#endif
TYPE_FIND_REGISTER (plugin, "video/mpegts", GST_RANK_PRIMARY,
mpeg_ts_type_find, mpeg_ts_exts, MPEGTS_CAPS, NULL, NULL);
-
TYPE_FIND_REGISTER (plugin, "application/ogg", GST_RANK_PRIMARY,
ogganx_type_find, ogg_exts, OGGANX_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/mpeg-elementary", GST_RANK_MARGINAL,
h263_video_type_find, h263_exts, H263_VIDEO_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/x-h264", GST_RANK_PRIMARY,
h264_video_type_find, h264_exts, H264_VIDEO_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "video/x-nuv", GST_RANK_SECONDARY, nuv_type_find,
nuv_exts, NUV_CAPS, NULL, NULL);
#endif
q3gp_type_find, q3gp_exts, Q3GP_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/quicktime", GST_RANK_SECONDARY,
qt_type_find, qt_exts, QT_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "image/x-quicktime", GST_RANK_SECONDARY,
qtif_type_find, qtif_exts, QTIF_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "image/jp2", GST_RANK_PRIMARY,
TYPE_FIND_REGISTER (plugin, "text/html", GST_RANK_SECONDARY, html_type_find,
html_exts, HTML_CAPS, NULL, NULL);
+ TYPE_FIND_REGISTER (plugin, "application/x-shockwave-flash",
+ GST_RANK_SECONDARY, swf_type_find, swf_exts, SWF_CAPS, NULL, NULL);
+#endif
TYPE_FIND_REGISTER_START_WITH (plugin, "application/vnd.rn-realmedia",
GST_RANK_SECONDARY, rm_exts, ".RMF", 4, GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER_START_WITH (plugin, "application/x-pn-realaudio",
GST_RANK_SECONDARY, rm_exts, ".ra\375", 4, GST_TYPE_FIND_MAXIMUM);
- TYPE_FIND_REGISTER (plugin, "application/x-shockwave-flash",
- GST_RANK_SECONDARY, swf_type_find, swf_exts, SWF_CAPS, NULL, NULL);
-#endif
TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-flv", GST_RANK_SECONDARY,
flv_exts, "FLV", 3, GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER (plugin, "text/plain", GST_RANK_MARGINAL, utf8_type_find,
utf8_exts, UTF8_CAPS, NULL, NULL);
-#if 0
+ TYPE_FIND_REGISTER (plugin, "text/utf-16", GST_RANK_MARGINAL, utf16_type_find,
+ unicode_exts, UTF16_CAPS, NULL, NULL);
+ TYPE_FIND_REGISTER (plugin, "text/utf-32", GST_RANK_MARGINAL, utf32_type_find,
+ unicode_exts, UTF32_CAPS, NULL, NULL);
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "text/uri-list", GST_RANK_MARGINAL, uri_type_find,
uri_exts, URI_CAPS, NULL, NULL);
-#endif
+#endif
TYPE_FIND_REGISTER (plugin, "application/x-hls", GST_RANK_MARGINAL,
hls_type_find, hls_exts, HLS_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "application/sdp", GST_RANK_SECONDARY,
sdp_type_find, sdp_exts, SDP_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "application/smil", GST_RANK_SECONDARY,
smil_type_find, smil_exts, SMIL_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "application/xml", GST_RANK_MARGINAL,
#endif
TYPE_FIND_REGISTER_RIFF (plugin, "audio/x-wav", GST_RANK_PRIMARY, wav_exts,
"WAVE");
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "audio/x-aiff", GST_RANK_SECONDARY,
aiff_type_find, aiff_exts, AIFF_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "audio/x-svx", GST_RANK_SECONDARY, svx_type_find,
png_exts, "\211PNG\015\012\032\012", 8, GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER (plugin, "image/bmp", GST_RANK_PRIMARY, bmp_type_find,
bmp_exts, BMP_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "image/tiff", GST_RANK_PRIMARY, tiff_type_find,
tiff_exts, TIFF_CAPS, NULL, NULL);
#endif
matroska_type_find, matroska_exts, MATROSKA_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/webm", GST_RANK_PRIMARY,
webm_type_find, webm_exts, WEBM_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "application/mxf", GST_RANK_PRIMARY,
mxf_type_find, mxf_exts, MXF_CAPS, NULL, NULL);
TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-mve", GST_RANK_SECONDARY,
amr_exts, "#!AMR", 5, GST_TYPE_FIND_LIKELY);
TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-amr-wb-sh", GST_RANK_PRIMARY,
amr_exts, "#!AMR-WB", 7, GST_TYPE_FIND_MAXIMUM);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "audio/iLBC-sh", GST_RANK_PRIMARY,
ilbc_type_find, ilbc_exts, ILBC_CAPS, NULL, NULL);
TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-sid", GST_RANK_MARGINAL,
vorbis_type_find, NULL, VORBIS_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "video/x-theora", GST_RANK_PRIMARY,
theora_type_find, NULL, THEORA_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER (plugin, "application/x-ogm-video", GST_RANK_PRIMARY,
ogmvideo_type_find, NULL, OGMVIDEO_CAPS, NULL, NULL);
TYPE_FIND_REGISTER (plugin, "application/x-ogm-audio", GST_RANK_PRIMARY,
#endif
TYPE_FIND_REGISTER (plugin, "audio/aac", GST_RANK_SECONDARY,
aac_type_find, aac_exts, AAC_CAPS, NULL, NULL);
-#if 0
+#ifndef GST_EXT_MIME_TYPES
TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-spc", GST_RANK_SECONDARY,
spc_exts, "SNES-SPC700 Sound File Data", 27, GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER (plugin, "audio/x-wavpack", GST_RANK_SECONDARY,
TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-vgm",
GST_RANK_SECONDARY, vgm_exts, "Vgm\x20", 4, GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER_START_WITH (plugin, "audio/x-sap",
- GST_RANK_SECONDARY, sap_exts, "SAP\x0d\x0aAUTHOR\x20", 12,
+ GST_RANK_SECONDARY, sap_exts, "SAP\x0d\x0a" "AUTHOR\x20", 12,
GST_TYPE_FIND_MAXIMUM);
TYPE_FIND_REGISTER_START_WITH (plugin, "video/x-ivf", GST_RANK_SECONDARY,
ivf_exts, "DKIF", 4, GST_TYPE_FIND_NEARLY_CERTAIN);
TYPE_FIND_REGISTER_START_WITH (plugin, "image/vnd.adobe.photoshop",
GST_RANK_SECONDARY, psd_exts, "8BPS\000\001\000\000\000\000", 10,
GST_TYPE_FIND_LIKELY);
+ TYPE_FIND_REGISTER (plugin, "image/vnd.wap.wbmp", GST_RANK_MARGINAL,
+ wbmp_typefind, NULL, NULL, NULL, NULL);
TYPE_FIND_REGISTER_START_WITH (plugin, "application/x-yuv4mpeg",
GST_RANK_SECONDARY, y4m_exts, "YUV4MPEG2 ", 10, GST_TYPE_FIND_LIKELY);
TYPE_FIND_REGISTER (plugin, "image/x-icon", GST_RANK_MARGINAL,
plugin_LTLIBRARIES = libgstvideorate.la
libgstvideorate_la_SOURCES = gstvideorate.c
-libgstvideorate_la_CFLAGS = $(GST_CFLAGS)
+libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
libgstvideorate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideorate_la_LIBADD = $(GST_LIBS)
+libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
libgstvideorate_la_LIBTOOLFLAGS = --tag=disable-static
Android.mk: Makefile.am $(BUILT_SOURCES)
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
-libgstvideorate_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+libgstvideorate_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
am_libgstvideorate_la_OBJECTS = libgstvideorate_la-gstvideorate.lo
libgstvideorate_la_OBJECTS = $(am_libgstvideorate_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
libgstvideorate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstvideorate_la_SOURCES)
DIST_SOURCES = $(libgstvideorate_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
noinst_HEADERS = gstvideorate.h
plugin_LTLIBRARIES = libgstvideorate.la
libgstvideorate_la_SOURCES = gstvideorate.c
-libgstvideorate_la_CFLAGS = $(GST_CFLAGS)
+libgstvideorate_la_CFLAGS = $(GST_CFLAGS) $(GST_BASE_CFLAGS)
libgstvideorate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
-libgstvideorate_la_LIBADD = $(GST_LIBS)
+libgstvideorate_la_LIBADD = $(GST_LIBS) $(GST_BASE_LIBS)
libgstvideorate_la_LIBTOOLFLAGS = --tag=disable-static
all: all-am
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstvideorate.la: $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_DEPENDENCIES)
+libgstvideorate.la: $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_DEPENDENCIES) $(EXTRA_libgstvideorate_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstvideorate_la_LINK) -rpath $(plugindir) $(libgstvideorate_la_OBJECTS) $(libgstvideorate_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstvideorate_la-gstvideorate.lo: gstvideorate.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideorate_la_CFLAGS) $(CFLAGS) -MT libgstvideorate_la-gstvideorate.lo -MD -MP -MF $(DEPDIR)/libgstvideorate_la-gstvideorate.Tpo -c -o libgstvideorate_la-gstvideorate.lo `test -f 'gstvideorate.c' || echo '$(srcdir)/'`gstvideorate.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideorate_la-gstvideorate.Tpo $(DEPDIR)/libgstvideorate_la-gstvideorate.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideorate.c' object='libgstvideorate_la-gstvideorate.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideorate.c' object='libgstvideorate_la-gstvideorate.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideorate_la_CFLAGS) $(CFLAGS) -c -o libgstvideorate_la-gstvideorate.lo `test -f 'gstvideorate.c' || echo '$(srcdir)/'`gstvideorate.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideorate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideorate_la_CFLAGS) $(CFLAGS) -c -o libgstvideorate_la-gstvideorate.lo `test -f 'gstvideorate.c' || echo '$(srcdir)/'`gstvideorate.c
mostlyclean-libtool:
-rm -f *.lo
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:
#define DEFAULT_SILENT TRUE
#define DEFAULT_NEW_PREF 1.0
#define DEFAULT_SKIP_TO_FIRST FALSE
+#define DEFAULT_DROP_ONLY FALSE
+#define DEFAULT_AVERAGE_PERIOD 0
+#define DEFAULT_MAX_RATE G_MAXINT
+#define DEFAULT_FORCE_FPS_N -1
+#define DEFAULT_FORCE_FPS_D 1
enum
{
- ARG_0,
- ARG_IN,
- ARG_OUT,
- ARG_DUP,
- ARG_DROP,
- ARG_SILENT,
- ARG_NEW_PREF,
- ARG_SKIP_TO_FIRST
+ PROP_0,
+ PROP_IN,
+ PROP_OUT,
+ PROP_DUP,
+ PROP_DROP,
+ PROP_SILENT,
+ PROP_NEW_PREF,
+ PROP_SKIP_TO_FIRST,
+ PROP_DROP_ONLY,
+ PROP_AVERAGE_PERIOD,
+ PROP_MAX_RATE,
+ PROP_FORCE_FPS
/* FILL ME */
};
static void gst_video_rate_swap_prev (GstVideoRate * videorate,
GstBuffer * buffer, gint64 time);
-static gboolean gst_video_rate_event (GstPad * pad, GstEvent * event);
-static gboolean gst_video_rate_query (GstPad * pad, GstQuery * query);
-static GstFlowReturn gst_video_rate_chain (GstPad * pad, GstBuffer * buffer);
+static gboolean gst_video_rate_event (GstBaseTransform * trans,
+ GstEvent * event);
+static gboolean gst_video_rate_query (GstBaseTransform * trans,
+ GstPadDirection direction, GstQuery * query);
+
+static gboolean gst_video_rate_setcaps (GstBaseTransform * trans,
+ GstCaps * in_caps, GstCaps * out_caps);
+
+static GstCaps *gst_video_rate_transform_caps (GstBaseTransform * trans,
+ GstPadDirection direction, GstCaps * caps);
+
+static void gst_video_rate_fixate_caps (GstBaseTransform * trans,
+ GstPadDirection direction, GstCaps * caps, GstCaps * othercaps);
+
+static GstFlowReturn gst_video_rate_prepare_output_buffer (GstBaseTransform *
+ trans, GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf);
+static GstFlowReturn gst_video_rate_transform_ip (GstBaseTransform * trans,
+ GstBuffer * buf);
+
+static gboolean gst_video_rate_start (GstBaseTransform * trans);
+static gboolean gst_video_rate_stop (GstBaseTransform * trans);
+
static void gst_video_rate_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec);
static void gst_video_rate_get_property (GObject * object,
guint prop_id, GValue * value, GParamSpec * pspec);
-static GstStateChangeReturn gst_video_rate_change_state (GstElement * element,
- GstStateChange transition);
-
-/*static guint gst_video_rate_signals[LAST_SIGNAL] = { 0 }; */
-
static GParamSpec *pspec_drop = NULL;
static GParamSpec *pspec_duplicate = NULL;
-GST_BOILERPLATE (GstVideoRate, gst_video_rate, GstElement, GST_TYPE_ELEMENT);
+GST_BOILERPLATE (GstVideoRate, gst_video_rate,
+ GstBaseTransform, GST_TYPE_BASE_TRANSFORM);
static void
gst_video_rate_base_init (gpointer g_class)
"Drops/duplicates/adjusts timestamps on video frames to make a perfect stream",
"Wim Taymans <wim@fluendo.com>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_video_rate_sink_template));
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_video_rate_src_template));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_video_rate_sink_template);
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_video_rate_src_template);
}
static void
gst_video_rate_class_init (GstVideoRateClass * klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+ GstBaseTransformClass *base_class = GST_BASE_TRANSFORM_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
object_class->set_property = gst_video_rate_set_property;
object_class->get_property = gst_video_rate_get_property;
- g_object_class_install_property (object_class, ARG_IN,
+ base_class->set_caps = GST_DEBUG_FUNCPTR (gst_video_rate_setcaps);
+ base_class->transform_caps =
+ GST_DEBUG_FUNCPTR (gst_video_rate_transform_caps);
+ base_class->transform_ip = GST_DEBUG_FUNCPTR (gst_video_rate_transform_ip);
+ base_class->prepare_output_buffer =
+ GST_DEBUG_FUNCPTR (gst_video_rate_prepare_output_buffer);
+ base_class->event = GST_DEBUG_FUNCPTR (gst_video_rate_event);
+ base_class->start = GST_DEBUG_FUNCPTR (gst_video_rate_start);
+ base_class->stop = GST_DEBUG_FUNCPTR (gst_video_rate_stop);
+ base_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_video_rate_fixate_caps);
+ base_class->query = GST_DEBUG_FUNCPTR (gst_video_rate_query);
+
+ g_object_class_install_property (object_class, PROP_IN,
g_param_spec_uint64 ("in", "In",
"Number of input frames", 0, G_MAXUINT64, 0,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (object_class, ARG_OUT,
+ g_object_class_install_property (object_class, PROP_OUT,
g_param_spec_uint64 ("out", "Out", "Number of output frames", 0,
G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
pspec_duplicate = g_param_spec_uint64 ("duplicate", "Duplicate",
"Number of duplicated frames", 0, G_MAXUINT64, 0,
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
- g_object_class_install_property (object_class, ARG_DUP, pspec_duplicate);
+ g_object_class_install_property (object_class, PROP_DUP, pspec_duplicate);
pspec_drop = g_param_spec_uint64 ("drop", "Drop", "Number of dropped frames",
0, G_MAXUINT64, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
- g_object_class_install_property (object_class, ARG_DROP, pspec_drop);
- g_object_class_install_property (object_class, ARG_SILENT,
+ g_object_class_install_property (object_class, PROP_DROP, pspec_drop);
+ g_object_class_install_property (object_class, PROP_SILENT,
g_param_spec_boolean ("silent", "silent",
"Don't emit notify for dropped and duplicated frames", DEFAULT_SILENT,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (object_class, ARG_NEW_PREF,
+ g_object_class_install_property (object_class, PROP_NEW_PREF,
g_param_spec_double ("new-pref", "New Pref",
"Value indicating how much to prefer new frames (unused)", 0.0, 1.0,
DEFAULT_NEW_PREF, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
*
* Since: 0.10.25
*/
- g_object_class_install_property (object_class, ARG_SKIP_TO_FIRST,
+ g_object_class_install_property (object_class, PROP_SKIP_TO_FIRST,
g_param_spec_boolean ("skip-to-first", "Skip to first buffer",
"Don't produce buffers before the first one we receive",
DEFAULT_SKIP_TO_FIRST, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- element_class->change_state = GST_DEBUG_FUNCPTR (gst_video_rate_change_state);
+ /**
+ * GstVideoRate:drop-only:
+ *
+ * Only drop frames, no duplicates are produced.
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (object_class, PROP_DROP_ONLY,
+ g_param_spec_boolean ("drop-only", "Only Drop",
+ "Only drop frames, no duplicates are produced",
+ DEFAULT_DROP_ONLY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ /**
+ * GstVideoRate:average-period:
+ *
+ * Arrange for maximum framerate by dropping frames beyond a certain framerate,
+ * where the framerate is calculated using a moving average over the
+ * configured.
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (object_class, PROP_AVERAGE_PERIOD,
+ g_param_spec_uint64 ("average-period", "Period over which to average",
+ "Period over which to average the framerate (in ns) (0 = disabled)",
+ 0, G_MAXINT64, DEFAULT_AVERAGE_PERIOD,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ /**
+ * GstVideoRate:max-rate:
+ *
+ * maximum framerate to pass through
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (object_class, PROP_MAX_RATE,
+ g_param_spec_int ("max-rate", "maximum framerate",
+ "Maximum framerate allowed to pass through "
+ "(in frames per second, implies drop-only)",
+ 1, G_MAXINT, DEFAULT_MAX_RATE,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
+
+ /**
+ * GstVideoRate:force-fps:
+ *
+ * Forced output framerate
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (object_class, PROP_FORCE_FPS,
+ gst_param_spec_fraction ("force-fps", "Force output framerate",
+ "Force output framerate (negative means negotiate via caps)",
+ -1, 1, G_MAXINT, 1, DEFAULT_FORCE_FPS_N, DEFAULT_FORCE_FPS_D,
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
}
-/* return the caps that can be used on out_pad given in_caps on in_pad */
+static void
+gst_value_fraction_get_extremes (const GValue * v,
+ gint * min_num, gint * min_denom, gint * max_num, gint * max_denom)
+{
+ if (GST_VALUE_HOLDS_FRACTION (v)) {
+ *min_num = *max_num = gst_value_get_fraction_numerator (v);
+ *min_denom = *max_denom = gst_value_get_fraction_denominator (v);
+ } else if (GST_VALUE_HOLDS_FRACTION_RANGE (v)) {
+ const GValue *min, *max;
+
+ min = gst_value_get_fraction_range_min (v);
+ *min_num = gst_value_get_fraction_numerator (min);
+ *min_denom = gst_value_get_fraction_denominator (min);
+
+ max = gst_value_get_fraction_range_max (v);
+ *max_num = gst_value_get_fraction_numerator (max);
+ *max_denom = gst_value_get_fraction_denominator (max);
+ } else if (GST_VALUE_HOLDS_LIST (v)) {
+ gint min_n = G_MAXINT, min_d = 1, max_n = 0, max_d = 1;
+ int i, n;
+
+ *min_num = G_MAXINT;
+ *min_denom = 1;
+ *max_num = 0;
+ *max_denom = 1;
+
+ n = gst_value_list_get_size (v);
+
+ g_assert (n > 0);
+
+ for (i = 0; i < n; i++) {
+ const GValue *t = gst_value_list_get_value (v, i);
+
+ gst_value_fraction_get_extremes (t, &min_n, &min_d, &max_n, &max_d);
+ if (gst_util_fraction_compare (min_n, min_d, *min_num, *min_denom) < 0) {
+ *min_num = min_n;
+ *min_denom = min_d;
+ }
+
+ if (gst_util_fraction_compare (max_n, max_d, *max_num, *max_denom) > 0) {
+ *max_num = max_n;
+ *max_denom = max_d;
+ }
+ }
+ } else {
+ g_warning ("Unknown type for framerate");
+ *min_num = 0;
+ *min_denom = 1;
+ *max_num = G_MAXINT;
+ *max_denom = 1;
+ }
+}
+
+/* Clamp the framerate in a caps structure to be a smaller range then
+ * [1...max_rate], otherwise return false */
static gboolean
-gst_video_rate_transformcaps (GstPad * in_pad, GstCaps * in_caps,
- GstPad * out_pad, GstCaps ** out_caps)
+gst_video_max_rate_clamp_structure (GstStructure * s, gint maxrate,
+ gint * min_num, gint * min_denom, gint * max_num, gint * max_denom)
{
- GstCaps *intersect;
- const GstCaps *in_templ;
- gint i;
- GSList *extra_structures = NULL;
- GSList *iter;
+ gboolean ret = FALSE;
- in_templ = gst_pad_get_pad_template_caps (in_pad);
- intersect = gst_caps_intersect (in_caps, in_templ);
+ if (!gst_structure_has_field (s, "framerate")) {
+ /* No framerate field implies any framerate, clamping would result in
+ * [1..max_rate] so not a real subset */
+ goto out;
+ } else {
+ const GValue *v;
+ GValue intersection = { 0, };
+ GValue clamp = { 0, };
+ gint tmp_num, tmp_denom;
+
+ g_value_init (&clamp, GST_TYPE_FRACTION_RANGE);
+ gst_value_set_fraction_range_full (&clamp, 0, 1, maxrate, 1);
+
+ v = gst_structure_get_value (s, "framerate");
+ ret = gst_value_intersect (&intersection, v, &clamp);
+ g_value_unset (&clamp);
- /* all possible framerates are allowed */
- for (i = 0; i < gst_caps_get_size (intersect); i++) {
- GstStructure *structure;
+ if (!ret)
+ goto out;
- structure = gst_caps_get_structure (intersect, i);
+ gst_value_fraction_get_extremes (&intersection,
+ min_num, min_denom, max_num, max_denom);
- if (gst_structure_has_field (structure, "framerate")) {
- GstStructure *copy_structure;
+ gst_value_fraction_get_extremes (v,
+ &tmp_num, &tmp_denom, max_num, max_denom);
- copy_structure = gst_structure_copy (structure);
- gst_structure_set (copy_structure,
- "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
- extra_structures = g_slist_append (extra_structures, copy_structure);
+ if (gst_util_fraction_compare (*max_num, *max_denom, maxrate, 1) > 0) {
+ *max_num = maxrate;
+ *max_denom = 1;
}
- }
- /* append the extra structures */
- for (iter = extra_structures; iter != NULL; iter = g_slist_next (iter)) {
- gst_caps_append_structure (intersect, (GstStructure *) iter->data);
+ gst_structure_take_value (s, "framerate", &intersection);
}
- g_slist_free (extra_structures);
-
- *out_caps = intersect;
- return TRUE;
+out:
+ return ret;
}
static GstCaps *
-gst_video_rate_getcaps (GstPad * pad)
+gst_video_rate_transform_caps (GstBaseTransform * trans,
+ GstPadDirection direction, GstCaps * caps)
{
- GstVideoRate *videorate;
- GstPad *otherpad;
- GstCaps *caps;
+ GstVideoRate *videorate = GST_VIDEO_RATE (trans);
+ GstCaps *ret;
+ GstStructure *s, *s2;
+ GstStructure *s3 = NULL;
+ int maxrate = g_atomic_int_get (&videorate->max_rate);
+
+ /* Should always be called with simple caps */
+ g_return_val_if_fail (GST_CAPS_IS_SIMPLE (caps), NULL);
+
+ ret = gst_caps_copy (caps);
+
+ s = gst_caps_get_structure (ret, 0);
+ s2 = gst_structure_copy (s);
+
+ if (videorate->force_fps_n >= 0 && videorate->force_fps_d >= 0) {
+ if (direction == GST_PAD_SINK) {
+ gst_caps_remove_structure (ret, 0);
+ gst_structure_set (s2, "framerate", GST_TYPE_FRACTION,
+ videorate->force_fps_n, videorate->force_fps_d, NULL);
+ } else {
+ gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
+ G_MAXINT, 1, NULL);
+ }
+ } else if (videorate->drop_only) {
+ gint min_num = 0, min_denom = 1;
+ gint max_num = G_MAXINT, max_denom = 1;
+
+ /* Clamp the caps to our maximum rate as the first caps if possible */
+ if (!gst_video_max_rate_clamp_structure (s, maxrate,
+ &min_num, &min_denom, &max_num, &max_denom)) {
+ min_num = 0;
+ min_denom = 1;
+ max_num = maxrate;
+ max_denom = 1;
+
+ /* clamp wouldn't be a real subset of 1..maxrate, in this case the sink
+ * caps should become [1..maxrate], [1..maxint] and the src caps just
+ * [1..maxrate]. In case there was a caps incompatibility things will
+ * explode later as appropriate :)
+ *
+ * In case [X..maxrate] == [X..maxint], skip as we'll set it later
+ */
+ if (direction == GST_PAD_SRC && maxrate != G_MAXINT)
+ gst_structure_set (s, "framerate", GST_TYPE_FRACTION_RANGE,
+ min_num, min_denom, maxrate, 1, NULL);
+ else
+ gst_caps_remove_structure (ret, 0);
+ }
- videorate = GST_VIDEO_RATE (GST_PAD_PARENT (pad));
+ if (direction == GST_PAD_SRC) {
+ /* We can accept anything as long as it's at least the minimal framerate
+ * the the sink needs */
+ gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE,
+ min_num, min_denom, G_MAXINT, 1, NULL);
- otherpad = (pad == videorate->srcpad) ? videorate->sinkpad :
- videorate->srcpad;
+ /* Also allow unknown framerate, if it isn't already */
+ if (min_num != 0 || min_denom != 1) {
+ s3 = gst_structure_copy (s);
+ gst_structure_set (s3, "framerate", GST_TYPE_FRACTION, 0, 1, NULL);
+ }
+ } else if (max_num != 0 || max_denom != 1) {
+ /* We can provide everything upto the maximum framerate at the src */
+ gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE,
+ 0, 1, max_num, max_denom, NULL);
+ }
+ } else if (direction == GST_PAD_SINK) {
+ gint min_num = 0, min_denom = 1;
+ gint max_num = G_MAXINT, max_denom = 1;
- /* we can do what the peer can */
- caps = gst_pad_peer_get_caps (otherpad);
- if (caps) {
- GstCaps *transform;
+ if (!gst_video_max_rate_clamp_structure (s, maxrate,
+ &min_num, &min_denom, &max_num, &max_denom))
+ gst_caps_remove_structure (ret, 0);
- gst_video_rate_transformcaps (otherpad, caps, pad, &transform);
- gst_caps_unref (caps);
- caps = transform;
+ gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
+ maxrate, 1, NULL);
} else {
- /* no peer, our padtemplate is enough then */
- caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad));
+ /* set the framerate as a range */
+ gst_structure_set (s2, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
+ G_MAXINT, 1, NULL);
}
- return caps;
+ gst_caps_merge_structure (ret, s2);
+ if (s3 != NULL)
+ gst_caps_merge_structure (ret, s3);
+
+ return ret;
+}
+
+static void
+gst_video_rate_fixate_caps (GstBaseTransform * trans,
+ GstPadDirection direction, GstCaps * caps, GstCaps * othercaps)
+{
+ GstStructure *s;
+ gint num, denom;
+
+ s = gst_caps_get_structure (caps, 0);
+ if (G_UNLIKELY (!gst_structure_get_fraction (s, "framerate", &num, &denom)))
+ return;
+
+ s = gst_caps_get_structure (othercaps, 0);
+ gst_structure_fixate_field_nearest_fraction (s, "framerate", num, denom);
}
static gboolean
-gst_video_rate_setcaps (GstPad * pad, GstCaps * caps)
+gst_video_rate_setcaps (GstBaseTransform * trans, GstCaps * in_caps,
+ GstCaps * out_caps)
{
GstVideoRate *videorate;
GstStructure *structure;
gboolean ret = TRUE;
- GstPad *otherpad, *opeer;
gint rate_numerator, rate_denominator;
- videorate = GST_VIDEO_RATE (gst_pad_get_parent (pad));
+ videorate = GST_VIDEO_RATE (trans);
- GST_DEBUG_OBJECT (pad, "setcaps called %" GST_PTR_FORMAT, caps);
+ GST_DEBUG_OBJECT (trans, "setcaps called in: %" GST_PTR_FORMAT
+ " out: %" GST_PTR_FORMAT, in_caps, out_caps);
- structure = gst_caps_get_structure (caps, 0);
+ structure = gst_caps_get_structure (in_caps, 0);
if (!gst_structure_get_fraction (structure, "framerate",
&rate_numerator, &rate_denominator))
goto no_framerate;
- if (pad == videorate->srcpad) {
- /* out_frame_count is scaled by the frame rate caps when calculating next_ts.
- * when the frame rate caps change, we must update base_ts and reset
- * out_frame_count */
- if (videorate->to_rate_numerator) {
- videorate->base_ts +=
- gst_util_uint64_scale (videorate->out_frame_count,
- videorate->to_rate_denominator * GST_SECOND,
- videorate->to_rate_numerator);
- }
- videorate->out_frame_count = 0;
- videorate->to_rate_numerator = rate_numerator;
- videorate->to_rate_denominator = rate_denominator;
- otherpad = videorate->sinkpad;
- } else {
- videorate->from_rate_numerator = rate_numerator;
- videorate->from_rate_denominator = rate_denominator;
- otherpad = videorate->srcpad;
- }
-
- /* now try to find something for the peer */
- opeer = gst_pad_get_peer (otherpad);
- if (opeer) {
- if (gst_pad_accept_caps (opeer, caps)) {
- /* the peer accepts the caps as they are */
- gst_pad_set_caps (otherpad, caps);
-
- ret = TRUE;
- } else {
- GstCaps *peercaps;
- GstCaps *transform = NULL;
-
- ret = FALSE;
-
- /* see how we can transform the input caps */
- if (!gst_video_rate_transformcaps (pad, caps, otherpad, &transform))
- goto no_transform;
-
- /* see what the peer can do */
- peercaps = gst_pad_get_caps (opeer);
-
- GST_DEBUG_OBJECT (opeer, "icaps %" GST_PTR_FORMAT, peercaps);
- GST_DEBUG_OBJECT (videorate, "transform %" GST_PTR_FORMAT, transform);
-
- /* filter against our possibilities */
- caps = gst_caps_intersect (peercaps, transform);
- gst_caps_unref (peercaps);
- gst_caps_unref (transform);
-
- GST_DEBUG_OBJECT (videorate, "intersect %" GST_PTR_FORMAT, caps);
+ videorate->from_rate_numerator = rate_numerator;
+ videorate->from_rate_denominator = rate_denominator;
- /* could turn up empty, due to e.g. colorspace etc */
- if (gst_caps_get_size (caps) == 0) {
- gst_caps_unref (caps);
- goto no_transform;
- }
-
- /* take first possibility */
- gst_caps_truncate (caps);
- structure = gst_caps_get_structure (caps, 0);
-
- /* and fixate */
- gst_structure_fixate_field_nearest_fraction (structure, "framerate",
- rate_numerator, rate_denominator);
+ structure = gst_caps_get_structure (out_caps, 0);
+ if (!gst_structure_get_fraction (structure, "framerate",
+ &rate_numerator, &rate_denominator))
+ goto no_framerate;
- gst_structure_get_fraction (structure, "framerate",
- &rate_numerator, &rate_denominator);
+ /* out_frame_count is scaled by the frame rate caps when calculating next_ts.
+ * when the frame rate caps change, we must update base_ts and reset
+ * out_frame_count */
+ if (videorate->to_rate_numerator) {
+ videorate->base_ts +=
+ gst_util_uint64_scale (videorate->out_frame_count,
+ videorate->to_rate_denominator * GST_SECOND,
+ videorate->to_rate_numerator);
+ }
+ videorate->out_frame_count = 0;
+ videorate->to_rate_numerator = rate_numerator;
+ videorate->to_rate_denominator = rate_denominator;
- if (otherpad == videorate->srcpad) {
- videorate->to_rate_numerator = rate_numerator;
- videorate->to_rate_denominator = rate_denominator;
- } else {
- videorate->from_rate_numerator = rate_numerator;
- videorate->from_rate_denominator = rate_denominator;
- }
+ if (rate_numerator)
+ videorate->wanted_diff = gst_util_uint64_scale_int (GST_SECOND,
+ rate_denominator, rate_numerator);
+ else
+ videorate->wanted_diff = 0;
- if (gst_structure_has_field (structure, "interlaced"))
- gst_structure_fixate_field_boolean (structure, "interlaced", FALSE);
- if (gst_structure_has_field (structure, "color-matrix"))
- gst_structure_fixate_field_string (structure, "color-matrix", "sdtv");
- if (gst_structure_has_field (structure, "chroma-site"))
- gst_structure_fixate_field_string (structure, "chroma-site", "mpeg2");
- if (gst_structure_has_field (structure, "pixel-aspect-ratio"))
- gst_structure_fixate_field_nearest_fraction (structure,
- "pixel-aspect-ratio", 1, 1);
-
- gst_pad_set_caps (otherpad, caps);
- gst_caps_unref (caps);
- ret = TRUE;
- }
- gst_object_unref (opeer);
- }
done:
/* After a setcaps, our caps may have changed. In that case, we can't use
* the old buffer, if there was one (it might have different dimensions) */
GST_DEBUG_OBJECT (videorate, "swapping old buffers");
gst_video_rate_swap_prev (videorate, NULL, GST_CLOCK_TIME_NONE);
+ videorate->last_ts = GST_CLOCK_TIME_NONE;
+ videorate->average = 0;
- gst_object_unref (videorate);
return ret;
no_framerate:
{
GST_DEBUG_OBJECT (videorate, "no framerate specified");
- goto done;
- }
-no_transform:
- {
- GST_DEBUG_OBJECT (videorate, "no framerate transform possible");
ret = FALSE;
goto done;
}
videorate->next_ts = GST_CLOCK_TIME_NONE;
videorate->last_ts = GST_CLOCK_TIME_NONE;
videorate->discont = TRUE;
+ videorate->average = 0;
gst_video_rate_swap_prev (videorate, NULL, 0);
gst_segment_init (&videorate->segment, GST_FORMAT_TIME);
static void
gst_video_rate_init (GstVideoRate * videorate, GstVideoRateClass * klass)
{
- videorate->sinkpad =
- gst_pad_new_from_static_template (&gst_video_rate_sink_template, "sink");
- gst_pad_set_event_function (videorate->sinkpad,
- GST_DEBUG_FUNCPTR (gst_video_rate_event));
- gst_pad_set_chain_function (videorate->sinkpad,
- GST_DEBUG_FUNCPTR (gst_video_rate_chain));
- gst_pad_set_getcaps_function (videorate->sinkpad,
- GST_DEBUG_FUNCPTR (gst_video_rate_getcaps));
- gst_pad_set_setcaps_function (videorate->sinkpad,
- GST_DEBUG_FUNCPTR (gst_video_rate_setcaps));
- gst_element_add_pad (GST_ELEMENT (videorate), videorate->sinkpad);
-
- videorate->srcpad =
- gst_pad_new_from_static_template (&gst_video_rate_src_template, "src");
- gst_pad_set_query_function (videorate->srcpad,
- GST_DEBUG_FUNCPTR (gst_video_rate_query));
- gst_pad_set_getcaps_function (videorate->srcpad,
- GST_DEBUG_FUNCPTR (gst_video_rate_getcaps));
- gst_pad_set_setcaps_function (videorate->srcpad,
- GST_DEBUG_FUNCPTR (gst_video_rate_setcaps));
- gst_element_add_pad (GST_ELEMENT (videorate), videorate->srcpad);
-
gst_video_rate_reset (videorate);
videorate->silent = DEFAULT_SILENT;
videorate->new_pref = DEFAULT_NEW_PREF;
+ videorate->drop_only = DEFAULT_DROP_ONLY;
+ videorate->average_period = DEFAULT_AVERAGE_PERIOD;
+ videorate->average_period_set = DEFAULT_AVERAGE_PERIOD;
+ videorate->max_rate = DEFAULT_MAX_RATE;
+ videorate->force_fps_n = DEFAULT_FORCE_FPS_N;
+ videorate->force_fps_d = DEFAULT_FORCE_FPS_D;
videorate->from_rate_numerator = 0;
videorate->from_rate_denominator = 0;
videorate->to_rate_numerator = 0;
videorate->to_rate_denominator = 0;
+
+ gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM (videorate), TRUE);
}
/* flush the oldest buffer */
GST_BUFFER_DURATION (outbuf) = videorate->next_ts - push_ts;
}
- /* adapt for looping, bring back to time in current segment. */
- GST_BUFFER_TIMESTAMP (outbuf) = push_ts - videorate->segment.accum;
-
- gst_buffer_set_caps (outbuf, GST_PAD_CAPS (videorate->srcpad));
+ /* We do not need to update time in VFR (variable frame rate) mode */
+ if (!videorate->drop_only) {
+ /* adapt for looping, bring back to time in current segment. */
+ GST_BUFFER_TIMESTAMP (outbuf) = push_ts - videorate->segment.accum;
+ }
GST_LOG_OBJECT (videorate,
"old is best, dup, pushing buffer outgoing ts %" GST_TIME_FORMAT,
GST_TIME_ARGS (push_ts));
- res = gst_pad_push (videorate->srcpad, outbuf);
+ res = gst_pad_push (GST_BASE_TRANSFORM_SRC_PAD (videorate), outbuf);
return res;
GST_LOG_OBJECT (videorate, "swap_prev: storing buffer %p in prev", buffer);
if (videorate->prevbuf)
gst_buffer_unref (videorate->prevbuf);
- videorate->prevbuf = buffer;
+ videorate->prevbuf = buffer != NULL ? gst_buffer_ref (buffer) : NULL;
videorate->prev_ts = time;
}
#define MAGIC_LIMIT 25
static gboolean
-gst_video_rate_event (GstPad * pad, GstEvent * event)
+gst_video_rate_event (GstBaseTransform * trans, GstEvent * event)
{
GstVideoRate *videorate;
- gboolean ret;
- videorate = GST_VIDEO_RATE (gst_pad_get_parent (pad));
+ videorate = GST_VIDEO_RATE (trans);
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_NEWSEGMENT:
break;
}
- ret = gst_pad_push_event (videorate->srcpad, event);
-
-done:
- gst_object_unref (videorate);
-
- return ret;
+ return TRUE;
/* ERRORS */
format_error:
{
GST_WARNING_OBJECT (videorate,
"Got segment but doesn't have GST_FORMAT_TIME value");
- gst_event_unref (event);
- ret = FALSE;
- goto done;
+ return FALSE;
}
}
static gboolean
-gst_video_rate_query (GstPad * pad, GstQuery * query)
+gst_video_rate_query (GstBaseTransform * trans, GstPadDirection direction,
+ GstQuery * query)
{
- GstVideoRate *videorate;
+ GstVideoRate *videorate = GST_VIDEO_RATE (trans);
gboolean res = FALSE;
+ GstPad *otherpad;
- videorate = GST_VIDEO_RATE (gst_pad_get_parent (pad));
+ otherpad = (direction == GST_PAD_SRC) ?
+ GST_BASE_TRANSFORM_SINK_PAD (trans) : GST_BASE_TRANSFORM_SRC_PAD (trans);
switch (GST_QUERY_TYPE (query)) {
case GST_QUERY_LATENCY:
GstClockTime min, max;
gboolean live;
guint64 latency;
+ guint64 avg_period;
GstPad *peer;
- if ((peer = gst_pad_get_peer (videorate->sinkpad))) {
+ GST_OBJECT_LOCK (videorate);
+ avg_period = videorate->average_period_set;
+ GST_OBJECT_UNLOCK (videorate);
+
+ if (avg_period == 0 && (peer = gst_pad_get_peer (otherpad))) {
if ((res = gst_pad_query (peer, query))) {
gst_query_parse_latency (query, &live, &min, &max);
gst_query_set_latency (query, live, min, max);
}
gst_object_unref (peer);
+ break;
}
- break;
+ /* Simple fallthrough if we don't have a latency or not a peer that we
+ * can't ask about its latency yet.. */
}
default:
- res = gst_pad_query_default (pad, query);
+ res = parent_class->query (trans, direction, query);
break;
}
- gst_object_unref (videorate);
return res;
}
static GstFlowReturn
-gst_video_rate_chain (GstPad * pad, GstBuffer * buffer)
+gst_video_rate_trans_ip_max_avg (GstVideoRate * videorate, GstBuffer * buf)
+{
+ GstClockTime ts = GST_BUFFER_TIMESTAMP (buf);
+
+ videorate->in++;
+
+ if (!GST_CLOCK_TIME_IS_VALID (ts) || videorate->wanted_diff == 0)
+ goto push;
+
+ /* drop frames if they exceed our output rate */
+ if (GST_CLOCK_TIME_IS_VALID (videorate->last_ts)) {
+ GstClockTimeDiff diff = ts - videorate->last_ts;
+
+ /* Drop buffer if its early compared to the desired frame rate and
+ * the current average is higher than the desired average
+ */
+ if (diff < videorate->wanted_diff &&
+ videorate->average < videorate->wanted_diff)
+ goto drop;
+
+ /* Update average */
+ if (videorate->average) {
+ GstClockTimeDiff wanted_diff;
+
+ if (G_LIKELY (videorate->average_period > videorate->wanted_diff))
+ wanted_diff = videorate->wanted_diff;
+ else
+ wanted_diff = videorate->average_period * 10;
+
+ videorate->average =
+ gst_util_uint64_scale_round (videorate->average,
+ videorate->average_period - wanted_diff,
+ videorate->average_period) +
+ gst_util_uint64_scale_round (diff, wanted_diff,
+ videorate->average_period);
+ } else {
+ videorate->average = diff;
+ }
+ }
+
+ videorate->last_ts = ts;
+
+push:
+ videorate->out++;
+ return GST_FLOW_OK;
+
+drop:
+ if (!videorate->silent)
+ gst_video_rate_notify_drop (videorate);
+ return GST_BASE_TRANSFORM_FLOW_DROPPED;
+}
+
+static GstFlowReturn
+gst_video_rate_prepare_output_buffer (GstBaseTransform * trans,
+ GstBuffer * input, gint size, GstCaps * caps, GstBuffer ** buf)
+{
+ if (gst_buffer_is_metadata_writable (input)) {
+ gst_buffer_set_caps (input, caps);
+ *buf = gst_buffer_ref (input);
+ } else {
+ *buf = gst_buffer_create_sub (input, 0, GST_BUFFER_SIZE (input));
+ gst_buffer_set_caps (*buf, caps);
+ }
+
+ return GST_FLOW_OK;
+}
+
+static GstFlowReturn
+gst_video_rate_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
{
GstVideoRate *videorate;
- GstFlowReturn res = GST_FLOW_OK;
+ GstFlowReturn res = GST_BASE_TRANSFORM_FLOW_DROPPED;
GstClockTime intime, in_ts, in_dur;
+ GstClockTime avg_period;
+ gboolean skip = FALSE;
- videorate = GST_VIDEO_RATE (GST_PAD_PARENT (pad));
+ videorate = GST_VIDEO_RATE (trans);
/* make sure the denominators are not 0 */
if (videorate->from_rate_denominator == 0 ||
videorate->to_rate_denominator == 0)
goto not_negotiated;
+ GST_OBJECT_LOCK (videorate);
+ avg_period = videorate->average_period_set;
+ GST_OBJECT_UNLOCK (videorate);
+
+ /* MT-safe switching between modes */
+ if (G_UNLIKELY (avg_period != videorate->average_period)) {
+ gboolean switch_mode = (avg_period == 0 || videorate->average_period == 0);
+ videorate->average_period = avg_period;
+ videorate->last_ts = GST_CLOCK_TIME_NONE;
+
+ if (switch_mode) {
+ if (avg_period) {
+ /* enabling average mode */
+ videorate->average = 0;
+ /* make sure no cached buffers from regular mode are left */
+ gst_video_rate_swap_prev (videorate, NULL, 0);
+ } else {
+ /* enable regular mode */
+ videorate->next_ts = GST_CLOCK_TIME_NONE;
+ skip = TRUE;
+ }
+
+ /* max averaging mode has a no latency, normal mode does */
+ gst_element_post_message (GST_ELEMENT (videorate),
+ gst_message_new_latency (GST_OBJECT (videorate)));
+ }
+ }
+
+ if (videorate->average_period > 0)
+ return gst_video_rate_trans_ip_max_avg (videorate, buffer);
+
in_ts = GST_BUFFER_TIMESTAMP (buffer);
in_dur = GST_BUFFER_DURATION (buffer);
if (!GST_CLOCK_TIME_IS_VALID (videorate->next_ts)) {
/* new buffer, we expect to output a buffer that matches the first
* timestamp in the segment */
- if (videorate->skip_to_first) {
+ if (videorate->skip_to_first || skip) {
videorate->next_ts = intime;
videorate->base_ts = in_ts - videorate->segment.start;
videorate->out_frame_count = 0;
videorate->drop++;
if (!videorate->silent)
gst_video_rate_notify_drop (videorate);
- gst_buffer_unref (buffer);
goto done;
}
/* output first one when its the best */
if (diff1 <= diff2) {
+ GstFlowReturn r;
count++;
/* on error the _flush function posted a warning already */
- if ((res =
- gst_video_rate_flush_prev (videorate,
+ if ((r = gst_video_rate_flush_prev (videorate,
count > 1)) != GST_FLOW_OK) {
- gst_buffer_unref (buffer);
+ res = r;
goto done;
}
}
+
+ /* Do not produce any dups. We can exit loop now */
+ if (videorate->drop_only)
+ break;
/* continue while the first one was the best, if they were equal avoid
* going into an infinite loop */
}
not_negotiated:
{
GST_WARNING_OBJECT (videorate, "no framerate negotiated");
- gst_buffer_unref (buffer);
res = GST_FLOW_NOT_NEGOTIATED;
goto done;
}
{
GST_WARNING_OBJECT (videorate,
"Got buffer with GST_CLOCK_TIME_NONE timestamp, discarding it");
- gst_buffer_unref (buffer);
+ res = GST_BASE_TRANSFORM_FLOW_DROPPED;
goto done;
}
}
+static gboolean
+gst_video_rate_start (GstBaseTransform * trans)
+{
+ gst_video_rate_reset (GST_VIDEO_RATE (trans));
+ return TRUE;
+}
+
+static gboolean
+gst_video_rate_stop (GstBaseTransform * trans)
+{
+ gst_video_rate_reset (GST_VIDEO_RATE (trans));
+ return TRUE;
+}
+
static void
gst_video_rate_set_property (GObject * object,
guint prop_id, const GValue * value, GParamSpec * pspec)
{
GstVideoRate *videorate = GST_VIDEO_RATE (object);
+ GST_OBJECT_LOCK (videorate);
switch (prop_id) {
- case ARG_SILENT:
+ case PROP_SILENT:
videorate->silent = g_value_get_boolean (value);
break;
- case ARG_NEW_PREF:
+ case PROP_NEW_PREF:
videorate->new_pref = g_value_get_double (value);
break;
- case ARG_SKIP_TO_FIRST:
+ case PROP_SKIP_TO_FIRST:
videorate->skip_to_first = g_value_get_boolean (value);
break;
+ case PROP_DROP_ONLY:
+ videorate->drop_only = g_value_get_boolean (value);
+ goto reconfigure;
+ break;
+ case PROP_AVERAGE_PERIOD:
+ videorate->average_period_set = g_value_get_uint64 (value);
+ break;
+ case PROP_MAX_RATE:
+ g_atomic_int_set (&videorate->max_rate, g_value_get_int (value));
+ goto reconfigure;
+ break;
+ case PROP_FORCE_FPS:
+ videorate->force_fps_n = gst_value_get_fraction_numerator (value);
+ videorate->force_fps_d = gst_value_get_fraction_denominator (value);
+ goto reconfigure;
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
+ GST_OBJECT_UNLOCK (videorate);
+ return;
+
+reconfigure:
+ GST_OBJECT_UNLOCK (videorate);
+ gst_base_transform_reconfigure (GST_BASE_TRANSFORM (videorate));
}
static void
{
GstVideoRate *videorate = GST_VIDEO_RATE (object);
+ GST_OBJECT_LOCK (videorate);
switch (prop_id) {
- case ARG_IN:
+ case PROP_IN:
g_value_set_uint64 (value, videorate->in);
break;
- case ARG_OUT:
+ case PROP_OUT:
g_value_set_uint64 (value, videorate->out);
break;
- case ARG_DUP:
+ case PROP_DUP:
g_value_set_uint64 (value, videorate->dup);
break;
- case ARG_DROP:
+ case PROP_DROP:
g_value_set_uint64 (value, videorate->drop);
break;
- case ARG_SILENT:
+ case PROP_SILENT:
g_value_set_boolean (value, videorate->silent);
break;
- case ARG_NEW_PREF:
+ case PROP_NEW_PREF:
g_value_set_double (value, videorate->new_pref);
break;
- case ARG_SKIP_TO_FIRST:
+ case PROP_SKIP_TO_FIRST:
g_value_set_boolean (value, videorate->skip_to_first);
break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ case PROP_DROP_ONLY:
+ g_value_set_boolean (value, videorate->drop_only);
break;
- }
-}
-
-static GstStateChangeReturn
-gst_video_rate_change_state (GstElement * element, GstStateChange transition)
-{
- GstStateChangeReturn ret;
- GstVideoRate *videorate;
-
- videorate = GST_VIDEO_RATE (element);
-
- switch (transition) {
- case GST_STATE_CHANGE_READY_TO_PAUSED:
- videorate->discont = TRUE;
- videorate->last_ts = -1;
+ case PROP_AVERAGE_PERIOD:
+ g_value_set_uint64 (value, videorate->average_period_set);
break;
- default:
+ case PROP_MAX_RATE:
+ g_value_set_int (value, g_atomic_int_get (&videorate->max_rate));
break;
- }
-
- ret = parent_class->change_state (element, transition);
-
- switch (transition) {
- case GST_STATE_CHANGE_PAUSED_TO_READY:
- gst_video_rate_reset (videorate);
+ case PROP_FORCE_FPS:
+ gst_value_set_fraction (value, videorate->force_fps_n,
+ videorate->force_fps_d);
break;
default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
-
- return ret;
+ GST_OBJECT_UNLOCK (videorate);
}
static gboolean
#define __GST_VIDEO_RATE_H__
#include <gst/gst.h>
+#include <gst/base/gstbasetransform.h>
G_BEGIN_DECLS
*/
struct _GstVideoRate
{
- GstElement element;
-
- GstPad *sinkpad, *srcpad;
+ GstBaseTransform parent;
/* video state */
gint from_rate_numerator, from_rate_denominator;
gboolean discont;
guint64 last_ts; /* Timestamp of last input buffer */
+ guint64 average_period;
+ GstClockTimeDiff wanted_diff; /* target average diff */
+ GstClockTimeDiff average; /* moving average period */
+
/* segment handling */
GstSegment segment;
gboolean silent;
gdouble new_pref;
gboolean skip_to_first;
+ gboolean drop_only;
+ guint64 average_period_set;
+ gint force_fps_n, force_fps_d;
+
+ volatile int max_rate;
};
struct _GstVideoRateClass
{
- GstElementClass parent_class;
+ GstBaseTransformClass parent_class;
};
GType gst_video_rate_get_type (void);
vs_image.c \
vs_scanline.c \
vs_4tap.c \
- vs_fill_borders.c
+ vs_fill_borders.c \
+ vs_lanczos.c
nodist_libgstvideoscale_la_SOURCES = $(ORC_NODIST_SOURCES)
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstvideoscale_la-vs_image.lo \
libgstvideoscale_la-vs_scanline.lo \
libgstvideoscale_la-vs_4tap.lo \
- libgstvideoscale_la-vs_fill_borders.lo
+ libgstvideoscale_la-vs_fill_borders.lo \
+ libgstvideoscale_la-vs_lanczos.lo
am__objects_1 = libgstvideoscale_la-tmp-orc.lo
nodist_libgstvideoscale_la_OBJECTS = $(am__objects_1)
libgstvideoscale_la_OBJECTS = $(am_libgstvideoscale_la_OBJECTS) \
$(nodist_libgstvideoscale_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
libgstvideoscale_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstvideoscale_la_LIBTOOLFLAGS) $(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 = $(libgstvideoscale_la_SOURCES) \
$(nodist_libgstvideoscale_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
vs_image.c \
vs_scanline.c \
vs_4tap.c \
- vs_fill_borders.c
+ vs_fill_borders.c \
+ vs_lanczos.c
nodist_libgstvideoscale_la_SOURCES = $(ORC_NODIST_SOURCES)
libgstvideoscale_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(ORC_CFLAGS)
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstvideoscale.la: $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_DEPENDENCIES)
+libgstvideoscale.la: $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_DEPENDENCIES) $(EXTRA_libgstvideoscale_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstvideoscale_la_LINK) -rpath $(plugindir) $(libgstvideoscale_la_OBJECTS) $(libgstvideoscale_la_LIBADD) $(LIBS)
mostlyclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_4tap.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_image.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_lanczos.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstvideoscale_la-vs_scanline.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 $@ $<
libgstvideoscale_la-gstvideoscale.lo: gstvideoscale.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-gstvideoscale.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-gstvideoscale.Tpo -c -o libgstvideoscale_la-gstvideoscale.lo `test -f 'gstvideoscale.c' || echo '$(srcdir)/'`gstvideoscale.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-gstvideoscale.Tpo $(DEPDIR)/libgstvideoscale_la-gstvideoscale.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideoscale.c' object='libgstvideoscale_la-gstvideoscale.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideoscale.c' object='libgstvideoscale_la-gstvideoscale.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-gstvideoscale.lo `test -f 'gstvideoscale.c' || echo '$(srcdir)/'`gstvideoscale.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-gstvideoscale.lo `test -f 'gstvideoscale.c' || echo '$(srcdir)/'`gstvideoscale.c
libgstvideoscale_la-vs_image.lo: vs_image.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_image.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_image.Tpo -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_image.Tpo $(DEPDIR)/libgstvideoscale_la-vs_image.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vs_image.c' object='libgstvideoscale_la-vs_image.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vs_image.c' object='libgstvideoscale_la-vs_image.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_image.lo `test -f 'vs_image.c' || echo '$(srcdir)/'`vs_image.c
libgstvideoscale_la-vs_scanline.lo: vs_scanline.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_scanline.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_scanline.Tpo -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_scanline.Tpo $(DEPDIR)/libgstvideoscale_la-vs_scanline.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vs_scanline.c' object='libgstvideoscale_la-vs_scanline.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vs_scanline.c' object='libgstvideoscale_la-vs_scanline.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_scanline.lo `test -f 'vs_scanline.c' || echo '$(srcdir)/'`vs_scanline.c
libgstvideoscale_la-vs_4tap.lo: vs_4tap.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_4tap.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_4tap.Tpo -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_4tap.Tpo $(DEPDIR)/libgstvideoscale_la-vs_4tap.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vs_4tap.c' object='libgstvideoscale_la-vs_4tap.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vs_4tap.c' object='libgstvideoscale_la-vs_4tap.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_4tap.lo `test -f 'vs_4tap.c' || echo '$(srcdir)/'`vs_4tap.c
libgstvideoscale_la-vs_fill_borders.lo: vs_fill_borders.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_fill_borders.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Tpo -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Tpo $(DEPDIR)/libgstvideoscale_la-vs_fill_borders.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='vs_fill_borders.c' object='libgstvideoscale_la-vs_fill_borders.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vs_fill_borders.c' object='libgstvideoscale_la-vs_fill_borders.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_fill_borders.lo `test -f 'vs_fill_borders.c' || echo '$(srcdir)/'`vs_fill_borders.c
+
+libgstvideoscale_la-vs_lanczos.lo: vs_lanczos.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-vs_lanczos.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Tpo -c -o libgstvideoscale_la-vs_lanczos.lo `test -f 'vs_lanczos.c' || echo '$(srcdir)/'`vs_lanczos.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Tpo $(DEPDIR)/libgstvideoscale_la-vs_lanczos.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='vs_lanczos.c' object='libgstvideoscale_la-vs_lanczos.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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-vs_lanczos.lo `test -f 'vs_lanczos.c' || echo '$(srcdir)/'`vs_lanczos.c
libgstvideoscale_la-tmp-orc.lo: tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -MT libgstvideoscale_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideoscale_la-tmp-orc.Tpo -c -o libgstvideoscale_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideoscale_la-tmp-orc.Tpo $(DEPDIR)/libgstvideoscale_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstvideoscale_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstvideoscale_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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_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 $(libgstvideoscale_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideoscale_la_CFLAGS) $(CFLAGS) -c -o libgstvideoscale_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
mostlyclean-libtool:
-rm -f *.lo
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:
#define DEFAULT_PROP_METHOD GST_VIDEO_SCALE_BILINEAR
#define DEFAULT_PROP_ADD_BORDERS FALSE
+#define DEFAULT_PROP_SHARPNESS 1.0
+#define DEFAULT_PROP_SHARPEN 0.0
+#define DEFAULT_PROP_DITHER FALSE
+#define DEFAULT_PROP_SUBMETHOD 1
+#define DEFAULT_PROP_ENVELOPE 2.0
enum
{
PROP_0,
PROP_METHOD,
- PROP_ADD_BORDERS
- /* FILL ME */
+ PROP_ADD_BORDERS,
+ PROP_SHARPNESS,
+ PROP_SHARPEN,
+ PROP_DITHER,
+ PROP_SUBMETHOD,
+ PROP_ENVELOPE
};
#undef GST_VIDEO_SIZE_RANGE
{GST_VIDEO_SCALE_NEAREST, "Nearest Neighbour", "nearest-neighbour"},
{GST_VIDEO_SCALE_BILINEAR, "Bilinear", "bilinear"},
{GST_VIDEO_SCALE_4TAP, "4-tap", "4-tap"},
+ {GST_VIDEO_SCALE_LANCZOS, "Lanczos", "lanczos"},
{0, NULL, NULL},
};
gst_video_scale_base_init (gpointer g_class)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
+ GstPadTemplate *pad_template;
gst_element_class_set_details_simple (element_class,
"Video scaler", "Filter/Converter/Video/Scaler",
"Resizes video", "Wim Taymans <wim.taymans@chello.be>");
- gst_element_class_add_pad_template (element_class,
- gst_video_scale_sink_template_factory ());
- gst_element_class_add_pad_template (element_class,
- gst_video_scale_src_template_factory ());
+ pad_template = gst_video_scale_sink_template_factory ();
+ gst_element_class_add_pad_template (element_class, pad_template);
+ gst_object_unref (pad_template);
+ pad_template = gst_video_scale_src_template_factory ();
+ gst_element_class_add_pad_template (element_class, pad_template);
+ gst_object_unref (pad_template);
}
static void
DEFAULT_PROP_ADD_BORDERS,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class, PROP_SHARPNESS,
+ g_param_spec_double ("sharpness", "Sharpness",
+ "Sharpness of filter", 0.0, 2.0, DEFAULT_PROP_SHARPNESS,
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (gobject_class, PROP_SHARPEN,
+ g_param_spec_double ("sharpen", "Sharpen",
+ "Sharpening", 0.0, 1.0, DEFAULT_PROP_SHARPEN,
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (gobject_class, PROP_DITHER,
+ g_param_spec_boolean ("dither", "Dither",
+ "Add dither (only used for Lanczos method)",
+ DEFAULT_PROP_DITHER,
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+#if 0
+ /* I am hiding submethod for now, since it's poorly named, poorly
+ * documented, and will probably just get people into trouble. */
+ g_object_class_install_property (gobject_class, PROP_SUBMETHOD,
+ g_param_spec_int ("submethod", "submethod",
+ "submethod", 0, 3, DEFAULT_PROP_SUBMETHOD,
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+#endif
+
+ g_object_class_install_property (gobject_class, PROP_ENVELOPE,
+ g_param_spec_double ("envelope", "Envelope",
+ "Size of filter envelope", 0.0, 5.0, DEFAULT_PROP_ENVELOPE,
+ G_PARAM_CONSTRUCT | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
trans_class->transform_caps =
GST_DEBUG_FUNCPTR (gst_video_scale_transform_caps);
trans_class->set_caps = GST_DEBUG_FUNCPTR (gst_video_scale_set_caps);
videoscale->tmp_buf = NULL;
videoscale->method = DEFAULT_PROP_METHOD;
videoscale->add_borders = DEFAULT_PROP_ADD_BORDERS;
+ videoscale->submethod = DEFAULT_PROP_SUBMETHOD;
+ videoscale->sharpness = DEFAULT_PROP_SHARPNESS;
+ videoscale->sharpen = DEFAULT_PROP_SHARPEN;
+ videoscale->dither = DEFAULT_PROP_DITHER;
+ videoscale->envelope = DEFAULT_PROP_ENVELOPE;
}
static void
GST_OBJECT_UNLOCK (vscale);
gst_base_transform_reconfigure (GST_BASE_TRANSFORM_CAST (vscale));
break;
+ case PROP_SHARPNESS:
+ GST_OBJECT_LOCK (vscale);
+ vscale->sharpness = g_value_get_double (value);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_SHARPEN:
+ GST_OBJECT_LOCK (vscale);
+ vscale->sharpen = g_value_get_double (value);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_DITHER:
+ GST_OBJECT_LOCK (vscale);
+ vscale->dither = g_value_get_boolean (value);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_SUBMETHOD:
+ GST_OBJECT_LOCK (vscale);
+ vscale->submethod = g_value_get_int (value);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_ENVELOPE:
+ GST_OBJECT_LOCK (vscale);
+ vscale->envelope = g_value_get_double (value);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
g_value_set_boolean (value, vscale->add_borders);
GST_OBJECT_UNLOCK (vscale);
break;
+ case PROP_SHARPNESS:
+ GST_OBJECT_LOCK (vscale);
+ g_value_set_double (value, vscale->sharpness);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_SHARPEN:
+ GST_OBJECT_LOCK (vscale);
+ g_value_set_double (value, vscale->sharpen);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_DITHER:
+ GST_OBJECT_LOCK (vscale);
+ g_value_set_boolean (value, vscale->dither);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_SUBMETHOD:
+ GST_OBJECT_LOCK (vscale);
+ g_value_set_int (value, vscale->submethod);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
+ case PROP_ENVELOPE:
+ GST_OBJECT_LOCK (vscale);
+ g_value_set_double (value, vscale->envelope);
+ GST_OBJECT_UNLOCK (vscale);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case GST_VIDEO_SCALE_4TAP:
vs_image_scale_4tap_RGBA (&dest, &src, videoscale->tmp_buf);
break;
+ case GST_VIDEO_SCALE_LANCZOS:
+ vs_image_scale_lanczos_AYUV (&dest, &src, videoscale->tmp_buf,
+ videoscale->sharpness, videoscale->dither, videoscale->submethod,
+ videoscale->envelope, videoscale->sharpen);
+ break;
default:
goto unknown_mode;
}
vs_image_scale_4tap_Y (&dest_u, &src_u, videoscale->tmp_buf);
vs_image_scale_4tap_Y (&dest_v, &src_v, videoscale->tmp_buf);
break;
+ case GST_VIDEO_SCALE_LANCZOS:
+ vs_image_scale_lanczos_Y (&dest, &src, videoscale->tmp_buf,
+ videoscale->sharpness, videoscale->dither, videoscale->submethod,
+ videoscale->envelope, videoscale->sharpen);
+ vs_image_scale_lanczos_Y (&dest_u, &src_u, videoscale->tmp_buf,
+ videoscale->sharpness, videoscale->dither, videoscale->submethod,
+ videoscale->envelope, videoscale->sharpen);
+ vs_image_scale_lanczos_Y (&dest_v, &src_v, videoscale->tmp_buf,
+ videoscale->sharpness, videoscale->dither, videoscale->submethod,
+ videoscale->envelope, videoscale->sharpen);
+ break;
default:
goto unknown_mode;
}
* @GST_VIDEO_SCALE_NEAREST: use nearest neighbour scaling (fast and ugly)
* @GST_VIDEO_SCALE_BILINEAR: use bilinear scaling (slower but prettier).
* @GST_VIDEO_SCALE_4TAP: use a 4-tap filter for scaling (slow).
+ * @GST_VIDEO_SCALE_LANCZOS: use a multitap Lanczos filter for scaling (slow).
*
* The videoscale method to use.
*/
typedef enum {
GST_VIDEO_SCALE_NEAREST,
GST_VIDEO_SCALE_BILINEAR,
- GST_VIDEO_SCALE_4TAP
+ GST_VIDEO_SCALE_4TAP,
+ GST_VIDEO_SCALE_LANCZOS
} GstVideoScaleMethod;
typedef struct _GstVideoScale GstVideoScale;
struct _GstVideoScale {
GstVideoFilter element;
+ /* properties */
GstVideoScaleMethod method;
gboolean add_borders;
+ double sharpness;
+ double sharpen;
+ gboolean dither;
+ int submethod;
+ double envelope;
/* negotiated stuff */
GstVideoFormat format;
#if 0
if (x == 0)
return 1;
- return sin (M_PI * x) / (M_PI * x) * (1 - 0.25 * x * x);
+ return sin (G_PI * x) / (G_PI * x) * (1 - 0.25 * x * x);
#endif
#if 1
if (x == 0)
return 1;
- return sin (M_PI * x) / (M_PI * x);
+ return sin (G_PI * x) / (G_PI * x);
#endif
}
uint8_t *data;
uint64_t v;
- v = (val[0] << 8) | (val[1] << 24) | (((guint64) val[2]) << 40) | (((guint64)
- val[3]) << 56);
+ v = (((guint32) val[0]) << 8) | (((guint32) val[1]) << 24) |
+ (((guint64) val[2]) << 40) | (((guint64) val[3]) << 56);
data = dest->real_pixels;
for (i = 0; i < top; i++) {
#ifndef __VS_IMAGE_H__
#define __VS_IMAGE_H__
+#include <glib.h>
#include <_stdint.h>
typedef struct _VSImage VSImage;
uint8_t *tmpbuf);
void vs_image_scale_linear_RGBA (const VSImage *dest, const VSImage *src,
uint8_t *tmpbuf);
+void vs_image_scale_lanczos_AYUV (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
+ double a, double sharpen);
void vs_image_scale_nearest_RGB (const VSImage *dest, const VSImage *src,
uint8_t *tmpbuf);
uint8_t *tmpbuf);
void vs_image_scale_linear_Y (const VSImage *dest, const VSImage *src,
uint8_t *tmpbuf);
+void vs_image_scale_lanczos_Y (const VSImage *dest, const VSImage *src,
+ uint8_t *tmpbuf, double sharpness, gboolean dither, int submethod,
+ double a, double sharpen);
void vs_image_scale_nearest_RGB565 (const VSImage *dest, const VSImage *src,
uint8_t *tmpbuf);
--- /dev/null
+/*
+ * Image Scaling Functions
+ * Copyright (c) 2011 David A. Schleef <ds@schleef.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ *
+ * Modified Lanczos scaling algorithm
+ * ==================================
+ *
+ * This algorithm was developed by the author. The primary goals of
+ * the algorithm are high-quality video downscaling for medium scale
+ * factors (in the range of 1.3x to 5.0x) using methods that can be
+ * converted to SIMD code. Concerns with existing algorithms were
+ * mainly related to either over-soft filtering (Lanczos) or aliasing
+ * (bilinear or any other method with inadequate sampling).
+ *
+ * The problems with bilinear scaling are apparent when downscaling
+ * more than a factor of 2. For example, when downscaling by a factor
+ * of 3, only two-thirds of the input pixels contribute to the output
+ * pixels. This is only considering scaling in one direction; after
+ * scaling both vertically and horizontally in a 2-D image, fewer than
+ * half of the input pixels contribute to the output, so it should not
+ * be surprising that the output is suboptimal.
+ *
+ * The problems with Lanczos scaling are more subtle. From a theoretical
+ * perspective, Lanczos is an optimal algorithm for resampling equally-
+ * spaced values. This theoretical perspective is based on analysis
+ * done in frequency space, thus, Lanczos works very well for audio
+ * resampling, since the ear hears primarily in frequency space. The
+ * human visual system is sensitive primarily in the spatial domain,
+ * therefore any resampling algorithm should take this into account.
+ * This difference is immediately clear in the size of resampling
+ * window or envelope that is chosen for resampling: for audio, an
+ * envelope of a=64 is typical, in image scaling, the envelope is
+ * usually a=2 or a=3.
+ *
+ * One result of the HVS being sensitive in the spatial domain (and
+ * also probably due to oversampling capabilities of the retina and
+ * visual cortex) is that it is less sensitive to the exact magnitude
+ * of high-frequency visual signals than to the appropriate amount of
+ * energy in the nearby frequency band. A Lanczos kernel with a=2
+ * or a=3 strongly decreases the amount of energy in the high frequency
+ * bands. The energy in this area can be increased by increasing a,
+ * which brings in energy from different areas of the image (bad for
+ * reasons mentioned above), or by oversampling the input data. We
+ * have chosen two methods for doing the latter. Firstly, there is
+ * a sharpness parameter, which increases the cutoff frequency of the
+ * filter, aliasing higher frequency noise into the passband. And
+ * secondly, there is the sharpen parameter, which increases the
+ * contribution of high-frequency (but in-band) components.
+ *
+ * An alternate explanation of the usefulness of a sharpening filter
+ * is that many natural images have a roughly 1/f spectrum. In order
+ * for a downsampled image to look more "natural" when high frequencies
+ * are removed, the frequencies in the pass band near the cutoff
+ * frequency are amplified, causing the spectrum to be more roughly
+ * 1/f. I said "roughly", not "literally".
+ *
+ * This alternate explanation is useful for understanding the author's
+ * secondary motivation for developing this algorithm, namely, as a
+ * method of video compression. Several recent techniques (such as
+ * HTTP Live Streaming and SVC) use image scaling as a method to get
+ * increased compression out of nominally non-scalable codecs such as
+ * H.264. For optimal quality, it is thusly important to consider
+ * the scaler and encoder as a combined unit. Tuning of the sharpness
+ * and sharpen parameters was performed using the Toro encoder tuner,
+ * where scaled and encoded video was compared to unscaled and encoded
+ * video. This tuning suggested values that were very close to the
+ * values chosen by manual inspection of scaled images and video.
+ *
+ * The optimal values of sharpen and sharpness were slightly different
+ * depending whether the comparison was still images or video. Video
+ * comparisons were more sensitive to aliasing, since the aliasing
+ * artifacts tended to move or "crawl" around the video. The default
+ * values are for video; image scaling may prefer higher values.
+ *
+ * A number of related techniques were rejected for various reasons.
+ * An early technique of selecting the sharpness factor locally based
+ * on edge detection (in order to use a higher sharpness values without
+ * the corresponding aliasing on edges) worked very well for still
+ * images, but caused too much "crawling" on textures in video. Also,
+ * this method is slow, as it does not parallelize well.
+ *
+ * Non-separable techniques were rejected because the fastest would
+ * have been at least 4x slower.
+ *
+ * It is infrequently appreciated that image scaling should ideally be
+ * done in linear light space. Converting to linear light space has
+ * a similar effect to a sharpening filter. This approach was not
+ * taken because the added benefit is minor compared to the additional
+ * computational cost. Morever, the benefit is decreased by increasing
+ * the strength of the sharpening filter.
+ *
+ */
+#include <string.h>
+
+#include "vs_scanline.h"
+#include "vs_image.h"
+
+#include "gstvideoscaleorc.h"
+#include <gst/gst.h>
+#include <math.h>
+
+#define NEED_CLAMP(x,a,b) ((x) < (a) || (x) > (b))
+
+#define ROUND_UP_2(x) (((x)+1)&~1)
+#define ROUND_UP_4(x) (((x)+3)&~3)
+#define ROUND_UP_8(x) (((x)+7)&~7)
+
+#define SRC_LINE(i) (scale->src->pixels + scale->src->stride * (i))
+
+#define TMP_LINE_S16(i) ((gint16 *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_S32(i) ((gint32 *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_FLOAT(i) ((float *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_DOUBLE(i) ((double *)scale->tmpdata + (i)*(scale->dest->width))
+#define TMP_LINE_S16_AYUV(i) ((gint16 *)scale->tmpdata + (i)*4*(scale->dest->width))
+#define TMP_LINE_S32_AYUV(i) ((gint32 *)scale->tmpdata + (i)*4*(scale->dest->width))
+#define TMP_LINE_FLOAT_AYUV(i) ((float *)scale->tmpdata + (i)*4*(scale->dest->width))
+#define TMP_LINE_DOUBLE_AYUV(i) ((double *)scale->tmpdata + (i)*4*(scale->dest->width))
+
+#define PTR_OFFSET(a,b) ((void *)((char *)(a) + (b)))
+
+typedef void (*HorizResampleFunc) (void *dest, const gint32 * offsets,
+ const void *taps, const void *src, int n_taps, int shift, int n);
+
+typedef struct _Scale1D Scale1D;
+struct _Scale1D
+{
+ int n;
+ double offset;
+ double scale;
+
+ double fx;
+ double ex;
+ int dx;
+
+ int n_taps;
+ gint32 *offsets;
+ void *taps;
+};
+
+typedef struct _Scale Scale;
+struct _Scale
+{
+ const VSImage *dest;
+ const VSImage *src;
+
+ double sharpness;
+ gboolean dither;
+
+ void *tmpdata;
+
+ HorizResampleFunc horiz_resample_func;
+
+ Scale1D x_scale1d;
+ Scale1D y_scale1d;
+};
+
+static void
+vs_image_scale_lanczos_Y_int16 (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen);
+static void vs_image_scale_lanczos_Y_int32 (const VSImage * dest,
+ const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+ double a, double sharpen);
+static void vs_image_scale_lanczos_Y_float (const VSImage * dest,
+ const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+ double a, double sharpen);
+static void vs_image_scale_lanczos_Y_double (const VSImage * dest,
+ const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+ double a, double sharpen);
+static void
+vs_image_scale_lanczos_AYUV_int16 (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen);
+static void vs_image_scale_lanczos_AYUV_int32 (const VSImage * dest,
+ const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+ double a, double sharpen);
+static void vs_image_scale_lanczos_AYUV_float (const VSImage * dest,
+ const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+ double a, double sharpen);
+static void vs_image_scale_lanczos_AYUV_double (const VSImage * dest,
+ const VSImage * src, uint8_t * tmpbuf, double sharpness, gboolean dither,
+ double a, double sharpen);
+
+static double
+sinc (double x)
+{
+ if (x == 0)
+ return 1;
+ return sin (G_PI * x) / (G_PI * x);
+}
+
+static double
+envelope (double x)
+{
+ if (x <= -1 || x >= 1)
+ return 0;
+ return sinc (x);
+}
+
+static int
+scale1d_get_n_taps (int src_size, int dest_size, double a, double sharpness)
+{
+ double scale;
+ double fx;
+ int dx;
+
+ scale = src_size / (double) dest_size;
+ if (scale > 1.0) {
+ fx = (1.0 / scale) * sharpness;
+ } else {
+ fx = (1.0) * sharpness;
+ }
+ dx = ceil (a / fx);
+
+ return 2 * dx;
+}
+
+static void
+scale1d_cleanup (Scale1D * scale)
+{
+ g_free (scale->taps);
+ g_free (scale->offsets);
+}
+
+/*
+ * Calculates a set of taps for each destination element in double
+ * format. Each set of taps sums to 1.0.
+ *
+ */
+static void
+scale1d_calculate_taps (Scale1D * scale, int src_size, int dest_size,
+ int n_taps, double a, double sharpness, double sharpen)
+{
+ int j;
+ double *tap_array;
+ gint32 *offsets;
+ double scale_offset;
+ double scale_increment;
+ int dx;
+ double fx;
+ double ex;
+
+ scale->scale = src_size / (double) dest_size;
+ scale->offset = scale->scale / 2 - 0.5;
+
+ if (scale->scale > 1.0) {
+ scale->fx = (1.0 / scale->scale) * sharpness;
+ } else {
+ scale->fx = (1.0) * sharpness;
+ }
+ scale->ex = scale->fx / a;
+ scale->dx = ceil (a / scale->fx);
+
+ g_assert (n_taps >= 2 * scale->dx);
+ scale->n_taps = n_taps;
+
+ scale->taps = g_malloc (sizeof (double) * scale->n_taps * dest_size);
+ scale->offsets = g_malloc (sizeof (gint32) * dest_size);
+ tap_array = scale->taps;
+ offsets = scale->offsets;
+
+ scale_offset = scale->offset;
+ scale_increment = scale->scale;
+ dx = scale->dx;
+ fx = scale->fx;
+ ex = scale->ex;
+
+ for (j = 0; j < dest_size; j++) {
+ double x;
+ int xi;
+ int l;
+ double weight;
+ double *taps;
+
+ x = scale_offset + scale_increment * j;
+ x = CLAMP (x, 0, src_size);
+ xi = ceil (x) - dx;
+
+ offsets[j] = xi;
+ weight = 0;
+ taps = tap_array + j * n_taps;
+
+ for (l = 0; l < n_taps; l++) {
+ int xl = xi + l;
+ taps[l] = sinc ((x - xl) * fx) * envelope ((x - xl) * ex);
+ taps[l] -= sharpen * envelope ((x - xl) * ex);
+ weight += taps[l];
+ }
+ g_assert (envelope ((x - (xi - 1)) * ex) == 0);
+ g_assert (envelope ((x - (xi + n_taps)) * ex) == 0);
+ for (l = 0; l < n_taps; l++) {
+ taps[l] /= weight;
+ }
+
+ if (xi < 0) {
+ int shift = -xi;
+
+ for (l = 0; l < shift; l++) {
+ taps[shift] += taps[l];
+ }
+ for (l = 0; l < n_taps - shift; l++) {
+ taps[l] = taps[shift + l];
+ }
+ for (; l < n_taps; l++) {
+ taps[l] = 0;
+ }
+ offsets[j] += shift;
+ }
+
+ if (xi > src_size - n_taps) {
+ int shift = xi - (src_size - n_taps);
+
+ for (l = 0; l < shift; l++) {
+ taps[n_taps - shift - 1] += taps[n_taps - shift + l];
+ }
+ for (l = 0; l < n_taps - shift; l++) {
+ taps[n_taps - 1 - l] = taps[n_taps - 1 - shift - l];
+ }
+ for (l = 0; l < shift; l++) {
+ taps[l] = 0;
+ }
+ offsets[j] -= shift;
+ }
+ }
+}
+
+/*
+ * Calculates a set of taps for each destination element in float
+ * format. Each set of taps sums to 1.0.
+ */
+static void
+scale1d_calculate_taps_float (Scale1D * scale, int src_size, int dest_size,
+ int n_taps, double a, double sharpness, double sharpen)
+{
+ double *taps_d;
+ float *taps_f;
+ int j;
+
+ scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
+ sharpen);
+
+ taps_d = scale->taps;
+ taps_f = g_malloc (sizeof (float) * scale->n_taps * dest_size);
+
+ for (j = 0; j < dest_size * n_taps; j++) {
+ taps_f[j] = taps_d[j];
+ }
+
+ g_free (taps_d);
+ scale->taps = taps_f;
+}
+
+/*
+ * Calculates a set of taps for each destination element in gint32
+ * format. Each set of taps sums to (very nearly) (1<<shift). A
+ * typical value for shift is 10 to 15, so that applying the taps to
+ * uint8 values and summing will fit in a (signed) int32.
+ */
+static void
+scale1d_calculate_taps_int32 (Scale1D * scale, int src_size, int dest_size,
+ int n_taps, double a, double sharpness, double sharpen, int shift)
+{
+ double *taps_d;
+ gint32 *taps_i;
+ int i;
+ int j;
+ double multiplier;
+
+ scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
+ sharpen);
+
+ taps_d = scale->taps;
+ taps_i = g_malloc (sizeof (gint32) * scale->n_taps * dest_size);
+
+ multiplier = (1 << shift);
+
+ for (j = 0; j < dest_size; j++) {
+ for (i = 0; i < n_taps; i++) {
+ taps_i[j * n_taps + i] =
+ floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+ }
+ }
+
+ g_free (taps_d);
+ scale->taps = taps_i;
+}
+
+/*
+ * Calculates a set of taps for each destination element in gint16
+ * format. Each set of taps sums to (1<<shift). A typical value
+ * for shift is 7, so that applying the taps to uint8 values and
+ * summing will fit in a (signed) int16.
+ */
+static void
+scale1d_calculate_taps_int16 (Scale1D * scale, int src_size, int dest_size,
+ int n_taps, double a, double sharpness, double sharpen, int shift)
+{
+ double *taps_d;
+ gint16 *taps_i;
+ int i;
+ int j;
+ double multiplier;
+
+ scale1d_calculate_taps (scale, src_size, dest_size, n_taps, a, sharpness,
+ sharpen);
+
+ taps_d = scale->taps;
+ taps_i = g_malloc (sizeof (gint16) * scale->n_taps * dest_size);
+
+ multiplier = (1 << shift);
+
+ /* Various methods for converting floating point taps to integer.
+ * The dB values are the SSIM value between scaling an image via
+ * the floating point pathway vs. the integer pathway using the
+ * given code to generate the taps. Only one image was tested,
+ * scaling from 1920x1080 to 640x360. Several variations of the
+ * methods were also tested, with nothing appearing useful. */
+#if 0
+ /* Standard round to integer. This causes bad DC errors. */
+ /* 44.588 dB */
+ for (j = 0; j < dest_size; j++) {
+ for (i = 0; i < n_taps; i++) {
+ taps_i[j * n_taps + i] =
+ floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+ }
+ }
+#endif
+#if 0
+ /* Dithering via error propogation. Works pretty well, but
+ * really we want to propogate errors across rows, which would
+ * mean having several sets of tap arrays. Possible, but more work,
+ * and it may not even be better. */
+ /* 57.0961 dB */
+ {
+ double err = 0;
+ for (j = 0; j < dest_size; j++) {
+ for (i = 0; i < n_taps; i++) {
+ err += taps_d[j * n_taps + i] * multiplier;
+ taps_i[j * n_taps + i] = floor (err);
+ err -= floor (err);
+ }
+ }
+ }
+#endif
+#if 1
+ /* Round to integer, but with an adjustable bias that we use to
+ * eliminate the DC error. This search method is a bit crude, and
+ * could perhaps be improved somewhat. */
+ /* 60.4851 dB */
+ for (j = 0; j < dest_size; j++) {
+ int k;
+ for (k = 0; k < 100; k++) {
+ int sum = 0;
+ double offset;
+
+ offset = k * 0.01;
+ for (i = 0; i < n_taps; i++) {
+ taps_i[j * n_taps + i] =
+ floor (offset + taps_d[j * n_taps + i] * multiplier);
+ sum += taps_i[j * n_taps + i];
+ }
+
+ if (sum >= (1 << shift))
+ break;
+ }
+ }
+#endif
+#if 0
+ /* Round to integer, but adjust the multiplier. The search method is
+ * wrong a lot, but was sufficient enough to calculate dB error. */
+ /* 58.6517 dB */
+ for (j = 0; j < dest_size; j++) {
+ int k;
+ int sum = 0;
+ for (k = 0; k < 200; k++) {
+ sum = 0;
+
+ multiplier = (1 << shift) - 1.0 + k * 0.01;
+ for (i = 0; i < n_taps; i++) {
+ taps_i[j * n_taps + i] =
+ floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+ sum += taps_i[j * n_taps + i];
+ }
+
+ if (sum >= (1 << shift))
+ break;
+ }
+ if (sum != (1 << shift)) {
+ GST_ERROR ("%g %d", multiplier, sum);
+ }
+ }
+#endif
+#if 0
+ /* Round to integer, but subtract the error from the largest tap */
+ /* 58.3677 dB */
+ for (j = 0; j < dest_size; j++) {
+ int err = -multiplier;
+ for (i = 0; i < n_taps; i++) {
+ taps_i[j * n_taps + i] =
+ floor (0.5 + taps_d[j * n_taps + i] * multiplier);
+ err += taps_i[j * n_taps + i];
+ }
+ if (taps_i[j * n_taps + (n_taps / 2 - 1)] >
+ taps_i[j * n_taps + (n_taps / 2)]) {
+ taps_i[j * n_taps + (n_taps / 2 - 1)] -= err;
+ } else {
+ taps_i[j * n_taps + (n_taps / 2)] -= err;
+ }
+ }
+#endif
+
+ g_free (taps_d);
+ scale->taps = taps_i;
+}
+
+
+void
+vs_image_scale_lanczos_Y (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
+ double a, double sharpen)
+{
+ switch (submethod) {
+ case 0:
+ default:
+ vs_image_scale_lanczos_Y_int16 (dest, src, tmpbuf, sharpness, dither, a,
+ sharpen);
+ break;
+ case 1:
+ vs_image_scale_lanczos_Y_int32 (dest, src, tmpbuf, sharpness, dither, a,
+ sharpen);
+ break;
+ case 2:
+ vs_image_scale_lanczos_Y_float (dest, src, tmpbuf, sharpness, dither, a,
+ sharpen);
+ break;
+ case 3:
+ vs_image_scale_lanczos_Y_double (dest, src, tmpbuf, sharpness, dither, a,
+ sharpen);
+ break;
+ }
+}
+
+void
+vs_image_scale_lanczos_AYUV (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, int submethod,
+ double a, double sharpen)
+{
+ switch (submethod) {
+ case 0:
+ default:
+ vs_image_scale_lanczos_AYUV_int16 (dest, src, tmpbuf, sharpness, dither,
+ a, sharpen);
+ break;
+ case 1:
+ vs_image_scale_lanczos_AYUV_int32 (dest, src, tmpbuf, sharpness, dither,
+ a, sharpen);
+ break;
+ case 2:
+ vs_image_scale_lanczos_AYUV_float (dest, src, tmpbuf, sharpness, dither,
+ a, sharpen);
+ break;
+ case 3:
+ vs_image_scale_lanczos_AYUV_double (dest, src, tmpbuf, sharpness, dither,
+ a, sharpen);
+ break;
+ }
+}
+
+
+
+#define RESAMPLE_HORIZ_FLOAT(function, dest_type, tap_type, src_type, _n_taps) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+ const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+ int i; \
+ int k; \
+ dest_type sum; \
+ const src_type *srcline; \
+ const tap_type *tapsline; \
+ for (i = 0; i < n; i++) { \
+ srcline = src + offsets[i]; \
+ tapsline = taps + i * _n_taps; \
+ sum = 0; \
+ for (k = 0; k < _n_taps; k++) { \
+ sum += srcline[k] * tapsline[k]; \
+ } \
+ dest[i] = sum; \
+ } \
+}
+
+#define RESAMPLE_HORIZ(function, dest_type, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+ const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+ int i; \
+ int k; \
+ dest_type sum; \
+ const src_type *srcline; \
+ const tap_type *tapsline; \
+ int offset; \
+ if (_shift > 0) offset = (1<<_shift)>>1; \
+ else offset = 0; \
+ for (i = 0; i < n; i++) { \
+ srcline = src + offsets[i]; \
+ tapsline = taps + i * _n_taps; \
+ sum = 0; \
+ for (k = 0; k < _n_taps; k++) { \
+ sum += srcline[k] * tapsline[k]; \
+ } \
+ dest[i] = (sum + offset) >> _shift; \
+ } \
+}
+
+#define RESAMPLE_HORIZ_AYUV_FLOAT(function, dest_type, tap_type, src_type, _n_taps) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+ const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+ int i; \
+ int k; \
+ dest_type sum1; \
+ dest_type sum2; \
+ dest_type sum3; \
+ dest_type sum4; \
+ const src_type *srcline; \
+ const tap_type *tapsline; \
+ for (i = 0; i < n; i++) { \
+ srcline = src + 4*offsets[i]; \
+ tapsline = taps + i * _n_taps; \
+ sum1 = 0; \
+ sum2 = 0; \
+ sum3 = 0; \
+ sum4 = 0; \
+ for (k = 0; k < _n_taps; k++) { \
+ sum1 += srcline[k*4+0] * tapsline[k]; \
+ sum2 += srcline[k*4+1] * tapsline[k]; \
+ sum3 += srcline[k*4+2] * tapsline[k]; \
+ sum4 += srcline[k*4+3] * tapsline[k]; \
+ } \
+ dest[i*4+0] = sum1; \
+ dest[i*4+1] = sum2; \
+ dest[i*4+2] = sum3; \
+ dest[i*4+3] = sum4; \
+ } \
+}
+
+#define RESAMPLE_HORIZ_AYUV(function, dest_type, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (dest_type *dest, const gint32 *offsets, \
+ const tap_type *taps, const src_type *src, int n_taps, int shift, int n) \
+{ \
+ int i; \
+ int k; \
+ dest_type sum1; \
+ dest_type sum2; \
+ dest_type sum3; \
+ dest_type sum4; \
+ const src_type *srcline; \
+ const tap_type *tapsline; \
+ int offset; \
+ if (_shift > 0) offset = (1<<_shift)>>1; \
+ else offset = 0; \
+ for (i = 0; i < n; i++) { \
+ srcline = src + 4*offsets[i]; \
+ tapsline = taps + i * _n_taps; \
+ sum1 = 0; \
+ sum2 = 0; \
+ sum3 = 0; \
+ sum4 = 0; \
+ for (k = 0; k < _n_taps; k++) { \
+ sum1 += srcline[k*4+0] * tapsline[k]; \
+ sum2 += srcline[k*4+1] * tapsline[k]; \
+ sum3 += srcline[k*4+2] * tapsline[k]; \
+ sum4 += srcline[k*4+3] * tapsline[k]; \
+ } \
+ dest[i*4+0] = (sum1 + offset) >> _shift; \
+ dest[i*4+1] = (sum2 + offset) >> _shift; \
+ dest[i*4+2] = (sum3 + offset) >> _shift; \
+ dest[i*4+3] = (sum4 + offset) >> _shift; \
+ } \
+}
+
+/* *INDENT-OFF* */
+RESAMPLE_HORIZ_FLOAT (resample_horiz_double_u8_generic, double, double,
+ guint8, n_taps)
+RESAMPLE_HORIZ_FLOAT (resample_horiz_float_u8_generic, float, float,
+ guint8, n_taps)
+RESAMPLE_HORIZ_AYUV_FLOAT (resample_horiz_double_ayuv_generic, double, double,
+ guint8, n_taps)
+RESAMPLE_HORIZ_AYUV_FLOAT (resample_horiz_float_ayuv_generic, float, float,
+ guint8, n_taps)
+
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_generic, gint32, gint32,
+ guint8, n_taps, shift)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_generic, gint16, gint16,
+ guint8, n_taps, shift)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_generic, gint32, gint32,
+ guint8, n_taps, shift)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_generic, gint16, gint16,
+ guint8, n_taps, shift)
+
+/* Candidates for orcification */
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps16_shift0, gint32, gint32,
+ guint8, 16, 0)
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps12_shift0, gint32, gint32,
+ guint8, 12, 0)
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps8_shift0, gint32, gint32,
+ guint8, 8, 0)
+RESAMPLE_HORIZ (resample_horiz_int32_int32_u8_taps4_shift0, gint32, gint32,
+ guint8, 4, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps16_shift0, gint16, gint16,
+ guint8, 16, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps12_shift0, gint16, gint16,
+ guint8, 12, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps8_shift0, gint16, gint16,
+ guint8, 8, 0)
+RESAMPLE_HORIZ (resample_horiz_int16_int16_u8_taps4_shift0, gint16, gint16,
+ guint8, 4, 0)
+
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps16_shift0, gint32, gint32,
+ guint8, 16, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps12_shift0, gint32, gint32,
+ guint8, 12, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps8_shift0, gint32, gint32,
+ guint8, 8, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int32_int32_ayuv_taps4_shift0, gint32, gint32,
+ guint8, 4, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps16_shift0, gint16, gint16,
+ guint8, 16, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps12_shift0, gint16, gint16,
+ guint8, 12, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps8_shift0, gint16, gint16,
+ guint8, 8, 0)
+RESAMPLE_HORIZ_AYUV (resample_horiz_int16_int16_ayuv_taps4_shift0, gint16, gint16,
+ guint8, 4, 0)
+/* *INDENT-ON* */
+
+#define RESAMPLE_VERT(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+ const tap_type *taps, const src_type *src, int stride, int n_taps, \
+ int shift, int n) \
+{ \
+ int i; \
+ int l; \
+ gint32 sum_y; \
+ gint32 offset = (1<<_shift) >> 1; \
+ for (i = 0; i < n; i++) { \
+ sum_y = 0; \
+ for (l = 0; l < n_taps; l++) { \
+ const src_type *line = PTR_OFFSET(src, stride * l); \
+ sum_y += line[i] * taps[l]; \
+ } \
+ dest[i] = CLAMP ((sum_y + offset) >> _shift, 0, 255); \
+ } \
+}
+
+#define RESAMPLE_VERT_DITHER(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+ const tap_type *taps, const src_type *src, int stride, int n_taps, \
+ int shift, int n) \
+{ \
+ int i; \
+ int l; \
+ gint32 sum_y; \
+ gint32 err_y = 0; \
+ gint32 mask = (1<<_shift) - 1; \
+ for (i = 0; i < n; i++) { \
+ sum_y = 0; \
+ for (l = 0; l < n_taps; l++) { \
+ const src_type *line = PTR_OFFSET(src, stride * l); \
+ sum_y += line[i] * taps[l]; \
+ } \
+ err_y += sum_y; \
+ dest[i] = CLAMP (err_y >> _shift, 0, 255); \
+ err_y &= mask; \
+ } \
+}
+
+/* *INDENT-OFF* */
+RESAMPLE_VERT (resample_vert_int32_generic, gint32, gint32, n_taps, shift)
+RESAMPLE_VERT_DITHER (resample_vert_dither_int32_generic, gint32, gint32,
+ n_taps, shift)
+RESAMPLE_VERT (resample_vert_int16_generic, gint16, gint16, n_taps, shift);
+RESAMPLE_VERT_DITHER (resample_vert_dither_int16_generic, gint16, gint16,
+ n_taps, shift)
+/* *INDENT-ON* */
+
+#define RESAMPLE_VERT_FLOAT(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+ const tap_type *taps, const src_type *src, int stride, int n_taps, \
+ int shift, int n) \
+{ \
+ int i; \
+ int l; \
+ src_type sum_y; \
+ for (i = 0; i < n; i++) { \
+ sum_y = 0; \
+ for (l = 0; l < n_taps; l++) { \
+ const src_type *line = PTR_OFFSET(src, stride * l); \
+ sum_y += line[i] * taps[l]; \
+ } \
+ dest[i] = CLAMP (floor(0.5 + sum_y), 0, 255); \
+ } \
+}
+
+#define RESAMPLE_VERT_FLOAT_DITHER(function, tap_type, src_type, _n_taps, _shift) \
+static void \
+function (guint8 *dest, \
+ const tap_type *taps, const src_type *src, int stride, int n_taps, \
+ int shift, int n) \
+{ \
+ int i; \
+ int l; \
+ src_type sum_y; \
+ src_type err_y = 0; \
+ for (i = 0; i < n; i++) { \
+ sum_y = 0; \
+ for (l = 0; l < n_taps; l++) { \
+ const src_type *line = PTR_OFFSET(src, stride * l); \
+ sum_y += line[i] * taps[l]; \
+ } \
+ err_y += sum_y; \
+ dest[i] = CLAMP (floor (err_y), 0, 255); \
+ err_y -= floor (err_y); \
+ } \
+}
+
+/* *INDENT-OFF* */
+RESAMPLE_VERT_FLOAT (resample_vert_double_generic, double, double, n_taps,
+ shift)
+RESAMPLE_VERT_FLOAT_DITHER (resample_vert_dither_double_generic, double, double,
+ n_taps, shift)
+
+RESAMPLE_VERT_FLOAT (resample_vert_float_generic, float, float, n_taps, shift)
+RESAMPLE_VERT_FLOAT_DITHER (resample_vert_dither_float_generic, float, float,
+ n_taps, shift)
+/* *INDENT-ON* */
+
+#define S16_SHIFT1 7
+#define S16_SHIFT2 7
+#define S16_MIDSHIFT 0
+#define S16_POSTSHIFT (S16_SHIFT1+S16_SHIFT2-S16_MIDSHIFT)
+
+static void
+vs_scale_lanczos_Y_int16 (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ gint16 *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_S16 (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, S16_MIDSHIFT, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (gint16 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_int16_generic (destline,
+ taps, TMP_LINE_S16 (scale->y_scale1d.offsets[j]),
+ sizeof (gint16) * scale->dest->width, scale->y_scale1d.n_taps,
+ S16_POSTSHIFT, scale->dest->width);
+ } else {
+ resample_vert_int16_generic (destline,
+ taps, TMP_LINE_S16 (scale->y_scale1d.offsets[j]),
+ sizeof (gint16) * scale->dest->width, scale->y_scale1d.n_taps,
+ S16_POSTSHIFT, scale->dest->width);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_Y_int16 (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ n_taps = ROUND_UP_4 (n_taps);
+ scale1d_calculate_taps_int16 (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen, S16_SHIFT1);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps_int16 (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen, S16_SHIFT2);
+
+ scale->dither = dither;
+
+ switch (scale->x_scale1d.n_taps) {
+ case 4:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_u8_taps4_shift0;
+ break;
+ case 8:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_u8_taps8_shift0;
+ break;
+ case 12:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_u8_taps12_shift0;
+ break;
+ case 16:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_u8_taps16_shift0;
+ break;
+ default:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_u8_generic;
+ break;
+ }
+
+ scale->tmpdata =
+ g_malloc (sizeof (gint16) * scale->dest->width * scale->src->height);
+
+ vs_scale_lanczos_Y_int16 (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
+
+
+#define S32_SHIFT1 11
+#define S32_SHIFT2 11
+#define S32_MIDSHIFT 0
+#define S32_POSTSHIFT (S32_SHIFT1+S32_SHIFT2-S32_MIDSHIFT)
+
+static void
+vs_scale_lanczos_Y_int32 (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ gint32 *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_S32 (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, S32_MIDSHIFT, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (gint32 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_int32_generic (destline,
+ taps, TMP_LINE_S32 (scale->y_scale1d.offsets[j]),
+ sizeof (gint32) * scale->dest->width,
+ scale->y_scale1d.n_taps, S32_POSTSHIFT, scale->dest->width);
+ } else {
+ resample_vert_int32_generic (destline,
+ taps, TMP_LINE_S32 (scale->y_scale1d.offsets[j]),
+ sizeof (gint32) * scale->dest->width,
+ scale->y_scale1d.n_taps, S32_POSTSHIFT, scale->dest->width);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_Y_int32 (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ n_taps = ROUND_UP_4 (n_taps);
+ scale1d_calculate_taps_int32 (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen, S32_SHIFT1);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps_int32 (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen, S32_SHIFT2);
+
+ scale->dither = dither;
+
+ switch (scale->x_scale1d.n_taps) {
+ case 4:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_u8_taps4_shift0;
+ break;
+ case 8:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_u8_taps8_shift0;
+ break;
+ case 12:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_u8_taps12_shift0;
+ break;
+ case 16:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_u8_taps16_shift0;
+ break;
+ default:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_u8_generic;
+ break;
+ }
+
+ scale->tmpdata =
+ g_malloc (sizeof (int32_t) * scale->dest->width * scale->src->height);
+
+ vs_scale_lanczos_Y_int32 (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_Y_double (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ double *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_DOUBLE (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, 0, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (double *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_double_generic (destline,
+ taps, TMP_LINE_DOUBLE (scale->y_scale1d.offsets[j]),
+ sizeof (double) * scale->dest->width,
+ scale->y_scale1d.n_taps, 0, scale->dest->width);
+ } else {
+ resample_vert_double_generic (destline,
+ taps, TMP_LINE_DOUBLE (scale->y_scale1d.offsets[j]),
+ sizeof (double) * scale->dest->width,
+ scale->y_scale1d.n_taps, 0, scale->dest->width);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_Y_double (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ scale1d_calculate_taps (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+ scale->dither = dither;
+
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_double_u8_generic;
+
+ scale->tmpdata =
+ g_malloc (sizeof (double) * scale->dest->width * scale->src->height);
+
+ vs_scale_lanczos_Y_double (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_Y_float (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ float *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_FLOAT (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, 0, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (float *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_float_generic (destline,
+ taps, TMP_LINE_FLOAT (scale->y_scale1d.offsets[j]),
+ sizeof (float) * scale->dest->width,
+ scale->y_scale1d.n_taps, 0, scale->dest->width);
+ } else {
+ resample_vert_float_generic (destline,
+ taps, TMP_LINE_FLOAT (scale->y_scale1d.offsets[j]),
+ sizeof (float) * scale->dest->width,
+ scale->y_scale1d.n_taps, 0, scale->dest->width);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_Y_float (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ scale1d_calculate_taps_float (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps_float (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+ scale->dither = dither;
+
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_float_u8_generic;
+
+ scale->tmpdata =
+ g_malloc (sizeof (float) * scale->dest->width * scale->src->height);
+
+ vs_scale_lanczos_Y_float (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
+
+
+
+
+
+static void
+vs_scale_lanczos_AYUV_int16 (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ gint16 *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_S16_AYUV (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, S16_MIDSHIFT, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (gint16 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_int16_generic (destline,
+ taps, TMP_LINE_S16_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (gint16) * 4 * scale->dest->width,
+ scale->y_scale1d.n_taps, S16_POSTSHIFT, scale->dest->width * 4);
+ } else {
+ resample_vert_int16_generic (destline,
+ taps, TMP_LINE_S16_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (gint16) * 4 * scale->dest->width,
+ scale->y_scale1d.n_taps, S16_POSTSHIFT, scale->dest->width * 4);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_AYUV_int16 (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ n_taps = ROUND_UP_4 (n_taps);
+ scale1d_calculate_taps_int16 (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen, S16_SHIFT1);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps_int16 (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen, S16_SHIFT2);
+
+ scale->dither = dither;
+
+ switch (scale->x_scale1d.n_taps) {
+ case 4:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps4_shift0;
+ break;
+ case 8:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps8_shift0;
+ break;
+ case 12:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps12_shift0;
+ break;
+ case 16:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_ayuv_taps16_shift0;
+ break;
+ default:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int16_int16_ayuv_generic;
+ break;
+ }
+
+ scale->tmpdata =
+ g_malloc (sizeof (gint16) * scale->dest->width * scale->src->height * 4);
+
+ vs_scale_lanczos_AYUV_int16 (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
+
+
+static void
+vs_scale_lanczos_AYUV_int32 (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ gint32 *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_S32_AYUV (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, S32_MIDSHIFT, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (gint32 *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_int32_generic (destline,
+ taps, TMP_LINE_S32_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (gint32) * 4 * scale->dest->width, scale->y_scale1d.n_taps,
+ S32_POSTSHIFT, scale->dest->width * 4);
+ } else {
+ resample_vert_int32_generic (destline,
+ taps, TMP_LINE_S32_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (gint32) * 4 * scale->dest->width, scale->y_scale1d.n_taps,
+ S32_POSTSHIFT, scale->dest->width * 4);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_AYUV_int32 (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ n_taps = ROUND_UP_4 (n_taps);
+ scale1d_calculate_taps_int32 (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen, S32_SHIFT1);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps_int32 (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen, S32_SHIFT2);
+
+ scale->dither = dither;
+
+ switch (scale->x_scale1d.n_taps) {
+ case 4:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps4_shift0;
+ break;
+ case 8:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps8_shift0;
+ break;
+ case 12:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps12_shift0;
+ break;
+ case 16:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_ayuv_taps16_shift0;
+ break;
+ default:
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_int32_int32_ayuv_generic;
+ break;
+ }
+
+ scale->tmpdata =
+ g_malloc (sizeof (int32_t) * scale->dest->width * scale->src->height * 4);
+
+ vs_scale_lanczos_AYUV_int32 (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_AYUV_double (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ double *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_DOUBLE_AYUV (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, 0, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (double *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_double_generic (destline,
+ taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (double) * 4 * scale->dest->width,
+ scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
+ } else {
+ resample_vert_double_generic (destline,
+ taps, TMP_LINE_DOUBLE_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (double) * 4 * scale->dest->width,
+ scale->y_scale1d.n_taps, 0, scale->dest->width * 4);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_AYUV_double (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ scale1d_calculate_taps (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+ scale->dither = dither;
+
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_double_ayuv_generic;
+
+ scale->tmpdata =
+ g_malloc (sizeof (double) * scale->dest->width * scale->src->height * 4);
+
+ vs_scale_lanczos_AYUV_double (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
+
+static void
+vs_scale_lanczos_AYUV_float (Scale * scale)
+{
+ int j;
+ int yi;
+ int tmp_yi;
+
+ tmp_yi = 0;
+
+ for (j = 0; j < scale->dest->height; j++) {
+ guint8 *destline;
+ float *taps;
+
+ destline = scale->dest->pixels + scale->dest->stride * j;
+
+ yi = scale->y_scale1d.offsets[j];
+
+ while (tmp_yi < yi + scale->y_scale1d.n_taps) {
+ scale->horiz_resample_func (TMP_LINE_FLOAT_AYUV (tmp_yi),
+ scale->x_scale1d.offsets, scale->x_scale1d.taps, SRC_LINE (tmp_yi),
+ scale->x_scale1d.n_taps, 0, scale->dest->width);
+ tmp_yi++;
+ }
+
+ taps = (float *) scale->y_scale1d.taps + j * scale->y_scale1d.n_taps;
+ if (scale->dither) {
+ resample_vert_dither_float_generic (destline,
+ taps, TMP_LINE_FLOAT_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (float) * 4 * scale->dest->width, scale->y_scale1d.n_taps, 0,
+ scale->dest->width * 4);
+ } else {
+ resample_vert_float_generic (destline,
+ taps, TMP_LINE_FLOAT_AYUV (scale->y_scale1d.offsets[j]),
+ sizeof (float) * 4 * scale->dest->width, scale->y_scale1d.n_taps, 0,
+ scale->dest->width * 4);
+ }
+ }
+}
+
+void
+vs_image_scale_lanczos_AYUV_float (const VSImage * dest, const VSImage * src,
+ uint8_t * tmpbuf, double sharpness, gboolean dither, double a,
+ double sharpen)
+{
+ Scale s = { 0 };
+ Scale *scale = &s;
+ int n_taps;
+
+ scale->dest = dest;
+ scale->src = src;
+
+ n_taps = scale1d_get_n_taps (src->width, dest->width, a, sharpness);
+ scale1d_calculate_taps_float (&scale->x_scale1d,
+ src->width, dest->width, n_taps, a, sharpness, sharpen);
+
+ n_taps = scale1d_get_n_taps (src->height, dest->height, a, sharpness);
+ scale1d_calculate_taps_float (&scale->y_scale1d,
+ src->height, dest->height, n_taps, a, sharpness, sharpen);
+
+ scale->dither = dither;
+
+ scale->horiz_resample_func =
+ (HorizResampleFunc) resample_horiz_float_ayuv_generic;
+
+ scale->tmpdata =
+ g_malloc (sizeof (float) * scale->dest->width * scale->src->height * 4);
+
+ vs_scale_lanczos_AYUV_float (scale);
+
+ scale1d_cleanup (&scale->x_scale1d);
+ scale1d_cleanup (&scale->y_scale1d);
+ g_free (scale->tmpdata);
+}
generate_sine_table_SOURCES = generate_sine_table.c
generate_sine_table_CFLAGS = $(GST_CFLAGS)
-generate_sine_table_LDADD = $(LIBM)
+generate_sine_table_LDADD = $(LIBM) $(GLIB_LIBS)
Android.mk: Makefile.am $(BUILT_SOURCES)
androgenizer \
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
nodist_libgstvideotestsrc_la_OBJECTS = $(am__objects_1)
libgstvideotestsrc_la_OBJECTS = $(am_libgstvideotestsrc_la_OBJECTS) \
$(nodist_libgstvideotestsrc_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
libgstvideotestsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
am_generate_sine_table_OBJECTS = \
generate_sine_table-generate_sine_table.$(OBJEXT)
generate_sine_table_OBJECTS = $(am_generate_sine_table_OBJECTS)
-generate_sine_table_DEPENDENCIES = $(am__DEPENDENCIES_1)
+generate_sine_table_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
generate_sine_table_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(generate_sine_table_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(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 = $(libgstvideotestsrc_la_SOURCES) \
$(nodist_libgstvideotestsrc_la_SOURCES) \
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
noinst_HEADERS = gstvideotestsrc.h videotestsrc.h
generate_sine_table_SOURCES = generate_sine_table.c
generate_sine_table_CFLAGS = $(GST_CFLAGS)
-generate_sine_table_LDADD = $(LIBM)
+generate_sine_table_LDADD = $(LIBM) $(GLIB_LIBS)
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstvideotestsrc.la: $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_DEPENDENCIES)
+libgstvideotestsrc.la: $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_DEPENDENCIES) $(EXTRA_libgstvideotestsrc_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstvideotestsrc_la_LINK) -rpath $(plugindir) $(libgstvideotestsrc_la_OBJECTS) $(libgstvideotestsrc_la_LIBADD) $(LIBS)
clean-noinstPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-generate_sine_table$(EXEEXT): $(generate_sine_table_OBJECTS) $(generate_sine_table_DEPENDENCIES)
+generate_sine_table$(EXEEXT): $(generate_sine_table_OBJECTS) $(generate_sine_table_DEPENDENCIES) $(EXTRA_generate_sine_table_DEPENDENCIES)
@rm -f generate_sine_table$(EXEEXT)
$(AM_V_CCLD)$(generate_sine_table_LINK) $(generate_sine_table_OBJECTS) $(generate_sine_table_LDADD) $(LIBS)
.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 $@ $<
libgstvideotestsrc_la-gstvideotestsrc.lo: gstvideotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstvideotestsrc_la-gstvideotestsrc.lo -MD -MP -MF $(DEPDIR)/libgstvideotestsrc_la-gstvideotestsrc.Tpo -c -o libgstvideotestsrc_la-gstvideotestsrc.lo `test -f 'gstvideotestsrc.c' || echo '$(srcdir)/'`gstvideotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideotestsrc_la-gstvideotestsrc.Tpo $(DEPDIR)/libgstvideotestsrc_la-gstvideotestsrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvideotestsrc.c' object='libgstvideotestsrc_la-gstvideotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvideotestsrc.c' object='libgstvideotestsrc_la-gstvideotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-gstvideotestsrc.lo `test -f 'gstvideotestsrc.c' || echo '$(srcdir)/'`gstvideotestsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-gstvideotestsrc.lo `test -f 'gstvideotestsrc.c' || echo '$(srcdir)/'`gstvideotestsrc.c
libgstvideotestsrc_la-videotestsrc.lo: videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstvideotestsrc_la-videotestsrc.lo -MD -MP -MF $(DEPDIR)/libgstvideotestsrc_la-videotestsrc.Tpo -c -o libgstvideotestsrc_la-videotestsrc.lo `test -f 'videotestsrc.c' || echo '$(srcdir)/'`videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideotestsrc_la-videotestsrc.Tpo $(DEPDIR)/libgstvideotestsrc_la-videotestsrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='videotestsrc.c' object='libgstvideotestsrc_la-videotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='videotestsrc.c' object='libgstvideotestsrc_la-videotestsrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-videotestsrc.lo `test -f 'videotestsrc.c' || echo '$(srcdir)/'`videotestsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-videotestsrc.lo `test -f 'videotestsrc.c' || echo '$(srcdir)/'`videotestsrc.c
libgstvideotestsrc_la-tmp-orc.lo: tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -MT libgstvideotestsrc_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvideotestsrc_la-tmp-orc.Tpo -c -o libgstvideotestsrc_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideotestsrc_la-tmp-orc.Tpo $(DEPDIR)/libgstvideotestsrc_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstvideotestsrc_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstvideotestsrc_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 $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_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 $(libgstvideotestsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideotestsrc_la_CFLAGS) $(CFLAGS) -c -o libgstvideotestsrc_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
generate_sine_table-generate_sine_table.o: generate_sine_table.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -MT generate_sine_table-generate_sine_table.o -MD -MP -MF $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo -c -o generate_sine_table-generate_sine_table.o `test -f 'generate_sine_table.c' || echo '$(srcdir)/'`generate_sine_table.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo $(DEPDIR)/generate_sine_table-generate_sine_table.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.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) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.o `test -f 'generate_sine_table.c' || echo '$(srcdir)/'`generate_sine_table.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.o `test -f 'generate_sine_table.c' || echo '$(srcdir)/'`generate_sine_table.c
generate_sine_table-generate_sine_table.obj: generate_sine_table.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -MT generate_sine_table-generate_sine_table.obj -MD -MP -MF $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo -c -o generate_sine_table-generate_sine_table.obj `if test -f 'generate_sine_table.c'; then $(CYGPATH_W) 'generate_sine_table.c'; else $(CYGPATH_W) '$(srcdir)/generate_sine_table.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/generate_sine_table-generate_sine_table.Tpo $(DEPDIR)/generate_sine_table-generate_sine_table.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generate_sine_table.c' object='generate_sine_table-generate_sine_table.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) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.obj `if test -f 'generate_sine_table.c'; then $(CYGPATH_W) 'generate_sine_table.c'; else $(CYGPATH_W) '$(srcdir)/generate_sine_table.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_sine_table_CFLAGS) $(CFLAGS) -c -o generate_sine_table-generate_sine_table.obj `if test -f 'generate_sine_table.c'; then $(CYGPATH_W) 'generate_sine_table.c'; else $(CYGPATH_W) '$(srcdir)/generate_sine_table.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
#include <stdio.h>
#include <math.h>
-
+#include <glib.h>
static int
get_value (int i)
{
int x;
- x = floor (256 * (0.5 + 0.5 * sin (i * 2 * M_PI / 256)));
+ x = floor (256 * (0.5 + 0.5 * sin (i * 2 * G_PI / 256)));
if (x > 255)
x = 255;
return x;
/**
* SECTION:element-videotestsrc
*
- * The videotestsrc element is used to produce test video data in a wide variaty
+ * The videotestsrc element is used to produce test video data in a wide variety
* of formats. The video test data produced can be controlled with the "pattern"
* property.
*
gst_video_test_src_base_init (gpointer g_class)
{
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
+ GstPadTemplate *pad_template;
gst_element_class_set_details_simple (element_class,
"Video test source", "Source/Video",
"Creates a test video stream", "David A. Schleef <ds@schleef.org>");
- gst_element_class_add_pad_template (element_class,
+ pad_template =
gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
- gst_video_test_src_getcaps (NULL)));
+ gst_video_test_src_getcaps (NULL));
+ gst_element_class_add_pad_template (element_class, pad_template);
+ gst_object_unref (pad_template);
}
static void
fourcc->paint_setup (p, NULL);
- return (unsigned long) p->endptr;
+ return (guintptr) p->endptr;
}
#define SCALEBITS 10
fourcc->paint_setup (p, dest);
y1 = 2 * h / 3;
- y2 = h * 0.75;
+ y2 = 3 * h / 4;
/* color bars */
for (j = 0; j < y1; j++) {
fourcc->paint_setup (p, dest);
- x = radius + (0.5 + 0.5 * sin (2 * M_PI * t / 200)) * (w - 2 * radius);
- y = radius + (0.5 + 0.5 * sin (2 * M_PI * sqrt (2) * t / 200)) * (h -
+ x = radius + (0.5 + 0.5 * sin (2 * G_PI * t / 200)) * (w - 2 * radius);
+ y = radius + (0.5 + 0.5 * sin (2 * G_PI * sqrt (2) * t / 200)) * (h -
2 * radius);
for (i = 0; i < h; i++) {
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
nodist_libgstvolume_la_OBJECTS = $(am__objects_1)
libgstvolume_la_OBJECTS = $(am_libgstvolume_la_OBJECTS) \
$(nodist_libgstvolume_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
libgstvolume_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \
$(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 = $(libgstvolume_la_SOURCES) $(nodist_libgstvolume_la_SOURCES)
DIST_SOURCES = $(libgstvolume_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstvolume.la: $(libgstvolume_la_OBJECTS) $(libgstvolume_la_DEPENDENCIES)
+libgstvolume.la: $(libgstvolume_la_OBJECTS) $(libgstvolume_la_DEPENDENCIES) $(EXTRA_libgstvolume_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstvolume_la_LINK) -rpath $(plugindir) $(libgstvolume_la_OBJECTS) $(libgstvolume_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstvolume_la-gstvolume.lo: gstvolume.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -MT libgstvolume_la-gstvolume.lo -MD -MP -MF $(DEPDIR)/libgstvolume_la-gstvolume.Tpo -c -o libgstvolume_la-gstvolume.lo `test -f 'gstvolume.c' || echo '$(srcdir)/'`gstvolume.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvolume_la-gstvolume.Tpo $(DEPDIR)/libgstvolume_la-gstvolume.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstvolume.c' object='libgstvolume_la-gstvolume.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstvolume.c' object='libgstvolume_la-gstvolume.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_la-gstvolume.lo `test -f 'gstvolume.c' || echo '$(srcdir)/'`gstvolume.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_la-gstvolume.lo `test -f 'gstvolume.c' || echo '$(srcdir)/'`gstvolume.c
libgstvolume_la-tmp-orc.lo: tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -MT libgstvolume_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstvolume_la-tmp-orc.Tpo -c -o libgstvolume_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvolume_la-tmp-orc.Tpo $(DEPDIR)/libgstvolume_la-tmp-orc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstvolume_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='tmp-orc.c' object='libgstvolume_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 $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_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 $(libgstvolume_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvolume_la_CFLAGS) $(CFLAGS) -c -o libgstvolume_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c
mostlyclean-libtool:
-rm -f *.lo
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:
/* the volume factor is a range from 0.0 to (arbitrary) VOLUME_MAX_DOUBLE = 10.0
* we map 1.0 to VOLUME_UNITY_INT*
*/
-#define VOLUME_UNITY_INT8 32 /* internal int for unity 2^(8-3) */
-#define VOLUME_UNITY_INT8_BIT_SHIFT 5 /* number of bits to shift for unity */
-#define VOLUME_UNITY_INT16 8192 /* internal int for unity 2^(16-3) */
-#define VOLUME_UNITY_INT16_BIT_SHIFT 13 /* number of bits to shift for unity */
-#define VOLUME_UNITY_INT24 2097152 /* internal int for unity 2^(24-3) */
-#define VOLUME_UNITY_INT24_BIT_SHIFT 21 /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT8 8 /* internal int for unity 2^(8-5) */
+#define VOLUME_UNITY_INT8_BIT_SHIFT 3 /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT16 2048 /* internal int for unity 2^(16-5) */
+#define VOLUME_UNITY_INT16_BIT_SHIFT 11 /* number of bits to shift for unity */
+#define VOLUME_UNITY_INT24 524288 /* internal int for unity 2^(24-5) */
+#define VOLUME_UNITY_INT24_BIT_SHIFT 19 /* number of bits to shift for unity */
#define VOLUME_UNITY_INT32 134217728 /* internal int for unity 2^(32-5) */
#define VOLUME_UNITY_INT32_BIT_SHIFT 27
#define VOLUME_MAX_DOUBLE 10.0
case 8:
/* only clamp if the gain is greater than 1.0
*/
- if (self->current_vol_i16 > VOLUME_UNITY_INT8) {
+ if (self->current_vol_i8 > VOLUME_UNITY_INT8) {
self->process = volume_process_int8_clamp;
} else {
self->process = volume_process_int8;
guint num_samples = n_bytes / sizeof (gint16);
/* hard coded in volume.orc */
- g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 13);
+ g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 11);
orc_process_int16 (data, self->current_vol_i16, num_samples);
}
guint num_samples = n_bytes / sizeof (gint16);
/* hard coded in volume.orc */
- g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 13);
+ g_assert (VOLUME_UNITY_INT16_BIT_SHIFT == 11);
orc_process_int16_clamp (data, self->current_vol_i16, num_samples);
}
guint num_samples = n_bytes / sizeof (gint8);
/* hard coded in volume.orc */
- g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 5);
+ g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 3);
orc_process_int8 (data, self->current_vol_i8, num_samples);
}
guint num_samples = n_bytes / sizeof (gint8);
/* hard coded in volume.orc */
- g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 5);
+ g_assert (VOLUME_UNITY_INT8_BIT_SHIFT == 3);
orc_process_int8_clamp (data, self->current_vol_i8, num_samples);
}
guint nsamples = size / (width * channels);
GstClockTime interval = gst_util_uint64_scale_int (1, GST_SECOND, rate);
GstClockTime ts = GST_BUFFER_TIMESTAMP (outbuf);
+ gboolean use_mutes = FALSE;
ts = gst_segment_to_stream_time (&base->segment, GST_FORMAT_TIME, ts);
gst_object_unref (mute_csource);
mute_csource = NULL;
+ use_mutes = TRUE;
} else {
g_free (self->mutes);
self->mutes = NULL;
orc_memset_f64 (self->volumes, self->current_volume, nsamples);
}
- if (mute_csource) {
+ if (use_mutes) {
orc_prepare_volumes (self->volumes, self->mutes, nsamples);
}
/* 2: mulswl */
var36.i = var33.i * var34.i;
/* 3: shrsl */
- var37.i = var36.i >> 13;
+ var37.i = var36.i >> 11;
/* 4: convlw */
var35.i = var37.i;
/* 5: storew */
/* 2: mulswl */
var36.i = var33.i * var34.i;
/* 3: shrsl */
- var37.i = var36.i >> 13;
+ var37.i = var36.i >> 11;
/* 4: convlw */
var35.i = var37.i;
/* 5: storew */
/* 2: mulswl */
var36.i = var33.i * var34.i;
/* 3: shrsl */
- var37.i = var36.i >> 13;
+ var37.i = var36.i >> 11;
/* 4: convssslw */
var35.i = ORC_CLAMP_SW (var37.i);
/* 5: storew */
/* 2: mulswl */
var36.i = var33.i * var34.i;
/* 3: shrsl */
- var37.i = var36.i >> 13;
+ var37.i = var36.i >> 11;
/* 4: convssslw */
var35.i = ORC_CLAMP_SW (var37.i);
/* 5: storew */
/* 2: mulsbw */
var36.i = var33 * var34;
/* 3: shrsw */
- var37.i = var36.i >> 5;
+ var37.i = var36.i >> 3;
/* 4: convwb */
var35 = var37.i;
/* 5: storeb */
/* 2: mulsbw */
var36.i = var33 * var34;
/* 3: shrsw */
- var37.i = var36.i >> 5;
+ var37.i = var36.i >> 3;
/* 4: convwb */
var35 = var37.i;
/* 5: storeb */
/* 2: mulsbw */
var36.i = var33 * var34;
/* 3: shrsw */
- var37.i = var36.i >> 5;
+ var37.i = var36.i >> 3;
/* 4: convssswb */
var35 = ORC_CLAMP_SB (var37.i);
/* 5: storeb */
/* 2: mulsbw */
var36.i = var33 * var34;
/* 3: shrsw */
- var37.i = var36.i >> 5;
+ var37.i = var36.i >> 3;
/* 4: convssswb */
var35 = ORC_CLAMP_SB (var37.i);
/* 5: storeb */
orc_program_set_name (p, "orc_process_int16");
orc_program_set_backup_function (p, _backup_orc_process_int16);
orc_program_add_destination (p, 2, "d1");
- orc_program_add_constant (p, 4, 0x0000000d, "c1");
+ orc_program_add_constant (p, 4, 0x0000000b, "c1");
orc_program_add_parameter (p, 2, "p1");
orc_program_add_temporary (p, 4, "t1");
orc_program_set_name (p, "orc_process_int16_clamp");
orc_program_set_backup_function (p, _backup_orc_process_int16_clamp);
orc_program_add_destination (p, 2, "d1");
- orc_program_add_constant (p, 4, 0x0000000d, "c1");
+ orc_program_add_constant (p, 4, 0x0000000b, "c1");
orc_program_add_parameter (p, 2, "p1");
orc_program_add_temporary (p, 4, "t1");
orc_program_set_name (p, "orc_process_int8");
orc_program_set_backup_function (p, _backup_orc_process_int8);
orc_program_add_destination (p, 1, "d1");
- orc_program_add_constant (p, 4, 0x00000005, "c1");
+ orc_program_add_constant (p, 4, 0x00000003, "c1");
orc_program_add_parameter (p, 1, "p1");
orc_program_add_temporary (p, 2, "t1");
orc_program_set_name (p, "orc_process_int8_clamp");
orc_program_set_backup_function (p, _backup_orc_process_int8_clamp);
orc_program_add_destination (p, 1, "d1");
- orc_program_add_constant (p, 4, 0x00000005, "c1");
+ orc_program_add_constant (p, 4, 0x00000003, "c1");
orc_program_add_parameter (p, 1, "p1");
orc_program_add_temporary (p, 2, "t1");
.temp 4 t1
mulswl t1, d1, p1
-shrsl t1, t1, 13
+shrsl t1, t1, 11
convlw d1, t1
.temp 4 t1
mulswl t1, d1, p1
-shrsl t1, t1, 13
+shrsl t1, t1, 11
convssslw d1, t1
.function orc_process_int8
.temp 2 t1
mulsbw t1, d1, p1
-shrsw t1, t1, 5
+shrsw t1, t1, 3
convwb d1, t1
.temp 2 t1
mulsbw t1, d1, p1
-shrsw t1, t1, 5
+shrsw t1, t1, 3
convssswb d1, t1
.function orc_memset_f64
#!/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
-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;;
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
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.
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
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.
case $dstdir in
/*) prefix='/';;
- -*) prefix='./';;
+ [-=\(\)!]*) prefix='./';;
*) prefix='';;
esac
for d
do
- test -z "$d" && continue
+ test X"$d" = X && continue
prefix=$prefix$d
if test -d "$prefix"; then
-# Generated from ltmain.m4sh.
-# ltmain.sh (GNU libtool) 2.2.6b
+# libtool (GNU libtool) 2.4.2
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 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.
#
# 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 <bug-libtool@gnu.org>.
+# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
+# General help using GNU software: <http://www.gnu.org/gethelp/>.
-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
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
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//"}
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:
# 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
;;
*)
save_IFS="$IFS"
- IFS=:
+ IFS=${PATH_SEPARATOR-:}
for progdir in $PATH; do
IFS="$save_IFS"
test -x "$progdir/$progname" && break
# 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.
# name if it has been set yet.
func_echo ()
{
- $ECHO "$progname${mode+: }$mode: $*"
+ $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
}
# func_verbose arg...
:
}
+# 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:
:
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
func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
fi
- $ECHO "X$my_tmpdir" | $Xsed
+ $ECHO "$my_tmpdir"
}
{
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
{
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" ;;
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/
# 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'*
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
# 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 <<EOF
-$*
-EOF
- exit $EXIT_SUCCESS
-fi
magic="%%%MAGIC variable%%%"
magic_exe="%%%MAGIC EXE variable%%%"
# Global variables.
-# $mode is unset
nonopt=
-execute_dlfiles=
preserve_args=
lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/"
extracted_archives=
extracted_serial=0
-opt_dry_run=false
-opt_duplicate_deps=false
-opt_silent=false
-opt_debug=:
-
# If this variable is set in any of the actions, the command in it
# will be execed at the end. This prevents here-documents from being
# left over by shells.
exec_cmd=
+# func_append var value
+# Append VALUE to the end of shell variable VAR.
+func_append ()
+{
+ eval "${1}=\$${1}\${2}"
+} # func_append may be replaced by extended shell implementation
+
+# func_append_quoted var value
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+func_append_quoted ()
+{
+ func_quote_for_eval "${2}"
+ eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
+} # func_append_quoted may be replaced by extended shell implementation
+
+
+# func_arith arithmetic-term...
+func_arith ()
+{
+ func_arith_result=`expr "${@}"`
+} # func_arith may be replaced by extended shell implementation
+
+
+# func_len string
+# STRING may not start with a hyphen.
+func_len ()
+{
+ func_len_result=`expr "${1}" : ".*" 2>/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.
# 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 $?
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*)
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.
# 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
}
+# 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.
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.
*)
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.
}
}
+
+##################################################
+# 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 ()
{
;;
-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
;;
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
;;
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
*.[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
;;
# 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=
$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
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" \
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'
}
$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.
-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.
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)."
-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)
-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.
;;
*)
- 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...
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"
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'"
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
;;
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
# 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.
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
# 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...
# 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 "
# 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=
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
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
*)
# 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
# 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" && \
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"
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"
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
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'"
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
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)
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
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"
}
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
# 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.
fi
}
-test "$mode" = install && func_mode_install ${1+"$@"}
+test "$opt_mode" = install && func_mode_install ${1+"$@"}
# func_generate_dlsyms outputname originator pic_p
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. */\
"
$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
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"'
;;
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 <import library>.
+ $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 || {
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 },"
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}
};
# 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" ;;
for arg in $LTCFLAGS; do
case $arg in
-pie | -fpie | -fPIE) ;;
- *) symtab_cflags="$symtab_cflags $arg" ;;
+ *) func_append symtab_cflags " $arg" ;;
esac
done
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
;;
# 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
}
# 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
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 /{
$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
$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
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-$$
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
# 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
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
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
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
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 "\
# 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
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 <stdio.h>
#include <stdlib.h>
#ifdef _MSC_VER
# include <direct.h>
# include <process.h>
# include <io.h>
-# define setmode _setmode
#else
# include <unistd.h>
# include <stdint.h>
# ifdef __CYGWIN__
# include <io.h>
-# 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 <malloc.h>
#include <fcntl.h>
#include <sys/stat.h>
+/* 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)
# 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 ':'
# 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
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);
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 <<EOF
-
-static const char *script_text_part2 =
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
EOF
- func_emit_wrapper_part2 yes |
- $SED -e 's/\([\\"]\)/\\\1/g' \
- -e 's/^/ "/' -e 's/$/\\n"/'
- echo ";"
cat <<EOF
-const char * MAGIC_EXE = "$magic_exe";
+volatile const char * MAGIC_EXE = "$magic_exe";
const char * LIB_PATH_VARNAME = "$shlibpath_var";
EOF
if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
- func_to_host_pathlist "$temp_rpath"
+ func_to_host_path "$temp_rpath"
cat <<EOF
-const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
+const char * LIB_PATH_VALUE = "$func_to_host_path_result";
EOF
else
cat <<"EOF"
fi
if test -n "$dllsearchpath"; then
- func_to_host_pathlist "$dllsearchpath:"
+ func_to_host_path "$dllsearchpath:"
cat <<EOF
const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
+const char * EXE_PATH_VALUE = "$func_to_host_path_result";
EOF
else
cat <<"EOF"
cat <<"EOF"
#define LTWRAPPER_OPTION_PREFIX "--lt-"
-#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
-static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-
static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
-
-static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
-static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set";
- /* argument is putenv-style "foo=bar", value of foo is set to bar */
-
-static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
-static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend";
- /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
-
-static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
-static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append";
- /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
int
main (int argc, char *argv[])
int i;
program_name = (char *) xstrdup (base_name (argv[0]));
- LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
- LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+ newargz = XMALLOC (char *, argc + 1);
- /* very simple arg parsing; don't want to rely on getopt */
+ /* very simple arg parsing; don't want to rely on getopt
+ * also, copy all non cwrapper options to newargz, except
+ * argz[0], which is handled differently
+ */
+ newargc=0;
for (i = 1; i < argc; i++)
{
if (strcmp (argv[i], dumpscript_opt) == 0)
esac
cat <<"EOF"
- printf ("%s", script_text_part1);
- printf ("%s", script_text_part2);
+ lt_dump_script (stdout);
return 0;
}
+ if (strcmp (argv[i], debug_opt) == 0)
+ {
+ lt_debug = 1;
+ continue;
+ }
+ if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
+ {
+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+ namespace, but it is not one of the ones we know about and
+ have already dealt with, above (inluding dump-script), then
+ report an error. Otherwise, targets might begin to believe
+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+ namespace. The first time any user complains about this, we'll
+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+ or a configure.ac-settable value.
+ */
+ lt_fatal (__FILE__, __LINE__,
+ "unrecognized %s option: '%s'",
+ ltwrapper_option_prefix, argv[i]);
+ }
+ /* otherwise ... */
+ newargz[++newargc] = xstrdup (argv[i]);
}
+ newargz[++newargc] = NULL;
+
+EOF
+ cat <<EOF
+ /* The GNU banner must be the first non-error debug message */
+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
+EOF
+ cat <<"EOF"
+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
- newargz = XMALLOC (char *, argc + 1);
tmp_pathspec = find_executable (argv[0]);
if (tmp_pathspec == NULL)
- lt_fatal ("Couldn't find %s", argv[0]);
- LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
- tmp_pathspec));
+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (before symlink chase) at: %s\n",
+ tmp_pathspec);
actual_cwrapper_path = chase_symlinks (tmp_pathspec);
- LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
- actual_cwrapper_path));
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (after symlink chase) at: %s\n",
+ actual_cwrapper_path);
XFREE (tmp_pathspec);
- actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
strendzap (actual_cwrapper_path, actual_cwrapper_name);
/* wrapper name transforms */
target_name = tmp_pathspec;
tmp_pathspec = 0;
- LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
- target_name));
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) libtool target name: %s\n",
+ target_name);
EOF
cat <<EOF
lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
lt_setenv ("DUALCASE", "1"); /* for MSK sh */
- lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+ because on Windows, both *_VARNAMEs are PATH but uninstalled
+ libraries must come first. */
lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
- newargc=0;
- for (i = 1; i < argc; i++)
- {
- if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
- {
- if (argv[i][env_set_opt_len] == '=')
- {
- const char *p = argv[i] + env_set_opt_len + 1;
- lt_opt_process_env_set (p);
- }
- else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
- {
- lt_opt_process_env_set (argv[++i]); /* don't copy */
- }
- else
- lt_fatal ("%s missing required argument", env_set_opt);
- continue;
- }
- if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
- {
- if (argv[i][env_prepend_opt_len] == '=')
- {
- const char *p = argv[i] + env_prepend_opt_len + 1;
- lt_opt_process_env_prepend (p);
- }
- else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
- {
- lt_opt_process_env_prepend (argv[++i]); /* don't copy */
- }
- else
- lt_fatal ("%s missing required argument", env_prepend_opt);
- continue;
- }
- if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
- {
- if (argv[i][env_append_opt_len] == '=')
- {
- const char *p = argv[i] + env_append_opt_len + 1;
- lt_opt_process_env_append (p);
- }
- else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
- {
- lt_opt_process_env_append (argv[++i]); /* don't copy */
- }
- else
- lt_fatal ("%s missing required argument", env_append_opt);
- continue;
- }
- if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
- {
- /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
- namespace, but it is not one of the ones we know about and
- have already dealt with, above (inluding dump-script), then
- report an error. Otherwise, targets might begin to believe
- they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
- namespace. The first time any user complains about this, we'll
- need to make LTWRAPPER_OPTION_PREFIX a configure-time option
- or a configure.ac-settable value.
- */
- lt_fatal ("Unrecognized option in %s namespace: '%s'",
- ltwrapper_option_prefix, argv[i]);
- }
- /* otherwise ... */
- newargz[++newargc] = xstrdup (argv[i]);
- }
- newargz[++newargc] = NULL;
-
- LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+ 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] : "<NULL>")));
+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+ i, nonnull (newargz[i]));
}
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;
{
void *p = (void *) malloc (num);
if (!p)
- lt_fatal ("Memory exhausted");
+ lt_fatal (__FILE__, __LINE__, "memory exhausted");
return p;
}
{
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;
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;
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;
{
/* 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);
}
/* 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);
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)
}
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);
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
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");
}
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 : "<NULL>"),
- (value ? value : "<NULL>")));
+ 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 */
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 : "<NULL>"),
- (value ? value : "<NULL>")));
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
if (name && *name && value && *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 : "<NULL>"),
- (value ? value : "<NULL>")));
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
if (name && *name && value && *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 ()
{
new_inherited_linker_flags=
avoid_version=no
+ bindir=
dlfiles=
dlprefiles=
dlself=no
esac
case $prev in
+ bindir)
+ bindir="$arg"
+ prev=
+ continue
+ ;;
dlfiles|dlprefiles)
if test "$preload" = no; then
# Add the symbol object into the linking commands.
;;
*)
if test "$prev" = dlfiles; then
- dlfiles="$dlfiles $arg"
+ func_append dlfiles " $arg"
else
- dlprefiles="$dlprefiles $arg"
+ func_append dlprefiles " $arg"
fi
prev=
continue
*-*-darwin*)
case "$deplibs " in
*" $qarg.ltframework "*) ;;
- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+ *) func_append deplibs " $qarg.ltframework" # this is fixed later
;;
esac
;;
moreargs=
for fil in `cat "$save_arg"`
do
-# moreargs="$moreargs $fil"
+# func_append moreargs " $fil"
arg=$fil
# A libtool-controlled object.
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
# 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
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=
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"
continue
;;
+ -bindir)
+ prev=bindir
+ continue
+ ;;
+
-dlopen)
prev=dlfiles
continue
;;
-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]:[\\/]*) ;;
;;
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
-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
;;
;;
*-*-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*)
;;
esac
fi
- deplibs="$deplibs $arg"
+ func_append deplibs " $arg"
continue
;;
# 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
;;
# 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
;;
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"
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"
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
;;
*.$objext)
# A standard object.
- objs="$objs $arg"
+ func_append objs " $arg"
;;
*.lo)
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
# 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
*.$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
;;
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
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"
# 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
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=
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
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
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
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
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"
-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"
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
;;
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"
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
# 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
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"
# 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
# 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
# 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
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"
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
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
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?
# 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...
# 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
*)
case "$compile_rpath " in
*" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
+ *) func_append compile_rpath " $absdir" ;;
esac
;;
esac
*)
case "$finalize_rpath " in
*" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
+ *) func_append finalize_rpath " $libdir" ;;
esac
;;
esac
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
;;
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
*)
case "$compile_rpath " in
*" $absdir "*) ;;
- *) compile_rpath="$compile_rpath $absdir"
+ *) func_append compile_rpath " $absdir" ;;
esac
;;
esac
*)
case "$finalize_rpath " in
*" $libdir "*) ;;
- *) finalize_rpath="$finalize_rpath $libdir"
+ *) func_append finalize_rpath " $libdir" ;;
esac
;;
esac
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=
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
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
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
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=
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
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
# 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
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
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" ;;
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
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"
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=
-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\"
;;
esac
if test -n "$i" ; then
- tmp_libs="$tmp_libs $i"
+ func_append tmp_libs " $i"
fi
done
dependency_libs=$tmp_libs
# Now set the variables for building old libraries.
build_libtool_libs=no
oldlibs="$output"
- objs="$objs$old_deplibs"
+ func_append objs "$old_deplibs"
;;
lib)
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
# 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"
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"
done
# Make executables depend on our current version.
- verstring="$verstring:${current}.0"
+ func_append verstring ":${current}.0"
;;
qnx)
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=
continue
fi
fi
- removelist="$removelist $p"
+ func_append removelist " $p"
;;
*) ;;
esac
# 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
for lib in $old_dlfiles; do
case " $dlprefiles $dlfiles " in
*" $lib "*) ;;
- *) dlfiles="$dlfiles $lib" ;;
+ *) func_append dlfiles " $lib" ;;
esac
done
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.
*)
# 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
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
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
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
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
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 |
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
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
;;
*)
# Add a -L argument.
- newdeplibs="$newdeplibs $a_deplib"
+ func_append newdeplibs " $a_deplib"
;;
esac
done # Gone through all deplibs.
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
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
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
;;
*)
# 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
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"
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
# 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
*)
case " $deplibs " in
*" -L$path/$objdir "*)
- new_libs="$new_libs -L$path/$objdir" ;;
+ func_append new_libs " -L$path/$objdir" ;;
esac
;;
esac
-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"
# 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
*"$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
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
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
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=
$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.
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
# 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
case " $convenience " in
*" $test_deplib "*) ;;
*)
- tmp_deplibs="$tmp_deplibs $test_deplib"
+ func_append tmp_deplibs " $test_deplib"
;;
esac
done
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
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.
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"
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..."
# 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
# 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=
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" )
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
# 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
# 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
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" )
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
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 $?'
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
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
*)
case " $compile_deplibs " in
*" -L$path/$objdir "*)
- new_libs="$new_libs -L$path/$objdir" ;;
+ func_append new_libs " -L$path/$objdir" ;;
esac
;;
esac
-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.
# 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
*"$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
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
*"$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
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"
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
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}"'
# 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
# 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
# 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
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=
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"
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.
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"
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.
# 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
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=
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..."
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
*.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"
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"
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
[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
*) abs=`pwd`"/$lib" ;;
esac
- newdlfiles="$newdlfiles $abs"
+ func_append newdlfiles " $abs"
done
dlfiles="$newdlfiles"
newdlprefiles=
[\\/]* | [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
exit $EXIT_SUCCESS
}
-{ test "$mode" = link || test "$mode" = relink; } &&
+{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
func_mode_link ${1+"$@"}
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
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
# 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
# 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)
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.
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
# 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
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
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"
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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:
echo "*** The FreeType test program failed to run. If your system uses"
echo "*** shared libraries and they are installed outside the normal"
echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
- echo "*** (or whatever is appropiate for your system) is correctly set."
+ echo "*** (or whatever is appropriate for your system) is correctly set."
fi
fi
FT2_CFLAGS=""
+++ /dev/null
-# 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 <features.h>
-#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"
- ]
-)
+++ /dev/null
-# 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 <drepper@cygnus.com>, 1995-2000.
-dnl Bruno Haible <haible@clisp.cons.org>, 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 <stdio.h>])
- gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
-
- 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 <stdio.h>])
-
- 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() <http://docs.hp.com/en/1896/pthreads.html>.
- 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 <stdio.h>])
- gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
-
- 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 <langinfo.h>
-#include <locale.h>],
- [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 <langinfo.h> 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.])
-])
+++ /dev/null
-# 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], [])
+++ /dev/null
-# 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 <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#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 <stdint.h> or <inttypes.h>.])
- fi
-])
# 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
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.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
])
-# serial 56 LT_INIT
+# serial 57 LT_INIT
# LT_PREREQ(VERSION)
# ------------------
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
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])
*) 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-%%"`
])
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
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
_LT_CHECK_OBJDIR
m4_require([_LT_TAG_COMPILER])dnl
-_LT_PROG_ECHO_BACKSLASH
case $host_os in
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
])# _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'
# 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
# embedded single quotes properly. In configure, this macro expands
# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
#
-# <var>='`$ECHO "X$<var>" | $Xsed -e "$delay_single_quote_subst"`'
+# <var>='`$ECHO "$<var>" | $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)])])])
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\\\\\\""
# 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\\\\\\""
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
# ---------
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
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."
# 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
# 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"
],
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)],
])# _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],
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)])])
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
$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
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
[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' ;;
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=
])
-# _LT_DARWIN_LINKER_FEATURES
-# --------------------------
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
# Checks for linker and compiler features on darwin
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
*) _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}"
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],
;;
*-*-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
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"
])# _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=:
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
-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
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
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.
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
# 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`
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
# 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);
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
-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
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],
[], [
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=
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;
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])
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
;;
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
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
;;
;;
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'
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}`~
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
;;
;;
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'
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.
objformat=`/usr/bin/objformat`
else
case $host_os in
- freebsd[[123]]*) objformat=aout ;;
+ freebsd[[23]].*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
- freebsd2*)
+ freebsd2.*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[[01]]* | freebsdelf3.[[01]]*)
;;
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
;;
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}'
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 ;;
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}'
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
# 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
;;
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
;;
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}'
;;
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
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
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}'
;;
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
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],
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],
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'
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
# 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'
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
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
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
;;
;;
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
_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
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
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"
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
# --------
[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*)
_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,
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
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=
# 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};"\
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
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"
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
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;
}
_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
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],
_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
_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
# 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.
;;
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++*)
_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'
;;
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'
_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
_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
_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,'
# 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
;;
_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,';;
_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.
_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.
#
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
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)=
_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
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}'
_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
# _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'
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
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' ;;
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
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
_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
;;
_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
*)
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
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
_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'
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'
# 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*)
_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
;;
# 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
# 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
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
;;
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
;;
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
_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
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'
_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'
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'
_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"*)
# 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
_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],
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],
[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
])# _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
_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
_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
# 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
fi
test -z "${LDCXX+set}" || LD=$LDCXX
CC=${CXX-"c++"}
+ CFLAGS=$CXXFLAGS
compiler=$CC
_LT_TAGVAR(compiler, $1)=$CC
_LT_CC_BASENAME([$compiler])
# 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'
# 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
_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'
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.
;;
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)
;;
esac
;;
- freebsd[[12]]*)
+ freebsd2.*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
_LT_TAGVAR(ld_shlibs, $1)=no
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)=:
# 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
# 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
_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
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
*)
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
# 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'
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'
;;
_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++
# 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'
_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
_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
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'
;;
# 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
# 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
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'
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
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.
# 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'
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'
fi # test -n "$compiler"
CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
LDCXX=$LD
LD=$lt_save_LD
GCC=$lt_save_GCC
])# _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
# 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)=
}
};
_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
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.
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.
_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.
fi
$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
# PORTME: override above test on systems where it is broken
m4_if([$1], [CXX],
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
])# _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)=
_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
_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
# 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])
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)=
_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
_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
# 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
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
_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"
_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
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
# 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])
GCC=$lt_save_GCC
AC_LANG_RESTORE
-CC="$lt_save_CC"
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
])# _LT_LANG_RC_CONFIG
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],
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
# ------------
# 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
])# _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
+++ /dev/null
-# 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 <pthread.h>:
- case "$host_os" in
- osf*)
- # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
- # groks <pthread.h>. 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 <errno.h>.
- 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 <pthread.h>. 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.h>],
- [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 <pthread.h>])
- # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
- AC_TRY_COMPILE([#include <pthread.h>],
- [#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 <pthread.h> 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 <thread.h>
-#include <synch.h>],
- [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.h>], [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.
+++ /dev/null
-# 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 <limits.h>
- @%:@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));]])
-])
# 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])])
[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)
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],
# 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])
# 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)
])
# 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.
#
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])])
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])])
+++ /dev/null
-# 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 <stdio.h>
-#include <string.h>
-/* 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
-])
+++ /dev/null
-# 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 <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#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 <stddef.h>
-#include <limits.h>], size_t_bits_minus_1=)
- AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
- [#include <stddef.h>], 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 <stddef.h>
- 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])])
-])
+++ /dev/null
-# 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.])
-])
+++ /dev/null
-# 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 <stddef.h> 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 <stddef.h>
- 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
-])
+++ /dev/null
-# 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 <wchar.h> 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: <stdio.h> must be included before
- <wchar.h>.
- BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included
- before <wchar.h>. */
-#include <stddef.h>
-#include <stdio.h>
-#include <time.h>
-#include <wchar.h>
- 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
-])
+++ /dev/null
-# 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)
-])
#! /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 <pinard@iro.umontreal.ca>, 1996.
# This program is free software; you can redistribute it and/or modify
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
# 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.
\`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/'`
\`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/'`
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.
Name: gst-plugins-base
Summary: GStreamer streaming media framework base plug-ins
-Version: 0.10.34
-Release: 1
+Version: 0.10.36
+Release: 7
Group: Applications/Multimedia
License: LGPLv2+
-URL: http://gstreamer.freedesktop.org/
-Source0: http://gstreamer.freedesktop.org/src/gst-plugins-base/%{name}-%{version}.tar.gz
+Source0: %{name}-%{version}.tar.gz
+#Patch0: Samsung-feature-bugs.patch
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(gstreamer-0.10)
BuildRequires: pkgconfig(gstreamer-base-0.10)
BuildRequires: pkgconfig(xv)
+BuildRequires: pkgconfig(pango)
BuildRequires: intltool
%prep
%setup -q
+#%patch0 -p1
%build
-export CFLAGS+=" -DGST_EXT_TEXTRENDER_ENHANCEMENT -DGST_EXT_XV_ENHANCEMENT"
%autogen --noconfigure
-%configure \
- --disable-static \
- --disable-nls \
- --with-html-dir=/tmp/dump \
- --disable-examples \
- --disable-audiorate \
- --disable-gdp \
- --disable-cdparanoia \
- --disable-gnome_vfs \
- --disable-gio \
- --disable-libvisual \
- --disable-freetypetest \
- --disable-rpath \
- --disable-valgrind \
- --disable-gcov \
- --disable-gtk-doc \
- --disable-debug \
- --disable-pango \
- --with-audioresample-format=int
+
+export CFLAGS+=" -Wall -g -fPIC\
+ -DGST_EXT_XV_ENHANCEMENT\
+ -DGST_EXT_LINK_FIMCCONVERT\
+ -DGST_EXT_MIME_TYPES"
+
+%configure --prefix=/usr\
+ --disable-static\
+ --disable-nls\
+ --with-html-dir=/tmp/dump\
+ --disable-examples\
+ --disable-audiorate\
+ --disable-gdp\
+ --disable-cdparanoia\
+ --disable-gnome_vfs\
+ --disable-libvisual\
+ --disable-freetypetest\
+ --disable-rpath\
+ --disable-valgrind\
+ --disable-gcov\
+ --disable-gtk-doc\
+ --disable-debug\
+ --with-audioresample-format=int
make %{?jobs:-j%jobs}
%install
+rm -rf %{buildroot}
%make_install
%files
+%defattr(-,root,root,-)
+#%doc COPYING
+# libraries
%{_libdir}/libgstinterfaces-0.10.so.*
%{_libdir}/libgstaudio-0.10.so.*
-%{_libdir}/libgstcdda-0.10.so.*
+%exclude %{_libdir}/libgstcdda-0.10.so.*
%{_libdir}/libgstfft-0.10.so.*
%{_libdir}/libgstriff-0.10.so.*
%{_libdir}/libgsttag-0.10.so.*
%{_libdir}/gstreamer-0.10/libgsttheora.so
%{_libdir}/gstreamer-0.10/libgstvorbis.so
%{_libdir}/gstreamer-0.10/libgstximagesink.so
+%{_libdir}/gstreamer-0.10/libgstpango.so
+%{_libdir}/gstreamer-0.10/libgstgio.so
+# data
+%{_datadir}/gst-plugins-base/license-translations.dict
%files devel
%defattr(-,root,root,-)
%dir %{_includedir}/gstreamer-0.10/gst/app
-/usr/include/gstreamer-0.10/gst/tag/xmpwriter.h
+%{_includedir}/gstreamer-0.10/gst/tag/xmpwriter.h
%{_includedir}/gstreamer-0.10/gst/app/gstappbuffer.h
%{_includedir}/gstreamer-0.10/gst/app/gstappsink.h
%{_includedir}/gstreamer-0.10/gst/app/gstappsrc.h
%{_includedir}/gstreamer-0.10/gst/audio/audio.h
%{_includedir}/gstreamer-0.10/gst/audio/audio-enumtypes.h
%{_includedir}/gstreamer-0.10/gst/audio/gstaudioclock.h
+%{_includedir}/gstreamer-0.10/gst/audio/gstaudiodecoder.h
+%{_includedir}/gstreamer-0.10/gst/audio/gstaudioencoder.h
%{_includedir}/gstreamer-0.10/gst/audio/gstaudiofilter.h
+%{_includedir}/gstreamer-0.10/gst/audio/gstaudioiec61937.h
%{_includedir}/gstreamer-0.10/gst/audio/gstaudiosink.h
%{_includedir}/gstreamer-0.10/gst/audio/gstaudiosrc.h
%{_includedir}/gstreamer-0.10/gst/audio/gstbaseaudiosink.h
%{_includedir}/gstreamer-0.10/gst/audio/gstringbuffer.h
%{_includedir}/gstreamer-0.10/gst/audio/mixerutils.h
%{_includedir}/gstreamer-0.10/gst/audio/multichannel.h
-%dir %{_includedir}/gstreamer-0.10/gst/cdda
-%{_includedir}/gstreamer-0.10/gst/cdda/gstcddabasesrc.h
+%exclude %dir %{_includedir}/gstreamer-0.10/gst/cdda
+%exclude %{_includedir}/gstreamer-0.10/gst/cdda/gstcddabasesrc.h
%dir %{_includedir}/gstreamer-0.10/gst/floatcast
%{_includedir}/gstreamer-0.10/gst/floatcast/floatcast.h
%dir %{_includedir}/gstreamer-0.10/gst/fft
%dir %{_includedir}/gstreamer-0.10/gst/tag
%{_includedir}/gstreamer-0.10/gst/tag/tag.h
%{_includedir}/gstreamer-0.10/gst/tag/gsttagdemux.h
+%{_includedir}/gstreamer-0.10/gst/tag/gsttagmux.h
%dir %{_includedir}/gstreamer-0.10/gst/video
%{_includedir}/gstreamer-0.10/gst/video/gstvideofilter.h
%{_includedir}/gstreamer-0.10/gst/video/gstvideosink.h
%{_includedir}/gstreamer-0.10/gst/video/video.h
%{_includedir}/gstreamer-0.10/gst/video/video-enumtypes.h
+%{_includedir}/gstreamer-0.10/gst/video/video-overlay-composition.h
%{_libdir}/libgstaudio-0.10.so
%{_libdir}/libgstinterfaces-0.10.so
%{_libdir}/libgstnetbuffer-0.10.so
%{_libdir}/libgstrtp-0.10.so
%{_libdir}/libgsttag-0.10.so
%{_libdir}/libgstvideo-0.10.so
-%{_libdir}/libgstcdda-0.10.so
+%exclude %{_libdir}/libgstcdda-0.10.so
%{_libdir}/libgstpbutils-0.10.so
%{_libdir}/libgstrtsp-0.10.so
%{_libdir}/libgstsdp-0.10.so
%files tools
%defattr(-,root,root,-)
# helper programs
-%{_bindir}/gst-visualise-0.10
%{_bindir}/gst-discoverer-0.10
-%{_mandir}/man1/gst-visualise-0.10*
-
+%exclude %{_bindir}/gst-visualise-0.10
+%exclude %{_mandir}/man1/gst-visualise-0.10*
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
gstreamer-video-uninstalled.pc gstreamer-plugins-base.pc \
gstreamer-plugins-base-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 =
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)$(pkgconfigdir)"
DATA = $(pkgconfig_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@$(NORMAL_UNINSTALL)
@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- test -n "$$files" || exit 0; \
- echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
tags: TAGS
TAGS:
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:
-af az bg ca cs da de el en_GB es eu fi fr gl hu id it ja lt lv nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN
+af az bg ca cs da de el en_GB eo es eu fi fr gl hu id it ja lt lv nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN
+++ /dev/null
-# 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 =
msgstr ""
"Project-Id-Version: gst-plugins 0.7.6\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2004-03-18 14:16+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr ""
msgstr ""
"Project-Id-Version: gst-plugins-0.8.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2004-03-19 18:29+0200\n"
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-26 22:31+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Целевата разделителна способност на медията по вертикал"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "В това CD липсва аудио"
# Copyright © 2005, 2010 Free Software Foundation, Inc.
# This file is put in the public domain.
# Jordi Mallach <jordi@sindominio.net>, 2005, 2010.
+# Jordi Estrada <jordi.estrada@yamaha-motor.es>, 2011.
+# Gil Forcada <gforcada@gnome.org>, 2012.
#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-11-04 23:13+0100\n"
-"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2012-01-01 14:19+0100\n"
+"Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
"Language-Team: Catalan <ca@dodds.net>\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 "Master"
msgstr "Mestre"
msgstr "Baixos"
msgid "Treble"
-msgstr "Treble"
+msgstr "Aguts"
msgid "PCM"
msgstr "PCM"
msgstr "Micròfon"
msgid "PC Speaker"
-msgstr "Altaveu PC"
+msgstr "Altaveu del PC"
msgid "Playback"
msgstr "Reproducció"
msgstr "Captura"
msgid "Could not open device for playback in mono mode."
-msgstr "No s'ha pogut obrir el dispositiu per a reproduir en mode mono."
+msgstr "No s'ha pogut obrir el dispositiu per a la reproducció en mode mono."
msgid "Could not open device for playback in stereo mode."
-msgstr "No s'ha pogut obrir el dispositiu per a reproduir en mode estèreo."
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a la reproducció en mode estèreo."
#, c-format
msgid "Could not open device for playback in %d-channel mode."
-msgstr "No s'ha pogut obrir el dispositiu per a reproduir en mode %d-canals."
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a la reproducció en mode %d-canals."
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 reproduir. El dispositiu "
-"està en ús per una altra aplicació."
+"No s'ha pogut obrir el dispositiu d'àudio per a la reproducció. El "
+"dispositiu està en ús per una altra aplicació."
msgid "Could not open audio device for playback."
-msgstr "No s'ha pogut obrir el dispositiu d'àudio per a reproduir."
+msgstr "No s'ha pogut obrir el dispositiu d'àudio per a la reproducció."
msgid "Could not open device for recording in mono mode."
-msgstr "No s'ha pogut obrir el dispositiu per a enregistrar en mode mono."
+msgstr "No s'ha pogut obrir el dispositiu per a l'enregistrament en mode mono."
msgid "Could not open device for recording in stereo mode."
-msgstr "No s'ha pogut obrir el dispositiu per a enregistrar en mode estèreo."
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a l'enregistrament en mode estèreo."
-# FIXME Trailing dot. jm
#, c-format
msgid "Could not open device for recording in %d-channel mode"
-msgstr "No s'ha pogut obrir el dispositiu per a enregistrar en mode %d-canals"
+msgstr ""
+"No s'ha pogut obrir el dispositiu per a l'enregistrament en mode %d-canals"
msgid ""
"Could not open audio device for recording. Device is being used by another "
"application."
msgstr ""
-"No s'ha pogut obrir el dispositiu d'àudio per a enregistrar. El dispositiu "
-"està en ús per una altra aplicació."
+"No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament. El "
+"dispositiu està en ús per una altra aplicació."
msgid "Could not open audio device for recording."
-msgstr "No s'ha pogut obrir el dispositiu d'àudio per a enregistrar."
+msgstr "No s'ha pogut obrir el dispositiu d'àudio per a l'enregistrament."
msgid "Could not open CD device for reading."
-msgstr "No s'ha pogut obrir el dispositiu del CD per a lectura."
+msgstr "No s'ha pogut obrir el dispositiu del CD per a la lectura."
msgid "Could not seek CD."
msgstr "No s'ha pogut cercar el CD."
"instaŀlat."
msgid "This appears to be a text file"
-msgstr "Açò sembla ser un fitxer de text"
+msgstr "Això sembla ser un fitxer de text"
msgid "Could not determine type of stream"
msgstr "No s'ha pogut determinar el tipus de flux"
#, c-format
msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-msgstr "L'URI de subtítols «%s» és invàlida, s'inhabiliten els subtítols."
+msgstr "L'URI de subtítols «%s» no és vàlid, s'inhabiliten els subtítols."
msgid "No URI specified to play from."
-msgstr "No s'ha especificat cap URL des d'on reproduir."
+msgstr "No s'ha especificat cap URI des d'on reproduir."
#, c-format
msgid "Invalid URI \"%s\"."
-msgstr "L'URI «%s» és invàlid."
+msgstr "L'URI «%s» no és vàlid."
msgid "RTSP streams cannot be played yet."
msgstr "Encara no es poden reproduir els fluxes RTSP."
msgstr "No s'ha pogut crear l'element «decodebin»."
msgid "Source element is invalid."
-msgstr "L'element font és invàlid."
+msgstr "L'element font no és vàlid."
msgid ""
"Only a subtitle stream was detected. Either you are loading a subtitle file "
msgstr ""
"Només s'ha detectat un flux de subtítols. O bé esteu carregant un fitxer de "
"subtítols o qualsevol altre tipus de fitxer de text, o no s'ha reconegut el "
-"fitxer de medi."
+"fitxer multimèdia."
msgid ""
"You do not have a decoder installed to handle this file. You might need to "
"install the necessary plugins."
msgstr ""
-"No teniu un decodificador instaŀlat per a gestionar aquest fitxer. És "
+"No teniu un descodificador instaŀlat per a gestionar aquest fitxer. És "
"possible que necessiteu instaŀlar els connectors necessaris."
msgid "This is not a media file"
-msgstr "Aquest no és un fitxer de medi"
+msgstr "Això no és un fitxer multimèdia"
msgid "A subtitle stream was detected, but no video stream."
msgstr "S'ha detectat un flux de subtítols, però no un flux de vídeo."
msgid "Both autovideosink and xvimagesink elements are missing."
-msgstr "Manquen l'element autovideosink i el xvimagesink."
+msgstr "Manquen els elements autovideosink i xvimagesink."
#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr "Manca l'element «%s» - comproveu la vostra instaŀlació del GStreamer."
msgid "Both autoaudiosink and alsasink elements are missing."
-msgstr "Manquen l'element autoaudiosink i l'alsasink."
+msgstr "Manquen els elements autoaudiosink i alsasink."
#, c-format
msgid "Both autovideosink and %s elements are missing."
#, c-format
msgid "Both autovideosink and %s elements are not working."
-msgstr "Tant l'element autovideosink com el %s no funcionen."
+msgstr "Els elements autovideosink i %s no funcionen."
msgid "The autovideosink element is not working."
msgstr "L'element autovideosink no funciona."
msgid "Custom text sink element is not usable."
-msgstr "L'element sortida personalitzat de text no es pot emprar."
+msgstr "L'element sortida de text personalitzat no es pot utilitzar."
msgid "No volume control found"
msgstr "No s'ha trobat un control de volum"
#, c-format
msgid "Both autoaudiosink and %s elements are not working."
-msgstr "No funcionen tant l'element autoaudiosink com el %s."
+msgstr "Els elements autoaudiosink i %s no funcionen."
msgid "The autoaudiosink element is not working."
msgstr "L'element autoaudiosink no funciona."
#, c-format
msgid "No decoder available for type '%s'."
-msgstr "No hi ha un decodificador disponible per al tipus «%s»."
+msgstr "No hi ha cap descodificador disponible per al tipus «%s»."
msgid "This stream type cannot be played yet."
msgstr "Encara no es pot reproduir aquest tipus de flux."
msgstr "ID TRM al MusicBrainz"
msgid "capturing shutter speed"
-msgstr "velocitat de l'obturador de la captura"
+msgstr "velocitat d'obturació de la captura"
msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Velocitat d'obturació utilitzat en capturar una imatge, en segons"
msgid "capturing focal ratio"
-msgstr ""
+msgstr "relació focal de la captura"
msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Relació focal (nombre f) utilitzat en capturar la imatge"
msgid "capturing focal length"
-msgstr ""
+msgstr "longitud focal de la captura"
msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Longitud focal de la lent utilitzada en capturar la imatge, en mm"
msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "relació de zoom digital de la captura"
msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Relació de zoom digital utilitzat en capturar una imatge"
msgid "capturing iso speed"
-msgstr ""
+msgstr "velocitat iso de la captura"
msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "La velocitat ISO utilitzada en capturar una imatge"
msgid "capturing exposure program"
-msgstr ""
+msgstr "programa d'exposició de la captura"
msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "El programa d'exposició utilitzar en capturar una imatge"
msgid "capturing exposure mode"
-msgstr ""
+msgstr "mode d'exposició de la captura"
msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "El mode d'exposició utilitzat en capturar una imatge"
+#, fuzzy
msgid "capturing exposure compensation"
-msgstr ""
+msgstr "mode d'exposició de la captura"
+#, fuzzy
msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "El mode d'exposició utilitzat en capturar una imatge"
msgid "capturing scene capture type"
-msgstr ""
+msgstr "tipus de captura d'escena de la captura"
msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "El mode de captura d'escena utilitzat en capturar una imatge"
msgid "capturing gain adjustment"
-msgstr ""
+msgstr "ajust de guany de la captura"
msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "L'ajust del guany general aplicat a una imatge"
msgid "capturing white balance"
-msgstr ""
+msgstr "balanç de blancs de la captura"
msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "El mode de balanç de blancs utilitzat en capturar una imatge"
msgid "capturing contrast"
-msgstr ""
+msgstr "contrast de la captura"
msgid "The direction of contrast processing applied when capturing an image"
msgstr ""
+"La direcció del processament del contrast aplicada en capturar una imatge"
msgid "capturing saturation"
-msgstr ""
+msgstr "saturació de la captura"
msgid "The direction of saturation processing applied when capturing an image"
msgstr ""
+"La direcció del processament de la saturació aplicada en capturar una imatge"
msgid "capturing sharpness"
-msgstr ""
+msgstr "nitidesa de la captura"
msgid "The direction of sharpness processing applied when capturing an image"
msgstr ""
+"La direcció del processament de la nitidesa aplicada en capturar una imatge"
msgid "capturing flash fired"
-msgstr ""
+msgstr "flaix de la captura"
msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Si el flaix s'ha disparat en capturar una imatge"
msgid "capturing flash mode"
-msgstr ""
+msgstr "mode de flaix de la captura"
msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "El mode de flaix seleccionat en capturar una imatge"
msgid "capturing metering mode"
-msgstr ""
+msgstr "mode de mesurament de la captura"
msgid ""
"The metering mode used while determining exposure for capturing an image"
msgstr ""
+"El mode de mesurament utilitzat en determinar l'exposició per a capturar una "
+"imatge"
msgid "capturing source"
-msgstr ""
+msgstr "font de la captura"
msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "La font o tipus de dispositiu utilitzat per a la captura"
msgid "image horizontal ppi"
-msgstr "ppi horitzontal de la imatge"
+msgstr "ppp horitzontal de la imatge"
msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr "Densitat horitzontal de píxels del medi (imatge/vídeo), en ppi"
+msgstr "Densitat horitzontal de píxels del multimèdia (imatge/vídeo), en ppp"
msgid "image vertical ppi"
-msgstr "ppi vertical de la imatge"
+msgstr "ppp vertical de la imatge"
msgid "Media (image/video) intended vertical pixel density in ppi"
-msgstr "Densitat vertical de píxels del medi (imatge/vídeo), en ppi"
+msgstr "Densitat vertical de píxels del multimèdia (imatge/vídeo), en ppp"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
msgid "This CD has no audio tracks"
msgstr "Aquest CD no té pistes d'àudio"
msgstr "Etiqueta APE"
msgid "ICY internet radio"
-msgstr "Emisora de ràdio per Internet ICY"
+msgstr "Emissora de ràdio per Internet ICY"
msgid "Apple Lossless Audio (ALAC)"
-msgstr "Apple Lossless Audio (ALAC)"
+msgstr "Àudio sense pèrdues d'Apple (ALAC)"
msgid "Free Lossless Audio Codec (FLAC)"
-msgstr "Free Lossless Audio Codec (FLAC)"
+msgstr "Còdec d'àudio sense pèrdues lliure (FLAC)"
msgid "Lossless True Audio (TTA)"
-msgstr "Lossless True Audio (TTA)"
+msgstr "Àudio sense pèrdues real (TTA)"
msgid "Windows Media Speech"
-msgstr "Windows Media Speech"
+msgstr "Parla de Windows Media"
msgid "CYUV Lossless"
-msgstr "CYUV sense pèrdua"
+msgstr "CYUV sense pèrdues"
msgid "FFMpeg v1"
msgstr "FFMpeg v1"
msgid "Lossless MSZH"
-msgstr "MSZH sense pèrdua"
+msgstr "MSZH sense pèrdues"
msgid "Uncompressed Gray Image"
-msgstr "Imatge en escala de grisos no comprimida"
+msgstr "Imatge en escala de grisos sense comprimir"
msgid "Run-length encoding"
-msgstr ""
+msgstr "Codificació Run-length"
msgid "Sami subtitle format"
msgstr "Format de subtítols Sami"
msgstr "Format de subtítols Kate"
msgid "Uncompressed planar YUV 4:2:0"
-msgstr ""
+msgstr "YUV 4:2:0 planar sense comprimir"
msgid "Uncompressed planar YVU 4:2:0"
-msgstr ""
+msgstr "YVU 4:2:0 planar sense comprimir"
msgid "Uncompressed packed YUV 4:2:2"
-msgstr ""
+msgstr "YUV 4:2:2 empaquetat sense comprimir"
msgid "Uncompressed packed YUV 4:1:0"
-msgstr ""
+msgstr "YUV 4:1:0 empaquetat sense comprimir"
msgid "Uncompressed packed YVU 4:1:0"
-msgstr ""
+msgstr "YVU 4:1:0 empaquetat sense comprimir"
msgid "Uncompressed packed YUV 4:1:1"
-msgstr ""
+msgstr "YUV 4:1:1 empaquetat sense comprimir"
msgid "Uncompressed packed YUV 4:4:4"
-msgstr ""
+msgstr "YUV 4:4:4 empaquetat sense comprimir"
msgid "Uncompressed planar YUV 4:2:2"
-msgstr ""
+msgstr "YUV 4:2:2 planar sense comprimir"
msgid "Uncompressed planar YUV 4:1:1"
-msgstr ""
+msgstr "YUV 4:1:1 planar sense comprimir"
msgid "Uncompressed black and white Y-plane"
-msgstr ""
+msgstr "Pla Y blanc i negre sense comprimir"
msgid "Uncompressed YUV"
msgstr "YUV sense comprimir"
#, c-format
msgid "Uncompressed palettized %d-bit %s"
-msgstr ""
+msgstr "Paletitzat %d-bit %s sense comprimir"
#, c-format
msgid "DivX MPEG-4 Version %d"
#, c-format
msgid "Raw %d-bit PCM audio"
-msgstr "Àudio en cru de %d-bit"
+msgstr "Àudio PCM en cru de %d-bit"
msgid "Raw PCM audio"
msgstr "Àudio PCM en cru"
msgstr "Font de DVD"
msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr "Font del Real Time Streaming Protocol (RTSP)"
+msgstr "Font del protocol de transmissió en temps real (RTSP)"
msgid "Microsoft Media Server (MMS) protocol source"
-msgstr "Font del protocol Microsoft Media Server (MMS)"
+msgstr "Font del protocol de servidor Microsoft Media (MMS)"
#, c-format
msgid "%s protocol source"
#, c-format
msgid "%s demuxer"
-msgstr "Demultiplexor %s"
+msgstr "Desmultiplexor %s"
#, c-format
msgid "%s decoder"
-msgstr "Decodificador %s"
+msgstr "Descodificador %s"
#, c-format
msgid "%s video RTP payloader"
msgstr "L'element és desconegut"
msgid "Unknown decoder element"
-msgstr "L'element decodificador és desconegut"
+msgstr "L'element descodificador és desconegut"
msgid "Unknown encoder element"
msgstr "L'element codificador és desconegut"
#, c-format
msgid "Could not open device \"%s\" for reading and writing."
-msgstr "No s'ha pogut obrir el dispositiu «%s» per a llegir i escriure."
+msgstr "No s'ha pogut obrir el dispositiu «%s» per a lectura o escriptura."
#~ msgid "discid"
#~ msgstr "id del disc"
# Czech translations of gst-plugins-base.
-# Copyright (C) 2007, 2008, 2009, 2010 the author(s) of gst-plugins-base.
+# Copyright (C) 2007, 2008, 2009, 2010, 2011 the author(s) of gst-plugins-base.
# Copyright (C) 2004 Miloslav Trmac <mitr@volny.cz>.
# This file is put in the public domain.
# Miloslav Trmac <mitr@volny.cz>, 2004.
-# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010.
+# Petr Kovar <pknbe@volny.cz>, 2007, 2008, 2009, 2010, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base-0.10.30.3\n"
+"Project-Id-Version: gst-plugins-base-0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-10-31 10:51+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-05-29 16:49+0200\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
"Language: cs\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Lokalize 1.1\n"
+"X-Generator: Lokalize 1.2\n"
msgid "Master"
msgstr "Master"
msgid "The exposure mode used when capturing an image"
msgstr "Režim expozice při záznamu obrazu"
-#, fuzzy
msgid "capturing exposure compensation"
-msgstr "režim expozice záznamu"
+msgstr "kompenzace expozice záznamu"
-#, fuzzy
msgid "The exposure compensation used when capturing an image"
-msgstr "Režim expozice při záznamu obrazu"
+msgstr "Kompenzace expozice při záznamu obrazu"
msgid "capturing scene capture type"
msgstr "typ zachycení scény záznamu"
msgstr ""
"Zamýšlená hustota pixelů multimédia (image/video) svisle v pixelech na palec"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Toto CD nemá žádné zvukové stopy"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-28 16:38+0100\n"
"Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Påtænkt lodret billedtæthed for medie (billede/video) i ppi"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Denne cd har ingen lydspor"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-28 00:04+0200\n"
"Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Vertikale Auflösung des Bildes oder Videos in ppi (Pixel pro Zoll)"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Auf dieser CD befinden sich keine Audio-Titel"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-10-27 12:05+0200\n"
"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
"Η σκοπούμενη κάθετη πυκνότητα εικονοστοιχείων (pixel) του μέσου (εικόνα/"
"βίντεο) σε ppi"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Αυτό το CD δεν έχει ηχητικά κομμάτια"
msgstr ""
"Project-Id-Version: gst-plugins 0.8.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2004-04-26 10:41-0400\n"
"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
"Language-Team: English (British) <en_gb@li.org>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr ""
--- /dev/null
+# Esperanto translation for gst-plugins-base.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gst-plugins-base package.
+# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-06-04 21:11+0100\n"
+"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
+"Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\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 "Master"
+msgstr "Ĉefa regilo"
+
+msgid "Bass"
+msgstr "Baso"
+
+msgid "Treble"
+msgstr ""
+
+msgid "PCM"
+msgstr ""
+
+msgid "Synth"
+msgstr "Sintezilo"
+
+msgid "Line-in"
+msgstr ""
+
+msgid "CD"
+msgstr "KD"
+
+msgid "Microphone"
+msgstr "Mikrofono"
+
+msgid "PC Speaker"
+msgstr "Komputila laŭtparolilo"
+
+msgid "Playback"
+msgstr "Reproduktado"
+
+msgid "Capture"
+msgstr "Kapti"
+
+msgid "Could not open device for playback in mono mode."
+msgstr "Ne eblis malfermi aparaton por reproduktado per unukanala reĝimo."
+
+msgid "Could not open device for playback in stereo mode."
+msgstr "Ne eblis malfermi aparaton por reproduktado per dukanala reĝimo."
+
+#, c-format
+msgid "Could not open device for playback in %d-channel mode."
+msgstr "Ne eblis malfermi la aparaton por reproduktado per %d-kanala reĝimo."
+
+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."
+msgstr "Ne eblis malfermi la sonaparaton por reproduktado."
+
+msgid "Could not open device for recording in mono mode."
+msgstr "Ne eblis malfermi la aparaton por registrado per unukanala reĝimo."
+
+msgid "Could not open device for recording in stereo mode."
+msgstr "Ne eblis malfermi la aparaton por registrado per dukanala reĝimo."
+
+#, c-format
+msgid "Could not open device for recording in %d-channel mode"
+msgstr "Ne eblis malfermi la aparaton por registrado per %d-kanala reĝimo."
+
+msgid ""
+"Could not open audio device for recording. Device is being used by another "
+"application."
+msgstr ""
+"Ne eblis malfermi la aparaton por registrado. Ĝi estas uzate de alia "
+"aplikaĵo."
+
+msgid "Could not open audio device for recording."
+msgstr "Ne eblis malfermi sonaparaton por registrado."
+
+msgid "Could not open CD device for reading."
+msgstr "Ne eblis malfermi KD-aparaton por legado."
+
+msgid "Could not seek CD."
+msgstr "Ne eblis traserĉi la KD-n."
+
+msgid "Could not read CD."
+msgstr "Ne eblis legi la KD-n."
+
+#, c-format
+msgid "Could not open vfs file \"%s\" for writing: %s."
+msgstr "Ne eblis malfermi la vfs-dosieron \"%s\" por skribado: %s."
+
+msgid "No filename given"
+msgstr "Ne donis dosiernomon"
+
+#, c-format
+msgid "Could not close vfs file \"%s\"."
+msgstr "Ne eblis fermi vfs-dosieron \"%s\"."
+
+#, c-format
+msgid "Error while writing to file \"%s\"."
+msgstr "Eraro dum skribo al dosiero \"%s\"."
+
+msgid "Internal data stream error."
+msgstr "Interna datumflu-eraro."
+
+#, c-format
+msgid "A %s plugin is required to play this stream, but not installed."
+msgstr "%s-kromprogramo bezonatas, sed tia ne estas instalite."
+
+msgid "This appears to be a text file"
+msgstr "Tio ŝajnas esti tekstdosiero"
+
+msgid "Could not determine type of stream"
+msgstr "Ne eblis rekoni la tipon de la fluo"
+
+#, c-format
+msgid "Invalid subtitle URI \"%s\", subtitles disabled."
+msgstr "Nevalida subtekst-adreso \"%s\", subtekstoj estos elŝaltate."
+
+msgid "No URI specified to play from."
+msgstr ""
+
+#, c-format
+msgid "Invalid URI \"%s\"."
+msgstr "Nevalida URI \"%s\"."
+
+msgid "RTSP streams cannot be played yet."
+msgstr "Ankoraŭ ne eblas ludi RTSP-fluojn."
+
+msgid "Could not create \"decodebin\" element."
+msgstr "Ne eblis krei \"decodebin\"-elementon."
+
+msgid "Source element is invalid."
+msgstr "Font-elemento estas nevalide."
+
+msgid ""
+"Only a subtitle stream was detected. Either you are loading a subtitle file "
+"or some other type of text file, or the media file was not recognized."
+msgstr ""
+
+msgid ""
+"You do not have a decoder installed to handle this file. You might need to "
+"install the necessary plugins."
+msgstr ""
+
+msgid "This is not a media file"
+msgstr "Tio ne estas aŭdvidaĵa dosiero"
+
+msgid "A subtitle stream was detected, but no video stream."
+msgstr ""
+
+msgid "Both autovideosink and xvimagesink elements are missing."
+msgstr "Ambaŭ elementoj \"autovideosink\" kaj \"xvimagesink\" mankas."
+
+#, c-format
+msgid "Missing element '%s' - check your GStreamer installation."
+msgstr ""
+
+msgid "Both autoaudiosink and alsasink elements are missing."
+msgstr ""
+
+#, c-format
+msgid "Both autovideosink and %s elements are missing."
+msgstr ""
+
+msgid "The autovideosink element is missing."
+msgstr ""
+
+#, c-format
+msgid "Configured videosink %s is not working."
+msgstr ""
+
+#, c-format
+msgid "Both autovideosink and %s elements are not working."
+msgstr ""
+
+msgid "The autovideosink element is not working."
+msgstr ""
+
+msgid "Custom text sink element is not usable."
+msgstr ""
+
+msgid "No volume control found"
+msgstr "Ne trovis laŭtec-regilon"
+
+#, c-format
+msgid "Both autoaudiosink and %s elements are missing."
+msgstr ""
+
+msgid "The autoaudiosink element is missing."
+msgstr ""
+
+#, c-format
+msgid "Configured audiosink %s is not working."
+msgstr ""
+
+#, c-format
+msgid "Both autoaudiosink and %s elements are not working."
+msgstr ""
+
+msgid "The autoaudiosink element is not working."
+msgstr ""
+
+msgid "Can't play a text file without video or visualizations."
+msgstr ""
+
+#, c-format
+msgid "No decoder available for type '%s'."
+msgstr ""
+
+msgid "This stream type cannot be played yet."
+msgstr ""
+
+#, c-format
+msgid "No URI handler implemented for \"%s\"."
+msgstr ""
+
+#, c-format
+msgid "Error while sending data to \"%s:%d\"."
+msgstr "Eraro dum sendado de datumoj al \"%s:%d\"."
+
+#, c-format
+msgid "Error while sending gdp header data to \"%s:%d\"."
+msgstr ""
+
+#, c-format
+msgid "Error while sending gdp payload data to \"%s:%d\"."
+msgstr ""
+
+#, c-format
+msgid "Connection to %s:%d refused."
+msgstr ""
+
+msgid "Can't record audio fast enough"
+msgstr "Ne eblas registri la sonon sufiĉe rapide"
+
+msgid "Failed to read tag: not enough data"
+msgstr ""
+
+msgid "track ID"
+msgstr ""
+
+msgid "MusicBrainz track ID"
+msgstr ""
+
+msgid "artist ID"
+msgstr ""
+
+msgid "MusicBrainz artist ID"
+msgstr ""
+
+msgid "album ID"
+msgstr "album-ID"
+
+msgid "MusicBrainz album ID"
+msgstr ""
+
+msgid "album artist ID"
+msgstr ""
+
+msgid "MusicBrainz album artist ID"
+msgstr ""
+
+msgid "track TRM ID"
+msgstr ""
+
+msgid "MusicBrainz TRM ID"
+msgstr ""
+
+msgid "capturing shutter speed"
+msgstr ""
+
+msgid "Shutter speed used when capturing an image, in seconds"
+msgstr ""
+
+msgid "capturing focal ratio"
+msgstr ""
+
+msgid "Focal ratio (f-number) used when capturing the image"
+msgstr ""
+
+msgid "capturing focal length"
+msgstr ""
+
+msgid "Focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+msgid "capturing digital zoom ratio"
+msgstr ""
+
+msgid "Digital zoom ratio used when capturing an image"
+msgstr ""
+
+msgid "capturing iso speed"
+msgstr ""
+
+msgid "The ISO speed used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure program"
+msgstr ""
+
+msgid "The exposure program used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure mode"
+msgstr ""
+
+msgid "The exposure mode used when capturing an image"
+msgstr ""
+
+msgid "capturing exposure compensation"
+msgstr ""
+
+msgid "The exposure compensation used when capturing an image"
+msgstr ""
+
+msgid "capturing scene capture type"
+msgstr ""
+
+msgid "The scene capture mode used when capturing an image"
+msgstr ""
+
+msgid "capturing gain adjustment"
+msgstr ""
+
+msgid "The overall gain adjustment applied on an image"
+msgstr ""
+
+msgid "capturing white balance"
+msgstr ""
+
+msgid "The white balance mode set when capturing an image"
+msgstr ""
+
+msgid "capturing contrast"
+msgstr ""
+
+msgid "The direction of contrast processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing saturation"
+msgstr ""
+
+msgid "The direction of saturation processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing sharpness"
+msgstr ""
+
+msgid "The direction of sharpness processing applied when capturing an image"
+msgstr ""
+
+msgid "capturing flash fired"
+msgstr ""
+
+msgid "If the flash fired while capturing an image"
+msgstr ""
+
+msgid "capturing flash mode"
+msgstr ""
+
+msgid "The selected flash mode while capturing an image"
+msgstr ""
+
+msgid "capturing metering mode"
+msgstr ""
+
+msgid ""
+"The metering mode used while determining exposure for capturing an image"
+msgstr ""
+
+msgid "capturing source"
+msgstr ""
+
+msgid "The source or type of device used for the capture"
+msgstr ""
+
+msgid "image horizontal ppi"
+msgstr ""
+
+msgid "Media (image/video) intended horizontal pixel density in ppi"
+msgstr ""
+
+msgid "image vertical ppi"
+msgstr ""
+
+msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr ""
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
+msgid "This CD has no audio tracks"
+msgstr ""
+
+msgid "ID3 tag"
+msgstr ""
+
+msgid "APE tag"
+msgstr ""
+
+msgid "ICY internet radio"
+msgstr ""
+
+msgid "Apple Lossless Audio (ALAC)"
+msgstr ""
+
+msgid "Free Lossless Audio Codec (FLAC)"
+msgstr ""
+
+msgid "Lossless True Audio (TTA)"
+msgstr ""
+
+msgid "Windows Media Speech"
+msgstr ""
+
+msgid "CYUV Lossless"
+msgstr ""
+
+msgid "FFMpeg v1"
+msgstr "FFMpeg v1"
+
+msgid "Lossless MSZH"
+msgstr ""
+
+msgid "Uncompressed Gray Image"
+msgstr ""
+
+msgid "Run-length encoding"
+msgstr ""
+
+msgid "Sami subtitle format"
+msgstr ""
+
+msgid "TMPlayer subtitle format"
+msgstr ""
+
+msgid "Kate subtitle format"
+msgstr ""
+
+msgid "Uncompressed planar YUV 4:2:0"
+msgstr ""
+
+msgid "Uncompressed planar YVU 4:2:0"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:2:2"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:1:0"
+msgstr ""
+
+msgid "Uncompressed packed YVU 4:1:0"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:1:1"
+msgstr ""
+
+msgid "Uncompressed packed YUV 4:4:4"
+msgstr ""
+
+msgid "Uncompressed planar YUV 4:2:2"
+msgstr ""
+
+msgid "Uncompressed planar YUV 4:1:1"
+msgstr ""
+
+msgid "Uncompressed black and white Y-plane"
+msgstr ""
+
+msgid "Uncompressed YUV"
+msgstr ""
+
+#, c-format
+msgid "Uncompressed palettized %d-bit %s"
+msgstr ""
+
+#, c-format
+msgid "DivX MPEG-4 Version %d"
+msgstr "\"DivX MPEG-4\"-versio %d"
+
+#, c-format
+msgid "Raw %d-bit PCM audio"
+msgstr ""
+
+msgid "Raw PCM audio"
+msgstr ""
+
+#, c-format
+msgid "Raw %d-bit floating-point audio"
+msgstr ""
+
+msgid "Raw floating-point audio"
+msgstr ""
+
+msgid "Audio CD source"
+msgstr "Son-KD-fonto"
+
+msgid "DVD source"
+msgstr "DVD-fonto"
+
+msgid "Real Time Streaming Protocol (RTSP) source"
+msgstr ""
+
+msgid "Microsoft Media Server (MMS) protocol source"
+msgstr ""
+
+#, c-format
+msgid "%s protocol source"
+msgstr "%s protokolfonto"
+
+#, c-format
+msgid "%s video RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP depayloader"
+msgstr ""
+
+#, c-format
+msgid "%s demuxer"
+msgstr ""
+
+#, c-format
+msgid "%s decoder"
+msgstr ""
+
+#, c-format
+msgid "%s video RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s audio RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s RTP payloader"
+msgstr ""
+
+#, c-format
+msgid "%s muxer"
+msgstr ""
+
+#, c-format
+msgid "%s encoder"
+msgstr ""
+
+#, c-format
+msgid "GStreamer element %s"
+msgstr ""
+
+msgid "Unknown source element"
+msgstr "Nekonata fontelemento"
+
+msgid "Unknown sink element"
+msgstr ""
+
+msgid "Unknown element"
+msgstr "Nekonata elemento"
+
+msgid "Unknown decoder element"
+msgstr ""
+
+msgid "Unknown encoder element"
+msgstr ""
+
+msgid "Plugin or element of unknown type"
+msgstr ""
+
+msgid "No device specified."
+msgstr ""
+
+#, c-format
+msgid "Device \"%s\" does not exist."
+msgstr "Aparato \"%s\" ne ekzistas."
+
+#, c-format
+msgid "Device \"%s\" is already being used."
+msgstr "Aparato \"%s\" jam estas uzata."
+
+#, c-format
+msgid "Could not open device \"%s\" for reading and writing."
+msgstr "Ne eblis malfermi aparaton \"%s\" por legado aŭ skribado."
-# translation of gst-plugins-base-0.10.30.3.po to Español
+# translation of gst-plugins-base-0.10.32.2.po to Español
# spanish translation for gst-plugins-base
# This file is put in the public domain.
-# Jorge González González <aloriel@gmail.com>, 2007, 2008, 2009, 2010.
+# Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-11-02 15:40+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-10-02 15:46+0200\n"
"Last-Translator: Jorge González González <aloriel@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
"Language: es\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"
+"Plural-Forms: nplurals=2; plural=(n!=1);\n"
msgid "Master"
msgstr "Maestro"
msgid "The exposure mode used when capturing an image"
msgstr "El modo de exposición usado al tomar una imagen"
-#, fuzzy
msgid "capturing exposure compensation"
-msgstr "modo de exposición de la toma"
+msgstr "compensación de la exposición en la captura"
-#, fuzzy
msgid "The exposure compensation used when capturing an image"
-msgstr "El modo de exposición usado al tomar una imagen"
+msgstr "La compensación de exposición usada al capturar una imagen"
msgid "capturing scene capture type"
msgstr "tipo de escena usado en la toma"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Densidad vertical de píxeles, en ppi, del medio (imagen o vídeo)"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Este CD no tiene pistas de sonido"
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-03-25 12:32+0100\n"
"Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "CD honek ez du audio-pistarik"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-12-31 23:21+0200\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Median (kuva tai video) tarkoitettu pystysuora pikselitiheys ppi:nä"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Tällä CD-levyllä ei ole ääniraitoja"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-28 09:19+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
"Densité de pixels verticale annoncée par le média (image/vidéo), en points "
"par pouce"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Ce CD ne contient aucune piste audio"
# Copyright (C) 2010 Fran Dieguez
# This file is distributed under the same license as the gst-plugins-base package.
# Fran Diéguez <frandieguez@ubuntu.com>, 2010, 2011.
+# Fran Dieguez <frandieguez@ubuntu.com>, 2011.
#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.31.2\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2011-01-09 21:20+0100\n"
-"Last-Translator: Fran Diéguez <frandieguez@ubuntu.com>\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-09-05 12:48+0200\n"
+"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
msgid "The exposure mode used when capturing an image"
msgstr "O modo de exposición usado ao tomar unha imaxe"
-#, fuzzy
msgid "capturing exposure compensation"
-msgstr "modo de exposición da toma"
+msgstr "capturando a compensación de exposición"
-#, fuzzy
msgid "The exposure compensation used when capturing an image"
-msgstr "O modo de exposición usado ao tomar unha imaxe"
+msgstr "A compensación de exposición usada ao capturar unha imaxe"
msgid "capturing scene capture type"
msgstr "tipo de escena usado na toma"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Densidade vertical de píxeles, en ppi, do medio (imaxe ou vídeo)"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Este CD non contén pistas de son"
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.34\n"
+"Project-Id-Version: gst-plugins-base 0.10.36\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "Capture"
msgstr ""
-#: ext/alsa/gstalsasink.c:486
+#: ext/alsa/gstalsasink.c:485
msgid "Could not open device for playback in mono mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:488
+#: ext/alsa/gstalsasink.c:487
msgid "Could not open device for playback in stereo mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:492
+#: ext/alsa/gstalsasink.c:491
#, c-format
msgid "Could not open device for playback in %d-channel mode."
msgstr ""
-#: ext/alsa/gstalsasink.c:695
+#: ext/alsa/gstalsasink.c:687
msgid ""
"Could not open audio device for playback. Device is being used by another "
"application."
msgstr ""
-#: ext/alsa/gstalsasink.c:700
+#: ext/alsa/gstalsasink.c:692
msgid "Could not open audio device for playback."
msgstr ""
-#: ext/alsa/gstalsasrc.c:421
+#: ext/alsa/gstalsasrc.c:422
msgid "Could not open device for recording in mono mode."
msgstr ""
-#: ext/alsa/gstalsasrc.c:423
+#: ext/alsa/gstalsasrc.c:424
msgid "Could not open device for recording in stereo mode."
msgstr ""
-#: ext/alsa/gstalsasrc.c:427
+#: ext/alsa/gstalsasrc.c:428
#, c-format
msgid "Could not open device for recording in %d-channel mode"
msgstr ""
-#: ext/alsa/gstalsasrc.c:633
+#: ext/alsa/gstalsasrc.c:634
msgid ""
"Could not open audio device for recording. Device is being used by another "
"application."
msgstr ""
-#: ext/alsa/gstalsasrc.c:638
+#: ext/alsa/gstalsasrc.c:639
msgid "Could not open audio device for recording."
msgstr ""
msgid "Could not read CD."
msgstr ""
-#: ext/gnomevfs/gstgnomevfssink.c:375
+#: ext/gnomevfs/gstgnomevfssink.c:374
#, c-format
msgid "Could not open vfs file \"%s\" for writing: %s."
msgstr ""
-#: ext/gnomevfs/gstgnomevfssink.c:382
+#: ext/gnomevfs/gstgnomevfssink.c:381
msgid "No filename given"
msgstr ""
-#: ext/gnomevfs/gstgnomevfssink.c:408
+#: ext/gnomevfs/gstgnomevfssink.c:407
#, c-format
msgid "Could not close vfs file \"%s\"."
msgstr ""
-#: ext/gnomevfs/gstgnomevfssink.c:566
+#: ext/gnomevfs/gstgnomevfssink.c:565
#, c-format
msgid "Error while writing to file \"%s\"."
msgstr ""
-#: ext/ogg/gstoggdemux.c:3480
+#: ext/ogg/gstoggdemux.c:4466
msgid "Internal data stream error."
msgstr ""
-#: gst/playback/gstdecodebin.c:994 gst/playback/gstdecodebin2.c:1576
-#: gst/playback/gstplaybasebin.c:1548 gst/playback/gstplaybasebin.c:1684
+#: gst/playback/gstdecodebin.c:1000 gst/playback/gstdecodebin2.c:1696
+#: gst/playback/gstplaybasebin.c:1549 gst/playback/gstplaybasebin.c:1685
#, c-format
msgid "A %s plugin is required to play this stream, but not installed."
msgstr ""
-#: gst/playback/gstdecodebin.c:1825 gst/playback/gstdecodebin2.c:2061
+#: gst/playback/gstdecodebin.c:1845 gst/playback/gstdecodebin2.c:2264
msgid "This appears to be a text file"
msgstr ""
-#: gst/playback/gstdecodebin2.c:1583
+#: gst/playback/gstdecodebin2.c:1703
msgid "Could not determine type of stream"
msgstr ""
-#: gst/playback/gstplaybasebin.c:1531
+#: gst/playback/gstplaybasebin.c:1532
#, c-format
msgid "Invalid subtitle URI \"%s\", subtitles disabled."
msgstr ""
-#: gst/playback/gstplaybasebin.c:1654 gst/playback/gsturidecodebin.c:1148
+#: gst/playback/gstplaybasebin.c:1655 gst/playback/gsturidecodebin.c:1256
msgid "No URI specified to play from."
msgstr ""
-#: gst/playback/gstplaybasebin.c:1660 gst/playback/gsturidecodebin.c:1154
+#: gst/playback/gstplaybasebin.c:1661 gst/playback/gsturidecodebin.c:1262
#, c-format
msgid "Invalid URI \"%s\"."
msgstr ""
-#: gst/playback/gstplaybasebin.c:1666
+#: gst/playback/gstplaybasebin.c:1667
msgid "RTSP streams cannot be played yet."
msgstr ""
-#: gst/playback/gstplaybasebin.c:2019
+#: gst/playback/gstplaybasebin.c:2020
msgid "Could not create \"decodebin\" element."
msgstr ""
-#: gst/playback/gstplaybasebin.c:2239 gst/playback/gsturidecodebin.c:1986
+#: gst/playback/gstplaybasebin.c:2240 gst/playback/gsturidecodebin.c:2091
msgid "Source element is invalid."
msgstr ""
-#: gst/playback/gstplaybasebin.c:2316
+#: gst/playback/gstplaybasebin.c:2317
msgid ""
"Only a subtitle stream was detected. Either you are loading a subtitle file "
"or some other type of text file, or the media file was not recognized."
msgstr ""
-#: gst/playback/gstplaybasebin.c:2321
+#: gst/playback/gstplaybasebin.c:2322
msgid ""
"You do not have a decoder installed to handle this file. You might need to "
"install the necessary plugins."
msgstr ""
-#: gst/playback/gstplaybasebin.c:2325
+#: gst/playback/gstplaybasebin.c:2326
msgid "This is not a media file"
msgstr ""
-#: gst/playback/gstplaybasebin.c:2330
+#: gst/playback/gstplaybasebin.c:2331
msgid "A subtitle stream was detected, but no video stream."
msgstr ""
#: gst/playback/gstplaybin.c:1177 gst/playback/gstplaybin.c:1186
#: gst/playback/gstplaybin.c:1195 gst/playback/gstplaybin.c:1326
#: gst/playback/gstplaybin.c:1335 gst/playback/gstplaybin.c:1344
-#: gst/playback/gstplaysink.c:1116 gst/playback/gstplaysink.c:1129
-#: gst/playback/gstplaysink.c:1260 gst/playback/gstplaysink.c:1277
-#: gst/playback/gstplaysink.c:1296 gst/playback/gstplaysink.c:1466
-#: gst/playback/gstplaysink.c:1515 gst/playback/gstplaysink.c:1530
-#: gst/playback/gstplaysink.c:1555 gst/playback/gstplaysink.c:1579
-#: gst/playback/gstplaysink.c:1699 gst/playback/gstplaysink.c:1766
-#: gst/playback/gstplaysink.c:1785 gst/playback/gstplaysink.c:1805
-#: gst/playback/gstplaysink.c:2080 gst/playback/gstplaysink.c:2089
-#: gst/playback/gstplaysink.c:2098 gst/playback/gstplaysink.c:2107
-#: gst/playback/gstplaysink.c:2888 gst/playback/gsturidecodebin.c:1235
+#: gst/playback/gstplaysink.c:1186 gst/playback/gstplaysink.c:1199
+#: gst/playback/gstplaysink.c:1330 gst/playback/gstplaysink.c:1510
+#: gst/playback/gstplaysink.c:1559 gst/playback/gstplaysink.c:1574
+#: gst/playback/gstplaysink.c:1599 gst/playback/gstplaysink.c:1631
+#: gst/playback/gstplaysink.c:1751 gst/playback/gstplaysink.c:2106
+#: gst/playback/gstplaysink.c:2115 gst/playback/gstplaysink.c:2124
+#: gst/playback/gstplaysink.c:2133 gst/playback/gstplaysink.c:3125
+#: gst/playback/gsturidecodebin.c:1343
#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
msgstr ""
msgid "Both autoaudiosink and alsasink elements are missing."
msgstr ""
-#: gst/playback/gstplaysink.c:1336
+#: gst/playback/gstplaysink.c:1379
#, c-format
msgid "Both autovideosink and %s elements are missing."
msgstr ""
-#: gst/playback/gstplaysink.c:1340
+#: gst/playback/gstplaysink.c:1383
msgid "The autovideosink element is missing."
msgstr ""
-#: gst/playback/gstplaysink.c:1345
+#: gst/playback/gstplaysink.c:1388
#, c-format
msgid "Configured videosink %s is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1349
+#: gst/playback/gstplaysink.c:1392
#, c-format
msgid "Both autovideosink and %s elements are not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1353
+#: gst/playback/gstplaysink.c:1396
msgid "The autovideosink element is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1503
+#: gst/playback/gstplaysink.c:1547
msgid "Custom text sink element is not usable."
msgstr ""
-#: gst/playback/gstplaysink.c:1848
+#: gst/playback/gstplaysink.c:1869
msgid "No volume control found"
msgstr ""
-#: gst/playback/gstplaysink.c:1868
+#: gst/playback/gstplaysink.c:1889
#, c-format
msgid "Both autoaudiosink and %s elements are missing."
msgstr ""
-#: gst/playback/gstplaysink.c:1872
+#: gst/playback/gstplaysink.c:1893
msgid "The autoaudiosink element is missing."
msgstr ""
-#: gst/playback/gstplaysink.c:1877
+#: gst/playback/gstplaysink.c:1898
#, c-format
msgid "Configured audiosink %s is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1881
+#: gst/playback/gstplaysink.c:1902
#, c-format
msgid "Both autoaudiosink and %s elements are not working."
msgstr ""
-#: gst/playback/gstplaysink.c:1885
+#: gst/playback/gstplaysink.c:1906
msgid "The autoaudiosink element is not working."
msgstr ""
-#: gst/playback/gstplaysink.c:2183 gst/playback/gstplaysink.c:2188
+#: gst/playback/gstplaysink.c:2209 gst/playback/gstplaysink.c:2214
msgid "Can't play a text file without video or visualizations."
msgstr ""
-#: gst/playback/gsturidecodebin.c:867
+#: gst/playback/gsturidecodebin.c:874
#, c-format
msgid "No decoder available for type '%s'."
msgstr ""
-#: gst/playback/gsturidecodebin.c:1160
+#: gst/playback/gsturidecodebin.c:1268
msgid "This stream type cannot be played yet."
msgstr ""
-#: gst/playback/gsturidecodebin.c:1177
+#: gst/playback/gsturidecodebin.c:1285
#, c-format
msgid "No URI handler implemented for \"%s\"."
msgstr ""
-#: gst/tcp/gsttcp.c:503 gst/tcp/gsttcpclientsink.c:283
+#: gst/tcp/gsttcp.c:503 gst/tcp/gsttcpclientsink.c:282
#, c-format
msgid "Error while sending data to \"%s:%d\"."
msgstr ""
msgid "Error while sending gdp payload data to \"%s:%d\"."
msgstr ""
-#: gst/tcp/gsttcpclientsink.c:395 gst/tcp/gsttcpclientsrc.c:379
+#: gst/tcp/gsttcpclientsink.c:394 gst/tcp/gsttcpclientsrc.c:378
#, c-format
msgid "Connection to %s:%d refused."
msgstr ""
-#: gst-libs/gst/audio/gstbaseaudiosrc.c:835
+#: gst-libs/gst/audio/gstbaseaudiosrc.c:837
msgid "Can't record audio fast enough"
msgstr ""
-#: gst-libs/gst/tag/gsttagdemux.c:1079
+#: gst-libs/gst/tag/gsttagdemux.c:1078
msgid "Failed to read tag: not enough data"
msgstr ""
-#: gst-libs/gst/tag/tags.c:78
+#: gst-libs/gst/tag/tags.c:79
msgid "track ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:78
+#: gst-libs/gst/tag/tags.c:79
msgid "MusicBrainz track ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:80
+#: gst-libs/gst/tag/tags.c:81
msgid "artist ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:80
+#: gst-libs/gst/tag/tags.c:81
msgid "MusicBrainz artist ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:82
+#: gst-libs/gst/tag/tags.c:83
msgid "album ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:82
+#: gst-libs/gst/tag/tags.c:83
msgid "MusicBrainz album ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:85
+#: gst-libs/gst/tag/tags.c:86
msgid "album artist ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:85
+#: gst-libs/gst/tag/tags.c:86
msgid "MusicBrainz album artist ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:87
+#: gst-libs/gst/tag/tags.c:88
msgid "track TRM ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:87
+#: gst-libs/gst/tag/tags.c:88
msgid "MusicBrainz TRM ID"
msgstr ""
-#: gst-libs/gst/tag/tags.c:109
+#: gst-libs/gst/tag/tags.c:110
msgid "capturing shutter speed"
msgstr ""
-#: gst-libs/gst/tag/tags.c:110
+#: gst-libs/gst/tag/tags.c:111
msgid "Shutter speed used when capturing an image, in seconds"
msgstr ""
-#: gst-libs/gst/tag/tags.c:113
+#: gst-libs/gst/tag/tags.c:114
msgid "capturing focal ratio"
msgstr ""
-#: gst-libs/gst/tag/tags.c:114
+#: gst-libs/gst/tag/tags.c:115
msgid "Focal ratio (f-number) used when capturing the image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:117
+#: gst-libs/gst/tag/tags.c:118
msgid "capturing focal length"
msgstr ""
-#: gst-libs/gst/tag/tags.c:118
+#: gst-libs/gst/tag/tags.c:119
msgid "Focal length of the lens used capturing the image, in mm"
msgstr ""
-#: gst-libs/gst/tag/tags.c:121
+#: gst-libs/gst/tag/tags.c:122
msgid "capturing digital zoom ratio"
msgstr ""
-#: gst-libs/gst/tag/tags.c:122
+#: gst-libs/gst/tag/tags.c:123
msgid "Digital zoom ratio used when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:125
+#: gst-libs/gst/tag/tags.c:126
msgid "capturing iso speed"
msgstr ""
-#: gst-libs/gst/tag/tags.c:126
+#: gst-libs/gst/tag/tags.c:127
msgid "The ISO speed used when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:129
+#: gst-libs/gst/tag/tags.c:130
msgid "capturing exposure program"
msgstr ""
-#: gst-libs/gst/tag/tags.c:130
+#: gst-libs/gst/tag/tags.c:131
msgid "The exposure program used when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:133
+#: gst-libs/gst/tag/tags.c:134
msgid "capturing exposure mode"
msgstr ""
-#: gst-libs/gst/tag/tags.c:134
+#: gst-libs/gst/tag/tags.c:135
msgid "The exposure mode used when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:137
+#: gst-libs/gst/tag/tags.c:138
msgid "capturing exposure compensation"
msgstr ""
-#: gst-libs/gst/tag/tags.c:138
+#: gst-libs/gst/tag/tags.c:139
msgid "The exposure compensation used when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:141
+#: gst-libs/gst/tag/tags.c:142
msgid "capturing scene capture type"
msgstr ""
-#: gst-libs/gst/tag/tags.c:142
+#: gst-libs/gst/tag/tags.c:143
msgid "The scene capture mode used when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:145
+#: gst-libs/gst/tag/tags.c:146
msgid "capturing gain adjustment"
msgstr ""
-#: gst-libs/gst/tag/tags.c:146
+#: gst-libs/gst/tag/tags.c:147
msgid "The overall gain adjustment applied on an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:149
+#: gst-libs/gst/tag/tags.c:150
msgid "capturing white balance"
msgstr ""
-#: gst-libs/gst/tag/tags.c:150
+#: gst-libs/gst/tag/tags.c:151
msgid "The white balance mode set when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:153
+#: gst-libs/gst/tag/tags.c:154
msgid "capturing contrast"
msgstr ""
-#: gst-libs/gst/tag/tags.c:154
+#: gst-libs/gst/tag/tags.c:155
msgid "The direction of contrast processing applied when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:158
+#: gst-libs/gst/tag/tags.c:159
msgid "capturing saturation"
msgstr ""
-#: gst-libs/gst/tag/tags.c:159
+#: gst-libs/gst/tag/tags.c:160
msgid "The direction of saturation processing applied when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:163
+#: gst-libs/gst/tag/tags.c:164
msgid "capturing sharpness"
msgstr ""
-#: gst-libs/gst/tag/tags.c:164
+#: gst-libs/gst/tag/tags.c:165
msgid "The direction of sharpness processing applied when capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:168
+#: gst-libs/gst/tag/tags.c:169
msgid "capturing flash fired"
msgstr ""
-#: gst-libs/gst/tag/tags.c:169
+#: gst-libs/gst/tag/tags.c:170
msgid "If the flash fired while capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:172
+#: gst-libs/gst/tag/tags.c:173
msgid "capturing flash mode"
msgstr ""
-#: gst-libs/gst/tag/tags.c:173
+#: gst-libs/gst/tag/tags.c:174
msgid "The selected flash mode while capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:176
+#: gst-libs/gst/tag/tags.c:177
msgid "capturing metering mode"
msgstr ""
-#: gst-libs/gst/tag/tags.c:177
+#: gst-libs/gst/tag/tags.c:178
msgid ""
"The metering mode used while determining exposure for capturing an image"
msgstr ""
-#: gst-libs/gst/tag/tags.c:181
+#: gst-libs/gst/tag/tags.c:182
msgid "capturing source"
msgstr ""
-#: gst-libs/gst/tag/tags.c:182
+#: gst-libs/gst/tag/tags.c:183
msgid "The source or type of device used for the capture"
msgstr ""
-#: gst-libs/gst/tag/tags.c:185
+#: gst-libs/gst/tag/tags.c:186
msgid "image horizontal ppi"
msgstr ""
-#: gst-libs/gst/tag/tags.c:186
+#: gst-libs/gst/tag/tags.c:187
msgid "Media (image/video) intended horizontal pixel density in ppi"
msgstr ""
-#: gst-libs/gst/tag/tags.c:189
+#: gst-libs/gst/tag/tags.c:190
msgid "image vertical ppi"
msgstr ""
-#: gst-libs/gst/tag/tags.c:190
+#: gst-libs/gst/tag/tags.c:191
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+#: gst-libs/gst/tag/tags.c:194
+msgid "ID3v2 frame"
+msgstr ""
+
+#: gst-libs/gst/tag/tags.c:194
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
#: gst-libs/gst/cdda/gstcddabasesrc.c:1468
#: gst-libs/gst/cdda/gstcddabasesrc.c:1501
msgid "This CD has no audio tracks"
msgid "Run-length encoding"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:237
+#: gst-libs/gst/pbutils/descriptions.c:238
msgid "Sami subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:238
+#: gst-libs/gst/pbutils/descriptions.c:239
msgid "TMPlayer subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:240
+#: gst-libs/gst/pbutils/descriptions.c:241
msgid "Kate subtitle format"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:304
+#: gst-libs/gst/pbutils/descriptions.c:305
msgid "Uncompressed planar YUV 4:2:0"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:307
+#: gst-libs/gst/pbutils/descriptions.c:308
msgid "Uncompressed planar YVU 4:2:0"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:310
-#: gst-libs/gst/pbutils/descriptions.c:320
+#: gst-libs/gst/pbutils/descriptions.c:311
+#: gst-libs/gst/pbutils/descriptions.c:321
msgid "Uncompressed packed YUV 4:2:2"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:313
+#: gst-libs/gst/pbutils/descriptions.c:314
msgid "Uncompressed packed YUV 4:1:0"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:316
+#: gst-libs/gst/pbutils/descriptions.c:317
msgid "Uncompressed packed YVU 4:1:0"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:323
+#: gst-libs/gst/pbutils/descriptions.c:324
msgid "Uncompressed packed YUV 4:1:1"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:326
+#: gst-libs/gst/pbutils/descriptions.c:327
msgid "Uncompressed packed YUV 4:4:4"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:329
+#: gst-libs/gst/pbutils/descriptions.c:330
msgid "Uncompressed planar YUV 4:2:2"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:332
+#: gst-libs/gst/pbutils/descriptions.c:333
msgid "Uncompressed planar YUV 4:1:1"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:335
+#: gst-libs/gst/pbutils/descriptions.c:336
msgid "Uncompressed black and white Y-plane"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:338
+#: gst-libs/gst/pbutils/descriptions.c:339
msgid "Uncompressed YUV"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:349
+#: gst-libs/gst/pbutils/descriptions.c:350
#, c-format
msgid "Uncompressed palettized %d-bit %s"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:401
+#: gst-libs/gst/pbutils/descriptions.c:402
#, c-format
msgid "DivX MPEG-4 Version %d"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:619
+#: gst-libs/gst/pbutils/descriptions.c:620
#, c-format
msgid "Raw %d-bit PCM audio"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:621
+#: gst-libs/gst/pbutils/descriptions.c:622
msgid "Raw PCM audio"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:627
+#: gst-libs/gst/pbutils/descriptions.c:628
#, c-format
msgid "Raw %d-bit floating-point audio"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:629
+#: gst-libs/gst/pbutils/descriptions.c:630
msgid "Raw floating-point audio"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:716
+#: gst-libs/gst/pbutils/descriptions.c:717
msgid "Audio CD source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:719
+#: gst-libs/gst/pbutils/descriptions.c:720
msgid "DVD source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:722
+#: gst-libs/gst/pbutils/descriptions.c:723
msgid "Real Time Streaming Protocol (RTSP) source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:726
+#: gst-libs/gst/pbutils/descriptions.c:727
msgid "Microsoft Media Server (MMS) protocol source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:734
+#: gst-libs/gst/pbutils/descriptions.c:735
#, c-format
msgid "%s protocol source"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:806
+#: gst-libs/gst/pbutils/descriptions.c:807
#, c-format
msgid "%s video RTP depayloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:808
+#: gst-libs/gst/pbutils/descriptions.c:809
#, c-format
msgid "%s audio RTP depayloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:810
+#: gst-libs/gst/pbutils/descriptions.c:811
#, c-format
msgid "%s RTP depayloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:817
+#: gst-libs/gst/pbutils/descriptions.c:818
#, c-format
msgid "%s demuxer"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:819
+#: gst-libs/gst/pbutils/descriptions.c:820
#, c-format
msgid "%s decoder"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:857
+#: gst-libs/gst/pbutils/descriptions.c:858
#, c-format
msgid "%s video RTP payloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:859
+#: gst-libs/gst/pbutils/descriptions.c:860
#, c-format
msgid "%s audio RTP payloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:861
+#: gst-libs/gst/pbutils/descriptions.c:862
#, c-format
msgid "%s RTP payloader"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:868
+#: gst-libs/gst/pbutils/descriptions.c:869
#, c-format
msgid "%s muxer"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:870
+#: gst-libs/gst/pbutils/descriptions.c:871
#, c-format
msgid "%s encoder"
msgstr ""
-#: gst-libs/gst/pbutils/descriptions.c:902
+#: gst-libs/gst/pbutils/descriptions.c:903
#, c-format
msgid "GStreamer element %s"
msgstr ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-11-03 02:48+0100\n"
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "A média (kép/videó) tervezett függőleges képpontsűrűsége ppi-ben"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Ez a CD nem rendelkezik hangsávokkal"
# Indonesian translations for gst-plugins-base package.
# This file is put in the public domain.
-# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010.
+# Andhika Padmawan <andhika.padmawan@gmail.com>, 2010-2012.
#
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-04-26 22:01+0700\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2012-01-28 11:31+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
"Language: id\n"
msgstr "ID TRM MusicBrainz"
msgid "capturing shutter speed"
-msgstr ""
+msgstr "menangkap kecepatan rana"
msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Kecepatan rana digunakan saat menangkap gambar, dalam detik"
msgid "capturing focal ratio"
-msgstr ""
+msgstr "menangkap bukaan"
msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Bukaan (angka-f) digunakan ketika menangkap gambar"
msgid "capturing focal length"
-msgstr ""
+msgstr "menangkap panjang fokal"
msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Panjang fokal dari lensa digunakan ketika menangkap gambar, dalam mm"
msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "menangkap rasio pembesaran digital"
msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Rasio pembesaran digital digunakan ketika menangkap gambar"
msgid "capturing iso speed"
-msgstr ""
+msgstr "menangkap kecepatan iso"
msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "Kecepatan ISO digunakan menangkap gambar"
msgid "capturing exposure program"
-msgstr ""
+msgstr "menangkap program pajanan"
msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "Program pajanan digunakan ketika menangkap gambar"
msgid "capturing exposure mode"
-msgstr ""
+msgstr "menangkap mode pajanan"
msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "Mode pajanan digunakan ketika menangkap gambar"
msgid "capturing exposure compensation"
-msgstr ""
+msgstr "menangkap kompensasi pajanan"
msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "Kompensasi pajanan digunakan ketika menangkap gambar"
msgid "capturing scene capture type"
-msgstr ""
+msgstr "menangkap tipe pengambilan scene"
msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "Mode penangkapan scene digunakan ketika menangkap gambar"
msgid "capturing gain adjustment"
-msgstr ""
+msgstr "menangkap penyesuaian bati"
msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "Keseluruhan penyesuaian bati diterapkan pada gambar"
msgid "capturing white balance"
-msgstr ""
+msgstr "menangkap white balance"
msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "Pengaturan mode white balance ketika menangkap gambar"
msgid "capturing contrast"
-msgstr ""
+msgstr "menangkap kontras"
msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
+msgstr "Arah pemrosesan kontras diterapkan ketika menangkap gambar"
msgid "capturing saturation"
-msgstr ""
+msgstr "menangkap saturasi"
msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
+msgstr "Arah pemrosesan saturasi diterapkan ketika menangkap gambar"
msgid "capturing sharpness"
-msgstr ""
+msgstr "menangkap ketajaman"
msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
+msgstr "Arah pemrosesan ketajaman diterapkan ketika menangkap gambar"
msgid "capturing flash fired"
-msgstr ""
+msgstr "menangkap blitz ditembakkan"
msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Apakah blitz ditembakkan ketika menangkap gambar"
msgid "capturing flash mode"
-msgstr ""
+msgstr "menangkap mode blitz"
msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "Mode blitz terpilih ketika menangkap gambar"
msgid "capturing metering mode"
-msgstr ""
+msgstr "menangkap mode meter"
msgid ""
"The metering mode used while determining exposure for capturing an image"
-msgstr ""
+msgstr "Mode meter digunakan untuk menentukan pajanan ketika menangkap gambar"
msgid "capturing source"
-msgstr ""
+msgstr "menangkap sumber"
msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "Sumber atau tipe divais digunakan untuk menangkap"
msgid "image horizontal ppi"
-msgstr ""
+msgstr "ppi horizontal gambar"
msgid "Media (image/video) intended horizontal pixel density in ppi"
msgstr ""
+"Kerapatan pixel horizontal yang diinginkan media (gambar/video) dalam ppi"
msgid "image vertical ppi"
-msgstr ""
+msgstr "ppi vertikal gambar"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+"Kerapatan pixel vertikal yang diinginkan media (gambar/video) dalam ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
msgid "This CD has no audio tracks"
msgstr "CD ini tidak memiliki jalur audio"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-04-28 14:27+0200\n"
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Questo CD non presenta alcuna traccia audio"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-10-25 10:27+0900\n"
"Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "この CD にはオーディオトラックがありません"
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.15.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2008-03-07 23:43+0200\n"
"Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Šiame CD nėra audio takelių"
#
# Arvis Lācis <arvis.lacis@inbox.lv>, 2009.
# Rihards Priedītis <rprieditis@gmail.com>, 2010.
+# Rihards Priedītis <rprieditis@gmail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins-base 0.10.29.2\n"
+"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2010-07-07 10:52+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-09-02 12:02-0000\n"
"Last-Translator: Rihards Priedītis <rprieditis@gmail.com>\n"
"Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
"Language: lv\n"
msgstr "MusicBrainz TRM ID"
msgid "capturing shutter speed"
-msgstr ""
+msgstr "Tveršanā aizvara ātrums"
msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais aizvara ātrums sekundēs"
msgid "capturing focal ratio"
-msgstr ""
+msgstr "tveršanā fokusa attiecība"
msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotā fokusa attiecība (f-cipars)"
msgid "capturing focal length"
-msgstr ""
+msgstr "tveršanā fokusa attālums"
msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Attēla tveršanā izmantotā lēcas fokusa attālums milimetros"
msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "tveršanā digitālais tālummaiņas attiecība"
msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais digitālās tālummaiņas attiecība"
msgid "capturing iso speed"
-msgstr ""
+msgstr "tveršanā iso ātrums"
msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais ISO ātrums"
msgid "capturing exposure program"
-msgstr ""
+msgstr "tveršanā atseguma programma"
msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotā atseguma programma"
msgid "capturing exposure mode"
-msgstr ""
+msgstr "tveršanā atseguma režīms"
msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais atseguma režīms"
msgid "capturing exposure compensation"
-msgstr ""
+msgstr "tveršanā atseguma kompensācija"
msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais atseguma kompensācija"
msgid "capturing scene capture type"
-msgstr ""
+msgstr "tveršanā ainas tveršanas tips"
msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotas ainas tveršanas režīms"
msgid "capturing gain adjustment"
-msgstr ""
+msgstr "tveršanā pieaguma korekcija"
msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "Attēla tveršanā izmantotais vispārējā pieauguma korekcija"
msgid "capturing white balance"
-msgstr ""
+msgstr "tveršanas baltais balanss"
msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "Lietotais baltais balanss virziens attēla tveršanā"
msgid "capturing contrast"
-msgstr ""
+msgstr "tveršanā kontrasts"
msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
+msgstr "Lietotais kontrasts virziens attēla tveršanā"
msgid "capturing saturation"
-msgstr ""
+msgstr "tveršanā piesātinājums"
msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
+msgstr "Lietotais piesātinājuma virziens attēla tveršanā"
msgid "capturing sharpness"
-msgstr ""
+msgstr "tveršanā asumss"
msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
+msgstr "Lietotais asuma virziens attēla tveršanā"
msgid "capturing flash fired"
-msgstr ""
+msgstr "tveršanā zibsnis palaists"
msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Ja zibsnis palaists attēla tveršanā"
msgid "capturing flash mode"
-msgstr ""
+msgstr "tveršanā zibšņa režīms"
msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "Atlasītais zibšņa režīms priekš attēla tveršanas"
msgid "capturing metering mode"
-msgstr ""
+msgstr "tveršanā mērīšanas režīms"
msgid ""
"The metering mode used while determining exposure for capturing an image"
-msgstr ""
+msgstr "Mērīšanas režīms, lai noteiktu atsegumu attēla tveršanai"
msgid "capturing source"
-msgstr ""
+msgstr "tveršanā avots"
msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "Tveršanas avots vai iekārtas tips"
msgid "image horizontal ppi"
-msgstr ""
+msgstr "attēla horizontālais ppi"
msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
+msgstr "Medija (attēls/video) domātā horizontālā pikseļu blīvums ppi"
msgid "image vertical ppi"
-msgstr ""
+msgstr "attēla vertikālais ppi"
msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Medija (attēls/video) domātā vertikālā pikseļu blīvums ppi"
+
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
msgstr ""
msgid "This CD has no audio tracks"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-10-24 21:44+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Denne CDen har ingen lydspor"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-27 00:12+0200\n"
"Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
msgstr ""
"Voorgenomen verticale pixeldichtheid van medium (afbeelding/video) in ppi"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Deze CD heeft geen audiotracks"
msgstr ""
"Project-Id-Version: gst-plugins-0.8.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2004-09-27 13:32+0530\n"
"Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
"Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr ""
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-26 18:01+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Rozdzielczość pionowa nośnika w pikselach na cal"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Ta płyta CD nie ma ścieżek dźwiękowych"
msgstr ""
"Project-Id-Version: gst-plugins-base-0.10.31.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-01-08 01:02-0300\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
msgstr ""
"Densidade de pixels verticais desejado para a mídia (imagem/vídeo), em PPI"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Este CD não tem trilhas de áudio"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-08-16 01:21+0300\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Acest CD nu conține piste audio"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-26 20:30+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Вертикальная плотность носителя (изображение/видео) в ppi"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "На CD нет звуковых дорожек"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-11-08 15:34+0100\n"
"Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Cieľová zvislá hustota pixlov média (obrázku/videa) v ppi"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Toto CD nemá zvukové stopy"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-26 15:56+0100\n"
"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Gostota navpičnih slikovnih točk (v ppi)"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Ta CD nima zvočnih sledi"
msgstr ""
"Project-Id-Version: gst-plugins 0.8.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2004-08-07 20:29+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: Albanian <begraj@hotmail.com>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr ""
# Serbian translation of gst-plugins
# Copyright (C) 2004 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gst-plugins-base package.
# Danilo Segan <dsegan@gmx.net>, 2004.
-#
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011.
msgid ""
msgstr ""
-"Project-Id-Version: gst-plugins 0.7.6\n"
+"Project-Id-Version: gst-plugins-base-0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
-"PO-Revision-Date: 2004-03-13 00:18+0100\n"
-"Last-Translator: Danilo Segan <dsegan@gmx.net>\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
+"PO-Revision-Date: 2011-12-05 09:10+0200\n"
+"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnu@prevod.org>\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 "Master"
-msgstr ""
+msgstr "Главни"
msgid "Bass"
msgstr "Бас"
msgid "Treble"
-msgstr "ШÑ\83м"
+msgstr "Ð\92иÑ\81окоÑ\82онаÑ\86"
msgid "PCM"
msgstr "ПЦМ"
msgid "Synth"
-msgstr "Синт."
+msgstr "Синтисајзер"
msgid "Line-in"
msgstr "Ул.лин."
msgid "Microphone"
msgstr "Микрофон"
-#, fuzzy
msgid "PC Speaker"
msgstr "Звучник"
msgid "Playback"
-msgstr ""
+msgstr "Пуштање"
msgid "Capture"
-msgstr ""
+msgstr "Снимање"
-#, fuzzy
msgid "Could not open device for playback in mono mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради пуштања у моно режиму."
-#, fuzzy
msgid "Could not open device for playback in stereo mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради пуштања у стерео режиму."
-#, fuzzy, c-format
+#, c-format
msgid "Could not open device for playback in %d-channel mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради пуштања у %d-каналном режиму."
msgid ""
"Could not open audio device for playback. Device is being used by another "
"application."
msgstr ""
+"Не могу да покренем звучни уређај ради пуштања. Уређај тренутно користи нека "
+"друга апликација."
-#, fuzzy
msgid "Could not open audio device for playback."
-msgstr "Ð\9dе могÑ\83 да оÑ\82воÑ\80им звÑ\83Ñ\87ни Ñ\83Ñ\80еÑ\92аÑ\98 â\80\9e%sâ\80\9c Ñ\80ади Ñ\83пиÑ\81а."
+msgstr "Ð\9dе могÑ\83 да покÑ\80енем звÑ\83Ñ\87ни Ñ\83Ñ\80еÑ\92аÑ\98 Ñ\80ади пÑ\83Ñ\88Ñ\82аÑ\9aа."
-#, fuzzy
msgid "Could not open device for recording in mono mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради снимања у моно режиму."
-#, fuzzy
msgid "Could not open device for recording in stereo mode."
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради снимања у стерео режиму."
-#, fuzzy, c-format
+#, c-format
msgid "Could not open device for recording in %d-channel mode"
-msgstr "Не могу да отворим ЦД уређај ради читања."
+msgstr "Не могу да отворим уређај ради снимања у %d-каналном режиму."
-#, fuzzy
msgid ""
"Could not open audio device for recording. Device is being used by another "
"application."
-msgstr "Не могу да отворим уређај „%s“ ради читања и уписа."
+msgstr ""
+"Не могу да отворим уређај ради снимања. Уређај тренутно користи нека друга "
+"апликација."
-#, fuzzy
msgid "Could not open audio device for recording."
-msgstr "Ð\9dе могÑ\83 да оÑ\82воÑ\80им ЦÐ\94 Ñ\83Ñ\80еÑ\92аÑ\98 Ñ\80ади Ñ\87иÑ\82ања."
+msgstr "Ð\9dе могÑ\83 да оÑ\82воÑ\80им звÑ\83Ñ\87ни Ñ\83Ñ\80еÑ\92аÑ\98 Ñ\80ади Ñ\81нимања."
msgid "Could not open CD device for reading."
msgstr "Не могу да отворим ЦД уређај ради читања."
-#, fuzzy
msgid "Could not seek CD."
-msgstr "Ð\9dе могÑ\83 да заÑ\82воÑ\80им Ð\92СÐ\94 даÑ\82оÑ\82екÑ\83 â\80\9e%sâ\80\9c."
+msgstr "Ð\9dе могÑ\83 да пÑ\80емоÑ\82ам ЦÐ\94."
-#, fuzzy
msgid "Could not read CD."
-msgstr "Не могу да пишем на видео уређај „%s“."
+msgstr "Не могу да читам ЦД."
-#, fuzzy, c-format
+#, c-format
msgid "Could not open vfs file \"%s\" for writing: %s."
-msgstr "Ð\9dе могÑ\83 да оÑ\82воÑ\80им Ð\92СÐ\94 даÑ\82оÑ\82екÑ\83 â\80\9e%sâ\80\9c Ñ\80ади Ñ\83пиÑ\81а."
+msgstr "Ð\9dе могÑ\83 да оÑ\82воÑ\80им вÑ\81д даÑ\82оÑ\82екÑ\83 â\80\9e%sâ\80\9c Ñ\80ади Ñ\83пиÑ\81а: %s."
-#, fuzzy
msgid "No filename given"
-msgstr "Ð\98ме даÑ\82оÑ\82еке ниÑ\98е задаÑ\82о."
+msgstr "Ð\9dиÑ\98е даÑ\82 назив даÑ\82оÑ\82еке."
#, c-format
msgid "Could not close vfs file \"%s\"."
-msgstr "Ð\9dе могÑ\83 да заÑ\82воÑ\80им Ð\92СÐ\94 датотеку „%s“."
+msgstr "Ð\9dе могÑ\83 да заÑ\82воÑ\80им вÑ\81д датотеку „%s“."
-#, fuzzy, c-format
+#, c-format
msgid "Error while writing to file \"%s\"."
-msgstr "Грешка при затварању датотеке „%s“."
+msgstr "Грешка приликом писања у датотеку „%s“."
msgid "Internal data stream error."
-msgstr ""
+msgstr "Унутрашња грешка тока података."
#, c-format
msgid "A %s plugin is required to play this stream, but not installed."
-msgstr ""
+msgstr "За пуштање овог тока потребан је прикључак „%s“, али није инсталиран."
msgid "This appears to be a text file"
-msgstr ""
+msgstr "Изгледа да је ово текстуална датотека"
-#, fuzzy
msgid "Could not determine type of stream"
-msgstr "Не могу да пишем у датотеку „%s“."
+msgstr "Не могу да утврдим врсту тока"
#, c-format
msgid "Invalid subtitle URI \"%s\", subtitles disabled."
-msgstr ""
+msgstr "Неисправна адреса превода „%s“, преводи су искључени."
msgid "No URI specified to play from."
-msgstr ""
+msgstr "Није наведена адреса за пуштање."
#, c-format
msgid "Invalid URI \"%s\"."
-msgstr ""
+msgstr "Неисправна адреса „%s“."
msgid "RTSP streams cannot be played yet."
-msgstr ""
+msgstr "РТСП токови још увек не могу бити пуштени."
msgid "Could not create \"decodebin\" element."
-msgstr ""
+msgstr "Не могу да направим „декодебин“ елемент."
msgid "Source element is invalid."
-msgstr ""
+msgstr "Изворни елемент је неисправан."
msgid ""
"Only a subtitle stream was detected. Either you are loading a subtitle file "
"or some other type of text file, or the media file was not recognized."
msgstr ""
+"Откривен је само ток превода. Или сте учитали датотеку превода или неку "
+"другу врсту текстуалне датотеке или медијска датотеке није препозната."
msgid ""
"You do not have a decoder installed to handle this file. You might need to "
"install the necessary plugins."
msgstr ""
+"Немате инсталиран декодер за руковање овом датотеком. Можда ћете морати да "
+"инсталирате потребне прикључке."
-#, fuzzy
msgid "This is not a media file"
-msgstr "УÑ\80еÑ\92аÑ\98 â\80\9e%sâ\80\9c не пÑ\80едÑ\81Ñ\82авÑ\99а Ñ\83Ñ\80еÑ\92аÑ\98 за Ñ\81нимаÑ\9aе."
+msgstr "Ð\9eво ниÑ\98е медиÑ\98Ñ\81ка даÑ\82оÑ\82ека"
msgid "A subtitle stream was detected, but no video stream."
-msgstr ""
+msgstr "Откривен је ток превода, али не и ток видео снимка."
msgid "Both autovideosink and xvimagesink elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање видеа и усклађивање хв слике."
#, c-format
msgid "Missing element '%s' - check your GStreamer installation."
-msgstr ""
+msgstr "Недостаје елемент „%s“ — проверите вашу инсталацију Гстримера."
msgid "Both autoaudiosink and alsasink elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање звука и усклађивање алсе."
#, c-format
msgid "Both autovideosink and %s elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање видеа и „%s“."
msgid "The autovideosink element is missing."
-msgstr ""
+msgstr "Недостаје самоусклађивање видеа."
#, c-format
msgid "Configured videosink %s is not working."
-msgstr ""
+msgstr "Подешени „%s“ усклађивања видеа не ради."
#, c-format
msgid "Both autovideosink and %s elements are not working."
-msgstr ""
+msgstr "Не раде ни самоусклађивање видеа ни „%s“."
msgid "The autovideosink element is not working."
-msgstr ""
+msgstr "Не ради самоусклађивање видеа."
msgid "Custom text sink element is not usable."
-msgstr ""
+msgstr "Елемент усклађивања произвољног текста није употребљив."
msgid "No volume control found"
-msgstr ""
+msgstr "Није пронађена контрола јачине звука"
#, c-format
msgid "Both autoaudiosink and %s elements are missing."
-msgstr ""
+msgstr "Недостају и самоусклађивање звука и „%s“."
msgid "The autoaudiosink element is missing."
-msgstr ""
+msgstr "Недостаје елемент самоусклађивања звука."
#, c-format
msgid "Configured audiosink %s is not working."
-msgstr ""
+msgstr "Подешени „%s“ усклађивања звука не ради."
#, c-format
msgid "Both autoaudiosink and %s elements are not working."
-msgstr ""
+msgstr "Не раде ни самоусклађивање звука ни „%s“."
msgid "The autoaudiosink element is not working."
-msgstr ""
+msgstr "Не ради самоусклађивање звука."
msgid "Can't play a text file without video or visualizations."
-msgstr ""
+msgstr "Не могу да пустим текстуалну датотеку без видеа или визуелизације."
#, c-format
msgid "No decoder available for type '%s'."
-msgstr ""
+msgstr "Декодер није доступан за врсту „%s“."
msgid "This stream type cannot be played yet."
-msgstr ""
+msgstr "Ова врста тока још увек не може бити пуштена."
#, c-format
msgid "No URI handler implemented for \"%s\"."
-msgstr ""
+msgstr "Руковалац адресе није примењен за „%s“."
-#, fuzzy, c-format
+#, c-format
msgid "Error while sending data to \"%s:%d\"."
-msgstr "Грешка при затварању датотеке „%s“."
+msgstr "Грешка приликом слања података у „%s:%d“."
#, c-format
msgid "Error while sending gdp header data to \"%s:%d\"."
-msgstr ""
+msgstr "Грешка приликом слања података гдп заглавља у „%s:%d“."
#, c-format
msgid "Error while sending gdp payload data to \"%s:%d\"."
-msgstr ""
+msgstr "Грешка приликом слања података гдп носивости у „%s:%d“."
#, c-format
msgid "Connection to %s:%d refused."
-msgstr ""
+msgstr "Повезивање са %s:%d је одбијено."
msgid "Can't record audio fast enough"
-msgstr ""
+msgstr "Не могу да снимам звук довољно брзо"
msgid "Failed to read tag: not enough data"
-msgstr ""
+msgstr "Нисам успео да прочитам ознаку: нема довољно података"
msgid "track ID"
-msgstr ""
+msgstr "ИБ нумере"
msgid "MusicBrainz track ID"
-msgstr ""
+msgstr "ИБ нумере Мозгића музике"
msgid "artist ID"
-msgstr ""
+msgstr "ИБ извођача"
msgid "MusicBrainz artist ID"
-msgstr ""
+msgstr "ИБ извођача Мозгића музике"
msgid "album ID"
-msgstr ""
+msgstr "ИБ албума"
msgid "MusicBrainz album ID"
-msgstr ""
+msgstr "ИБ албума Мозгића музике"
msgid "album artist ID"
-msgstr ""
+msgstr "ИБ извођача албума"
msgid "MusicBrainz album artist ID"
-msgstr ""
+msgstr "ИБ извођача албума Мозгића музике"
msgid "track TRM ID"
-msgstr ""
+msgstr "ТРМ ИБ стазе"
msgid "MusicBrainz TRM ID"
-msgstr ""
+msgstr "ИБ ТРМ-а Мозгића музике"
msgid "capturing shutter speed"
-msgstr ""
+msgstr "брзина затварача снимања"
msgid "Shutter speed used when capturing an image, in seconds"
-msgstr ""
+msgstr "Брзина затварача коришћена приликом снимања слике, у секундама"
msgid "capturing focal ratio"
-msgstr ""
+msgstr "жижни однос снимања"
msgid "Focal ratio (f-number) used when capturing the image"
-msgstr ""
+msgstr "Жижни однос (ф-број) коришћен приликом снимања слике"
msgid "capturing focal length"
-msgstr ""
+msgstr "жижна даљина снимања"
msgid "Focal length of the lens used capturing the image, in mm"
-msgstr ""
+msgstr "Жижна даљина објектива коришћеног за снимање слика, у мииметрима"
msgid "capturing digital zoom ratio"
-msgstr ""
+msgstr "однос дигиталног зума снимања"
msgid "Digital zoom ratio used when capturing an image"
-msgstr ""
+msgstr "Однос дигиталног зума коришћен приликом снимања слике"
msgid "capturing iso speed"
-msgstr ""
+msgstr "брзина изо снимања"
msgid "The ISO speed used when capturing an image"
-msgstr ""
+msgstr "ИЗО брзина коришћена приликом снимања слике"
msgid "capturing exposure program"
-msgstr ""
+msgstr "програм изложености снимања"
msgid "The exposure program used when capturing an image"
-msgstr ""
+msgstr "Програм изложености коришћен приликом снимања слике"
msgid "capturing exposure mode"
-msgstr ""
+msgstr "режим изложености снимања"
msgid "The exposure mode used when capturing an image"
-msgstr ""
+msgstr "Режим изложености коришћен приликом снимања слике"
msgid "capturing exposure compensation"
-msgstr ""
+msgstr "поправка изложености снимања"
msgid "The exposure compensation used when capturing an image"
-msgstr ""
+msgstr "Поправка изложености коришћена приликом снимања слике"
msgid "capturing scene capture type"
-msgstr ""
+msgstr "врста снимка сцене снимања"
msgid "The scene capture mode used when capturing an image"
-msgstr ""
+msgstr "Режим снимања сцене коришћен приликом снимања слике"
msgid "capturing gain adjustment"
-msgstr ""
+msgstr "подешавање добитка снимања"
msgid "The overall gain adjustment applied on an image"
-msgstr ""
+msgstr "Подешавање укупног добитка примењено на слици"
msgid "capturing white balance"
-msgstr ""
+msgstr "баланс белог снимања"
msgid "The white balance mode set when capturing an image"
-msgstr ""
+msgstr "Режим баланса белог приликом снимања слике"
msgid "capturing contrast"
-msgstr ""
+msgstr "контраст снимања"
msgid "The direction of contrast processing applied when capturing an image"
-msgstr ""
+msgstr "Усмерење обраде контраста примењеног приликом снимања слике"
msgid "capturing saturation"
-msgstr ""
+msgstr "засићење снимања"
msgid "The direction of saturation processing applied when capturing an image"
-msgstr ""
+msgstr "Усмерење обраде засићења примењеног приликом снимања слике"
msgid "capturing sharpness"
-msgstr ""
+msgstr "оштрина снимања"
msgid "The direction of sharpness processing applied when capturing an image"
-msgstr ""
+msgstr "Усмерење обраде оштрине примењене приликом снимања слике"
msgid "capturing flash fired"
-msgstr ""
+msgstr "одрада блица снимања"
msgid "If the flash fired while capturing an image"
-msgstr ""
+msgstr "Ако је блиц одрадио приликом снимања слике"
msgid "capturing flash mode"
-msgstr ""
+msgstr "режим блица снимања"
msgid "The selected flash mode while capturing an image"
-msgstr ""
+msgstr "Изабрани режим рада блица приликом снимања слике"
msgid "capturing metering mode"
-msgstr ""
+msgstr "режим мерења снимања"
msgid ""
"The metering mode used while determining exposure for capturing an image"
-msgstr ""
+msgstr "Режим мерења коришћен приликом одређивања излагања за снимање слике"
msgid "capturing source"
-msgstr ""
+msgstr "извор снимања"
msgid "The source or type of device used for the capture"
-msgstr ""
+msgstr "Извор или врста уређаја коришћеног за снимање"
msgid "image horizontal ppi"
-msgstr ""
+msgstr "водоравних тпи слике"
msgid "Media (image/video) intended horizontal pixel density in ppi"
-msgstr ""
+msgstr "Очекивана густина водоравних тачака медија (слике/видеа) у тпи"
msgid "image vertical ppi"
-msgstr ""
+msgstr "усправних тпи слике "
msgid "Media (image/video) intended vertical pixel density in ppi"
+msgstr "Очекивана густина усправних тачака медија (слике/видеа) у тпи"
+
+msgid "ID3v2 frame"
msgstr ""
-msgid "This CD has no audio tracks"
+msgid "unparsed id3v2 tag frame"
msgstr ""
+msgid "This CD has no audio tracks"
+msgstr "Овај ЦД нема звучних нумера"
+
msgid "ID3 tag"
-msgstr ""
+msgstr "ИБ3 ознака"
msgid "APE tag"
-msgstr ""
+msgstr "АПЕ ознака"
msgid "ICY internet radio"
-msgstr ""
+msgstr "ИЦИ Интернет радио"
msgid "Apple Lossless Audio (ALAC)"
-msgstr ""
+msgstr "Ејплов безгубитни звук (ALAC)"
msgid "Free Lossless Audio Codec (FLAC)"
-msgstr ""
+msgstr "Слободни кодек безгубитног звука (FLAC)"
msgid "Lossless True Audio (TTA)"
-msgstr ""
+msgstr "Безгубитни истинитосни звук (ТТА)"
msgid "Windows Media Speech"
-msgstr ""
+msgstr "Виндоуз говор медија"
msgid "CYUV Lossless"
-msgstr ""
+msgstr "Безгубитни ЦИУВ"
msgid "FFMpeg v1"
-msgstr ""
+msgstr "ФФмпег в1"
msgid "Lossless MSZH"
-msgstr ""
+msgstr "Безгубитни МСЗХ"
msgid "Uncompressed Gray Image"
-msgstr ""
+msgstr "Несажета сива слика"
msgid "Run-length encoding"
-msgstr ""
+msgstr "Кодирање покретања дужине"
msgid "Sami subtitle format"
-msgstr ""
+msgstr "Сами формат титла"
msgid "TMPlayer subtitle format"
-msgstr ""
+msgstr "ТМПлејер формат титла"
msgid "Kate subtitle format"
-msgstr ""
+msgstr "Кејт формат титла"
msgid "Uncompressed planar YUV 4:2:0"
-msgstr ""
+msgstr "Несажета равна YUV 4:2:0"
msgid "Uncompressed planar YVU 4:2:0"
-msgstr ""
+msgstr "Несажета равна YVU 4:2:0"
msgid "Uncompressed packed YUV 4:2:2"
-msgstr ""
+msgstr "Несажета упакована YUV 4:2:2"
msgid "Uncompressed packed YUV 4:1:0"
-msgstr ""
+msgstr "Несажета упакована YUV 4:1:0"
msgid "Uncompressed packed YVU 4:1:0"
-msgstr ""
+msgstr "Несажета упакована YVU 4:1:0"
msgid "Uncompressed packed YUV 4:1:1"
-msgstr ""
+msgstr "Несажета упакована YUV 4:1:1"
msgid "Uncompressed packed YUV 4:4:4"
-msgstr ""
+msgstr "Несажета упакована YUV 4:4:4"
msgid "Uncompressed planar YUV 4:2:2"
-msgstr ""
+msgstr "Несажета равна YUV 4:2:2"
msgid "Uncompressed planar YUV 4:1:1"
-msgstr ""
+msgstr "Несажета равна YUV 4:1:1"
msgid "Uncompressed black and white Y-plane"
-msgstr ""
+msgstr "Несажета црна и бела Y-раван"
msgid "Uncompressed YUV"
-msgstr ""
+msgstr "Несажета YUV"
#, c-format
msgid "Uncompressed palettized %d-bit %s"
#, c-format
msgid "DivX MPEG-4 Version %d"
-msgstr ""
+msgstr "ДивХ МПЕГ-4 издање %d"
#, c-format
msgid "Raw %d-bit PCM audio"
-msgstr ""
+msgstr "Сирови %d-бита ПЦМ звук"
msgid "Raw PCM audio"
-msgstr ""
+msgstr "Сирови ПЦМ звук"
#, c-format
msgid "Raw %d-bit floating-point audio"
-msgstr ""
+msgstr "Сирови %d-бита звук покретног зареза"
msgid "Raw floating-point audio"
-msgstr ""
+msgstr "Сирови звук покретног зареза"
msgid "Audio CD source"
-msgstr ""
+msgstr "Извор звучног ЦД-а"
msgid "DVD source"
-msgstr ""
+msgstr "Извор ДВД-а"
msgid "Real Time Streaming Protocol (RTSP) source"
-msgstr ""
+msgstr "Извор протокола тока стварног времена (RTSP)"
msgid "Microsoft Media Server (MMS) protocol source"
-msgstr ""
+msgstr "Извор протокола Мајкрософтовог сервера медија (MMS)"
#, c-format
msgid "%s protocol source"
-msgstr ""
+msgstr "Извор „%s“ протокола"
#, c-format
msgid "%s video RTP depayloader"
#, c-format
msgid "%s demuxer"
-msgstr ""
+msgstr "„%s“ демултиплексер"
#, c-format
msgid "%s decoder"
-msgstr ""
+msgstr "„%s“ декодер"
#, c-format
msgid "%s video RTP payloader"
#, c-format
msgid "%s muxer"
-msgstr ""
+msgstr "„%s“ мултиплексер"
#, c-format
msgid "%s encoder"
-msgstr ""
+msgstr "„%s“ кодер"
#, c-format
msgid "GStreamer element %s"
-msgstr ""
+msgstr "„%s“ елемент Гстримера"
msgid "Unknown source element"
-msgstr ""
+msgstr "Непознати елемент извора"
msgid "Unknown sink element"
-msgstr ""
+msgstr "Непознати елемент усаглашавања"
msgid "Unknown element"
-msgstr ""
+msgstr "Непознати елемент"
msgid "Unknown decoder element"
-msgstr ""
+msgstr "Непознати елемент декодера"
msgid "Unknown encoder element"
-msgstr ""
+msgstr "Непознати елемент кодера"
msgid "Plugin or element of unknown type"
-msgstr ""
+msgstr "Прикључак или елемент непознате врсте"
msgid "No device specified."
msgstr "Уређај није наведен."
msgid "Device \"%s\" does not exist."
msgstr "Не постоји уређај „%s“."
-#, fuzzy, c-format
+#, c-format
msgid "Device \"%s\" is already being used."
-msgstr "OSS уређај „%s“ већ користи неки програм."
+msgstr "Уређај „%s“ је већ у употреби."
#, c-format
msgid "Could not open device \"%s\" for reading and writing."
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-06-07 18:17+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Den här cd-skivan saknar ljudspår"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-26 19:22+0200\n"
"Last-Translator: Server Acim <serveracim@gmail.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr "Medya (resim/vidyo)'nun ppi değerinden dikey piksel yoğunluğu"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Bu CD hiç ses izi içermiyor"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2011-04-27 17:49+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
"Вертикальна щільність пікселів на матриці (зображення або відео), у точках "
"на дюйм"
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "На цьому компакт-диску немає звукових доріжок"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.28.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2010-04-27 22:51+0930\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "Đĩa CD này không có rãnh âm thanh nào"
msgstr ""
"Project-Id-Version: gst-plugins-base 0.10.21.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-05-14 00:45+0100\n"
+"POT-Creation-Date: 2012-02-20 23:28+0000\n"
"PO-Revision-Date: 2009-01-14 12:41+0800\n"
"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
msgid "Media (image/video) intended vertical pixel density in ppi"
msgstr ""
+msgid "ID3v2 frame"
+msgstr ""
+
+msgid "unparsed id3v2 tag frame"
+msgstr ""
+
msgid "This CD has no audio tracks"
msgstr "此 CD 无音轨"
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
libgstvideo4linux_la-v4l_calls.lo \
libgstvideo4linux_la-v4lsrc_calls.lo $(am__objects_1)
libgstvideo4linux_la_OBJECTS = $(am_libgstvideo4linux_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
libgstvideo4linux_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstvideo4linux_la_LIBTOOLFLAGS) $(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 = $(libgstvideo4linux_la_SOURCES)
DIST_SOURCES = $(am__libgstvideo4linux_la_SOURCES_DIST)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstvideo4linux.la: $(libgstvideo4linux_la_OBJECTS) $(libgstvideo4linux_la_DEPENDENCIES)
+libgstvideo4linux.la: $(libgstvideo4linux_la_OBJECTS) $(libgstvideo4linux_la_DEPENDENCIES) $(EXTRA_libgstvideo4linux_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstvideo4linux_la_LINK) -rpath $(plugindir) $(libgstvideo4linux_la_OBJECTS) $(libgstvideo4linux_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstvideo4linux_la-gstv4l.lo: gstv4l.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4l.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4l.Tpo -c -o libgstvideo4linux_la-gstv4l.lo `test -f 'gstv4l.c' || echo '$(srcdir)/'`gstv4l.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4l.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4l.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4l.c' object='libgstvideo4linux_la-gstv4l.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4l.c' object='libgstvideo4linux_la-gstv4l.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4l.lo `test -f 'gstv4l.c' || echo '$(srcdir)/'`gstv4l.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4l.lo `test -f 'gstv4l.c' || echo '$(srcdir)/'`gstv4l.c
libgstvideo4linux_la-gstv4lcolorbalance.lo: gstv4lcolorbalance.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lcolorbalance.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lcolorbalance.Tpo -c -o libgstvideo4linux_la-gstv4lcolorbalance.lo `test -f 'gstv4lcolorbalance.c' || echo '$(srcdir)/'`gstv4lcolorbalance.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lcolorbalance.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lcolorbalance.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4lcolorbalance.c' object='libgstvideo4linux_la-gstv4lcolorbalance.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4lcolorbalance.c' object='libgstvideo4linux_la-gstv4lcolorbalance.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lcolorbalance.lo `test -f 'gstv4lcolorbalance.c' || echo '$(srcdir)/'`gstv4lcolorbalance.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lcolorbalance.lo `test -f 'gstv4lcolorbalance.c' || echo '$(srcdir)/'`gstv4lcolorbalance.c
libgstvideo4linux_la-gstv4lelement.lo: gstv4lelement.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lelement.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lelement.Tpo -c -o libgstvideo4linux_la-gstv4lelement.lo `test -f 'gstv4lelement.c' || echo '$(srcdir)/'`gstv4lelement.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lelement.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lelement.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4lelement.c' object='libgstvideo4linux_la-gstv4lelement.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4lelement.c' object='libgstvideo4linux_la-gstv4lelement.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lelement.lo `test -f 'gstv4lelement.c' || echo '$(srcdir)/'`gstv4lelement.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lelement.lo `test -f 'gstv4lelement.c' || echo '$(srcdir)/'`gstv4lelement.c
libgstvideo4linux_la-gstv4lsrc.lo: gstv4lsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lsrc.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lsrc.Tpo -c -o libgstvideo4linux_la-gstv4lsrc.lo `test -f 'gstv4lsrc.c' || echo '$(srcdir)/'`gstv4lsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lsrc.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lsrc.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4lsrc.c' object='libgstvideo4linux_la-gstv4lsrc.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4lsrc.c' object='libgstvideo4linux_la-gstv4lsrc.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lsrc.lo `test -f 'gstv4lsrc.c' || echo '$(srcdir)/'`gstv4lsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lsrc.lo `test -f 'gstv4lsrc.c' || echo '$(srcdir)/'`gstv4lsrc.c
libgstvideo4linux_la-gstv4ltuner.lo: gstv4ltuner.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4ltuner.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4ltuner.Tpo -c -o libgstvideo4linux_la-gstv4ltuner.lo `test -f 'gstv4ltuner.c' || echo '$(srcdir)/'`gstv4ltuner.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4ltuner.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4ltuner.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4ltuner.c' object='libgstvideo4linux_la-gstv4ltuner.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4ltuner.c' object='libgstvideo4linux_la-gstv4ltuner.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4ltuner.lo `test -f 'gstv4ltuner.c' || echo '$(srcdir)/'`gstv4ltuner.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4ltuner.lo `test -f 'gstv4ltuner.c' || echo '$(srcdir)/'`gstv4ltuner.c
libgstvideo4linux_la-v4l_calls.lo: v4l_calls.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-v4l_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-v4l_calls.Tpo -c -o libgstvideo4linux_la-v4l_calls.lo `test -f 'v4l_calls.c' || echo '$(srcdir)/'`v4l_calls.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-v4l_calls.Tpo $(DEPDIR)/libgstvideo4linux_la-v4l_calls.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='v4l_calls.c' object='libgstvideo4linux_la-v4l_calls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4l_calls.c' object='libgstvideo4linux_la-v4l_calls.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4l_calls.lo `test -f 'v4l_calls.c' || echo '$(srcdir)/'`v4l_calls.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4l_calls.lo `test -f 'v4l_calls.c' || echo '$(srcdir)/'`v4l_calls.c
libgstvideo4linux_la-v4lsrc_calls.lo: v4lsrc_calls.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-v4lsrc_calls.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-v4lsrc_calls.Tpo -c -o libgstvideo4linux_la-v4lsrc_calls.lo `test -f 'v4lsrc_calls.c' || echo '$(srcdir)/'`v4lsrc_calls.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-v4lsrc_calls.Tpo $(DEPDIR)/libgstvideo4linux_la-v4lsrc_calls.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='v4lsrc_calls.c' object='libgstvideo4linux_la-v4lsrc_calls.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='v4lsrc_calls.c' object='libgstvideo4linux_la-v4lsrc_calls.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4lsrc_calls.lo `test -f 'v4lsrc_calls.c' || echo '$(srcdir)/'`v4lsrc_calls.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-v4lsrc_calls.lo `test -f 'v4lsrc_calls.c' || echo '$(srcdir)/'`v4lsrc_calls.c
libgstvideo4linux_la-gstv4lxoverlay.lo: gstv4lxoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -MT libgstvideo4linux_la-gstv4lxoverlay.lo -MD -MP -MF $(DEPDIR)/libgstvideo4linux_la-gstv4lxoverlay.Tpo -c -o libgstvideo4linux_la-gstv4lxoverlay.lo `test -f 'gstv4lxoverlay.c' || echo '$(srcdir)/'`gstv4lxoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstvideo4linux_la-gstv4lxoverlay.Tpo $(DEPDIR)/libgstvideo4linux_la-gstv4lxoverlay.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstv4lxoverlay.c' object='libgstvideo4linux_la-gstv4lxoverlay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstv4lxoverlay.c' object='libgstvideo4linux_la-gstv4lxoverlay.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lxoverlay.lo `test -f 'gstv4lxoverlay.c' || echo '$(srcdir)/'`gstv4lxoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstvideo4linux_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstvideo4linux_la_CFLAGS) $(CFLAGS) -c -o libgstvideo4linux_la-gstv4lxoverlay.lo `test -f 'gstv4lxoverlay.c' || echo '$(srcdir)/'`gstv4lxoverlay.c
mostlyclean-libtool:
-rm -f *.lo
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:
"Reads raw frames from a video4linux device",
"GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&v4l_src_template));
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &v4l_src_template);
}
static void
int quality; /* Measure for quality of compressed images.
Scales linearly with the size of the compressed images.
- Must be beetween 0 and 100, 100 is a compression
+ Must be between 0 and 100, 100 is a compression
ratio of 1:4 */
int odd_even; /* Which field should come first ???
unsigned long jpeg_markers; /* Which markers should go into the JPEG output.
Unless you exactly know what you do, leave them untouched.
- Inluding less markers will make the resulting code
+ Including less markers will make the resulting code
smaller, but there will be fewer applications
which can read it.
The presence of the APP and COM marker is
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
am_libgstximagesink_la_OBJECTS = libgstximagesink_la-ximagesink.lo \
libgstximagesink_la-ximage.lo
libgstximagesink_la_OBJECTS = $(am_libgstximagesink_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
libgstximagesink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstximagesink_la_LIBTOOLFLAGS) $(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 = $(libgstximagesink_la_SOURCES)
DIST_SOURCES = $(libgstximagesink_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstximagesink.la: $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_DEPENDENCIES)
+libgstximagesink.la: $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_DEPENDENCIES) $(EXTRA_libgstximagesink_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstximagesink_la_LINK) -rpath $(plugindir) $(libgstximagesink_la_OBJECTS) $(libgstximagesink_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstximagesink_la-ximagesink.lo: ximagesink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -MT libgstximagesink_la-ximagesink.lo -MD -MP -MF $(DEPDIR)/libgstximagesink_la-ximagesink.Tpo -c -o libgstximagesink_la-ximagesink.lo `test -f 'ximagesink.c' || echo '$(srcdir)/'`ximagesink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesink_la-ximagesink.Tpo $(DEPDIR)/libgstximagesink_la-ximagesink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ximagesink.c' object='libgstximagesink_la-ximagesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ximagesink.c' object='libgstximagesink_la-ximagesink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximagesink.lo `test -f 'ximagesink.c' || echo '$(srcdir)/'`ximagesink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximagesink.lo `test -f 'ximagesink.c' || echo '$(srcdir)/'`ximagesink.c
libgstximagesink_la-ximage.lo: ximage.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -MT libgstximagesink_la-ximage.lo -MD -MP -MF $(DEPDIR)/libgstximagesink_la-ximage.Tpo -c -o libgstximagesink_la-ximage.lo `test -f 'ximage.c' || echo '$(srcdir)/'`ximage.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstximagesink_la-ximage.Tpo $(DEPDIR)/libgstximagesink_la-ximage.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ximage.c' object='libgstximagesink_la-ximage.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ximage.c' object='libgstximagesink_la-ximage.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximage.lo `test -f 'ximage.c' || echo '$(srcdir)/'`ximage.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstximagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstximagesink_la_CFLAGS) $(CFLAGS) -c -o libgstximagesink_la-ximage.lo `test -f 'ximage.c' || echo '$(srcdir)/'`ximage.c
mostlyclean-libtool:
-rm -f *.lo
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:
/* Debugging category */
#include <gst/gstinfo.h>
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_EXTERN (gst_debug_ximagesink);
#define GST_CAT_DEFAULT gst_debug_ximagesink
ZPixmap, NULL, &ximage->SHMInfo, ximage->width, ximage->height);
if (!ximage->ximage || error_caught) {
g_mutex_unlock (ximagesink->x_lock);
- /* Reset error handler */
+
+ /* Reset error flag */
error_caught = FALSE;
- XSetErrorHandler (handler);
- /* Push an error */
- GST_ELEMENT_ERROR (ximagesink, RESOURCE, WRITE,
+
+ /* Push a warning */
+ GST_ELEMENT_WARNING (ximagesink, RESOURCE, WRITE,
("Failed to create output image buffer of %dx%d pixels",
ximage->width, ximage->height),
("could not XShmCreateImage a %dx%d image",
ximage->width, ximage->height));
- goto beach;
+
+ /* Retry without XShm */
+ ximagesink->xcontext->use_xshm = FALSE;
+
+ /* Hold X mutex again to try without XShm */
+ g_mutex_lock (ximagesink->x_lock);
+ goto no_xshm;
}
/* we have to use the returned bytes_per_line for our shm size */
shmctl (ximage->SHMInfo.shmid, IPC_RMID, NULL);
} else
+ no_xshm:
#endif /* HAVE_XSHM */
{
guint allocsize;
GST_DEBUG_OBJECT (ximagesink, "run xevent thread, expose %d, events %d",
ximagesink->handle_expose, ximagesink->handle_events);
ximagesink->running = TRUE;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
ximagesink->event_thread = g_thread_create (
(GThreadFunc) gst_ximagesink_event_thread, ximagesink, TRUE, NULL);
+#else
+ ximagesink->event_thread = g_thread_try_new ("ximagesink-events",
+ (GThreadFunc) gst_ximagesink_event_thread, ximagesink, NULL);
+#endif
}
} else {
if (ximagesink->event_thread) {
" and offset %" G_GUINT64_FORMAT, size, caps, offset);
/* assume we're going to alloc what was requested, keep track of
- * wheter we need to unref or not. When we suggest a new format
+ * whether we need to unref or not. When we suggest a new format
* upstream we will create a new caps that we need to unref. */
alloc_caps = caps;
alloc_unref = FALSE;
static gboolean
gst_ximagesink_interface_supported (GstImplementsInterface * iface, GType type)
{
- g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY);
- return TRUE;
+ if (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY)
+ return TRUE;
+ else
+ return FALSE;
}
static void
"Video sink", "Sink/Video",
"A standard X based videosink", "Julien Moutte <julien@moutte.net>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_ximagesink_sink_template_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_ximagesink_sink_template_factory);
}
static void
g_param_spec_string ("display", "Display", "X Display name",
NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_SYNCHRONOUS,
- g_param_spec_boolean ("synchronous", "Synchronous", "When enabled, runs "
- "the X display in synchronous mode. (used only for debugging)", FALSE,
+ g_param_spec_boolean ("synchronous", "Synchronous",
+ "When enabled, runs the X display in synchronous mode. "
+ "(unrelated to A/V sync, used only for debugging)", FALSE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
g_param_spec_boolean ("force-aspect-ratio", "Force aspect ratio",
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
am_libgstxvimagesink_la_OBJECTS = libgstxvimagesink_la-xvimagesink.lo
libgstxvimagesink_la_OBJECTS = $(am_libgstxvimagesink_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
libgstxvimagesink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(libgstxvimagesink_la_LIBTOOLFLAGS) $(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 = $(libgstxvimagesink_la_SOURCES)
DIST_SOURCES = $(libgstxvimagesink_la_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
-libgstxvimagesink.la: $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_DEPENDENCIES)
+libgstxvimagesink.la: $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_DEPENDENCIES) $(EXTRA_libgstxvimagesink_la_DEPENDENCIES)
$(AM_V_CCLD)$(libgstxvimagesink_la_LINK) -rpath $(plugindir) $(libgstxvimagesink_la_OBJECTS) $(libgstxvimagesink_la_LIBADD) $(LIBS)
mostlyclean-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 $@ $<
libgstxvimagesink_la-xvimagesink.lo: xvimagesink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -MT libgstxvimagesink_la-xvimagesink.lo -MD -MP -MF $(DEPDIR)/libgstxvimagesink_la-xvimagesink.Tpo -c -o libgstxvimagesink_la-xvimagesink.lo `test -f 'xvimagesink.c' || echo '$(srcdir)/'`xvimagesink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstxvimagesink_la-xvimagesink.Tpo $(DEPDIR)/libgstxvimagesink_la-xvimagesink.Plo
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='xvimagesink.c' object='libgstxvimagesink_la-xvimagesink.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='xvimagesink.c' object='libgstxvimagesink_la-xvimagesink.lo' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -c -o libgstxvimagesink_la-xvimagesink.lo `test -f 'xvimagesink.c' || echo '$(srcdir)/'`xvimagesink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstxvimagesink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstxvimagesink_la_CFLAGS) $(CFLAGS) -c -o libgstxvimagesink_la-xvimagesink.lo `test -f 'xvimagesink.c' || echo '$(srcdir)/'`xvimagesink.c
mostlyclean-libtool:
-rm -f *.lo
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:
#define XV_VERSION_MISMATCH -2
/* Video Mode */
-#define VIDEO_MODE_TV_LCD 1
-#define VIDEO_MODE_TVONLY 2
-#define VIDEO_MODE_LCDONLY 3
-#define VIDEO_MODE_TVCAPTION 4
+#define DISPLAY_MODE_DEFAULT 0
+#define DISPLAY_MODE_PRI_VIDEO_ON_AND_SEC_VIDEO_FULL_SCREEN 1
+#define DISPLAY_MODE_PRI_VIDEO_OFF_AND_SEC_VIDEO_FULL_SCREEN 2
/* Data structure for XvPutImage / XvShmPutImage */
typedef struct {
/* GStreamer
* Copyright (C) <2005> Julien Moutte <julien@moutte.net>
- * <2009>,<2010> Stefan Kost <stefan.kost@nokia.com>
+ * <2009>,<2010> Stefan Kost <stefan.kost@nokia.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* SECTION:element-xvimagesink
*
* XvImageSink renders video frames to a drawable (XWindow) on a local display
- * using the XVideo extension. Rendering to a remote display is theorically
+ * using the XVideo extension. Rendering to a remote display is theoretically
* possible but i doubt that the XVideo extension is actually available when
* connecting to a remote display. This element can receive a Window ID from the
* application through the XOverlay interface and will then render video frames
/* arbitrary data */
int data[16];
} SCMN_IMGB;
-
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* Debugging category */
#include <gst/gstinfo.h>
+
+#include "gst/glib-compat-private.h"
+
GST_DEBUG_CATEGORY_STATIC (gst_debug_xvimagesink);
#define GST_CAT_DEFAULT gst_debug_xvimagesink
GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
{
static GType xvimagesink_display_mode_type = 0;
static const GEnumValue display_mode_type[] = {
- { 1, "Display to both TV and LCD", "BOTH"},
- { 2, "Display to TV", "TVONLY"},
- { 3, "Display to LCD", "LCDONLY"},
- { 4, "Display caption on TV", "TVCAPTION"},
- { 5, NULL, NULL},
+ { 0, "Default mode", "DEFAULT"},
+ { 1, "Primary video ON and Secondary video FULL SCREEN mode", "PRI_VIDEO_ON_AND_SEC_VIDEO_FULL_SCREEN"},
+ { 2, "Primary video OFF and Secondary video FULL SCREEN mode", "PRI_VIDEO_OFF_AND_SEC_VIDEO_FULL_SCREEN"},
+ { 3, NULL, NULL},
};
if (!xvimagesink_display_mode_type) {
#ifdef GST_EXT_XV_ENHANCEMENT
static XImage *make_transparent_image(Display *d, Window win, int w, int h);
-#endif
+static gboolean set_display_mode(GstXContext *xcontext, int set_mode);
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* Default template - initiated with class struct to allow gst-register to work
without X running */
PROP_DST_ROI_W,
PROP_DST_ROI_H,
PROP_STOP_VIDEO,
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
};
-static GstVideoSinkClass *parent_class = NULL;
+static void gst_xvimagesink_init_interfaces (GType type);
+
+GST_BOILERPLATE_FULL (GstXvImageSink, gst_xvimagesink, GstVideoSink,
+ GST_TYPE_VIDEO_SINK, gst_xvimagesink_init_interfaces);
+
/* ============================================================= */
/* */
xvimagesink->aligned_width = xvimage->width;
xvimagesink->aligned_height = xvimage->height;
}
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
xvimage->im_format = gst_xvimagesink_get_format_from_caps (xvimagesink, caps);
if (xvimage->im_format == -1) {
xvimage->im_format, NULL,
#ifdef GST_EXT_XV_ENHANCEMENT
xvimagesink->aligned_width, xvimagesink->aligned_height, &xvimage->SHMInfo);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
xvimage->width, xvimage->height, &xvimage->SHMInfo);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
if (!xvimage->xvimage || error_caught) {
g_mutex_unlock (xvimagesink->x_lock);
- /* Reset error handler */
+
+ /* Reset error flag */
error_caught = FALSE;
- XSetErrorHandler (handler);
- /* Push an error */
- GST_ELEMENT_ERROR (xvimagesink, RESOURCE, WRITE,
+
+ /* Push a warning */
+ GST_ELEMENT_WARNING (xvimagesink, RESOURCE, WRITE,
("Failed to create output image buffer of %dx%d pixels",
xvimage->width, xvimage->height),
("could not XvShmCreateImage a %dx%d image",
xvimage->width, xvimage->height));
- goto beach_unlocked;
+
+ /* Retry without XShm */
+ xvimagesink->xcontext->use_xshm = FALSE;
+
+ /* Hold X mutex again to try without XShm */
+ g_mutex_lock (xvimagesink->x_lock);
+ goto no_xshm;
}
/* we have to use the returned data_size for our shm size */
case GST_MAKE_FOURCC ('S', 'Y', 'V', 'Y'):
expected_size = sizeof(SCMN_IMGB);
break;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
default:
expected_size = 0;
break;
GST_DEBUG_OBJECT (xvimagesink, "XServer ShmAttached to 0x%x, id 0x%lx",
xvimage->SHMInfo.shmid, xvimage->SHMInfo.shmseg);
} else
+ no_xshm:
#endif /* HAVE_XSHM */
{
xvimage->xvimage = XvCreateImage (xvimagesink->xcontext->disp,
xvimagesink->xcontext->xv_port_id,
#ifdef GST_EXT_XV_ENHANCEMENT
xvimage->im_format, NULL, xvimagesink->aligned_width, xvimagesink->aligned_height);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
xvimage->im_format, NULL, xvimage->width, xvimage->height);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
if (!xvimage->xvimage || error_caught) {
g_mutex_unlock (xvimagesink->x_lock);
/* Reset error handler */
gboolean draw_border = FALSE;
#ifdef GST_EXT_XV_ENHANCEMENT
- static Atom atom = None;
+ static Atom atom_rotation = None;
GstVideoRectangle src_origin = { 0, 0, 0, 0};
GstVideoRectangle src_input = { 0, 0, 0, 0};
int rotate = 0;
int ret = 0;
- //int window_rotate = 0;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* We take the flow_lock. If expose is in there we don't want to run
concurrently from the data flow thread */
if (G_UNLIKELY (xvimagesink->xwindow == NULL)) {
#ifdef GST_EXT_XV_ENHANCEMENT
GST_INFO_OBJECT( xvimagesink, "xwindow is NULL. Skip xvimage_put." );
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
g_mutex_unlock (xvimagesink->flow_lock);
return FALSE;
}
#ifdef GST_EXT_XV_ENHANCEMENT
- if( xvimagesink->visible == FALSE )
- {
- GST_INFO_OBJECT( xvimagesink, "visible is FALSE. Skip xvimage_put." );
- g_mutex_unlock( xvimagesink->flow_lock );
+ if (xvimagesink->visible == FALSE) {
+ GST_INFO_OBJECT(xvimagesink, "visible is FALSE. Skip xvimage_put.");
+ g_mutex_unlock(xvimagesink->flow_lock);
return TRUE;
}
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* Draw borders when displaying the first frame. After this
draw borders only on expose event or after a size change. */
xvimage = xvimagesink->cur_image;
} else {
#ifdef GST_EXT_XV_ENHANCEMENT
- GST_INFO_OBJECT( xvimagesink, "cur_image is NULL. Skip xvimage_put." );
-#endif
+ GST_INFO_OBJECT(xvimagesink, "cur_image is NULL. Skip xvimage_put.");
+#endif /* GST_EXT_XV_ENHANCEMENT */
g_mutex_unlock (xvimagesink->flow_lock);
return TRUE;
}
break;
case DISP_GEO_METHOD_CUSTOM_ROI:
+#ifdef GST_EXT_XV_ENHANCEMENT_ROI_MODE
+ switch (xvimagesink->rotate_angle) {
+ case DEGREE_90:
+ result.w = xvimagesink->dst_roi.h;
+ result.h = xvimagesink->dst_roi.w;
+
+ result.x = xvimagesink->dst_roi.y;
+ result.y = xvimagesink->xwindow->height - xvimagesink->dst_roi.x - xvimagesink->dst_roi.w;
+ break;
+ case DEGREE_180:
+ result.w = xvimagesink->dst_roi.w;
+ result.h = xvimagesink->dst_roi.h;
+
+ result.x = xvimagesink->xwindow->width - result.w - xvimagesink->dst_roi.x;
+ result.y = xvimagesink->xwindow->height - result.h - xvimagesink->dst_roi.y;
+ break;
+ case DEGREE_270:
+ result.w = xvimagesink->dst_roi.h;
+ result.h = xvimagesink->dst_roi.w;
+
+ result.x = xvimagesink->xwindow->width - xvimagesink->dst_roi.y - xvimagesink->dst_roi.h;
+ result.y = xvimagesink->dst_roi.x;
+ break;
+ default:
+ result.x = xvimagesink->dst_roi.x;
+ result.y = xvimagesink->dst_roi.y;
+ result.w = xvimagesink->dst_roi.w;
+ result.h = xvimagesink->dst_roi.h;
+ break;
+ }
+
+ GST_LOG_OBJECT(xvimagesink, "rotate[%d], ROI input[%d,%d,%dx%d] > result[%d,%d,%dx%d]",
+ xvimagesink->rotate_angle,
+ xvimagesink->dst_roi.x, xvimagesink->dst_roi.y, xvimagesink->dst_roi.w, xvimagesink->dst_roi.h,
+ result.x, result.y, result.w, result.h);
+#else /* GST_EXT_XV_ENHANCEMENT_ROI_MODE */
result.x = xvimagesink->dst_roi.x;
result.y = xvimagesink->dst_roi.y;
result.w = xvimagesink->dst_roi.w;
result.w = xvimagesink->dst_roi.h;
result.h = xvimagesink->dst_roi.w;
}
+#endif /* GST_EXT_XV_ENHANCEMENT_ROI_MODE */
break;
default:
src_input.w /= xvimagesink->zoom;
src_input.h /= xvimagesink->zoom;
}
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
if (xvimagesink->keep_aspect) {
GstVideoRectangle src, dst;
} else {
memcpy (&result, &xvimagesink->render_rect, sizeof (GstVideoRectangle));
}
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
g_mutex_lock (xvimagesink->x_lock);
src_input.h += 1;
}
- GST_LOG_OBJECT( xvimagesink, "screen[%dx%d],window[%d,%d,%dx%d],method[%d],rotate[%d],zoom[%d],src[%dx%d],dst[%d,%d,%dx%d],input[%d,%d,%dx%d],result[%d,%d,%dx%d]",
+ GST_LOG_OBJECT( xvimagesink, "screen[%dx%d],window[%d,%d,%dx%d],method[%d],rotate[%d],zoom[%d],dp_mode[%d],src[%dx%d],dst[%d,%d,%dx%d],input[%d,%d,%dx%d],result[%d,%d,%dx%d]",
xvimagesink->scr_w, xvimagesink->scr_h,
xvimagesink->xwindow->x, xvimagesink->xwindow->y, xvimagesink->xwindow->width, xvimagesink->xwindow->height,
- xvimagesink->display_geometry_method, rotate, xvimagesink->zoom,
+ xvimagesink->display_geometry_method, rotate, xvimagesink->zoom, xvimagesink->display_mode,
src_origin.w, src_origin.h,
dst.x, dst.y, dst.w, dst.h,
src_input.x, src_input.y, src_input.w, src_input.h,
result.x, result.y, result.w, result.h );
- if (atom == None) {
- atom = XInternAtom( xvimagesink->xcontext->disp,
- "_USER_WM_PORT_ATTRIBUTE_ROTATION", False );
+ if (atom_rotation == None) {
+ atom_rotation = XInternAtom(xvimagesink->xcontext->disp,
+ "_USER_WM_PORT_ATTRIBUTE_ROTATION", False);
}
- ret = XvSetPortAttribute(xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom, rotate );
+ ret = XvSetPortAttribute(xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom_rotation, rotate);
if (ret != Success) {
GST_ERROR_OBJECT( xvimagesink, "XvSetPortAttribute failed[%d]. disp[%x],xv_port_id[%d],atom[%x],rotate[%d]",
- ret, xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom, rotate );
+ ret, xvimagesink->xcontext->disp, xvimagesink->xcontext->xv_port_id, atom_rotation, rotate );
return FALSE;
}
return xim;
}
-#endif
+
+
+static gboolean set_display_mode(GstXContext *xcontext, int set_mode)
+{
+ int ret = 0;
+ static gboolean is_exist = FALSE;
+ static XvPortID current_port_id = -1;
+ Atom atom_output = None;
+
+ if (xcontext == NULL) {
+ GST_WARNING("xcontext is NULL");
+ return FALSE;
+ }
+
+ /* check once per one xv_port_id */
+ if (current_port_id != xcontext->xv_port_id) {
+ /* check whether _USER_WM_PORT_ATTRIBUTE_OUTPUT attribute is existed */
+ int i = 0;
+ int count = 0;
+ XvAttribute *const attr = XvQueryPortAttributes(xcontext->disp,
+ xcontext->xv_port_id, &count);
+ is_exist = FALSE;
+ current_port_id = xcontext->xv_port_id;
+ for (i = 0 ; i < count ; i++) {
+ if (!strcmp(attr[i].name, "_USER_WM_PORT_ATTRIBUTE_OUTPUT")) {
+ is_exist = TRUE;
+ GST_INFO("_USER_WM_PORT_ATTRIBUTE_OUTPUT[index %d] found", i);
+ break;
+ }
+ }
+ }
+
+ if (is_exist) {
+ GST_INFO("set display mode %d", set_mode);
+ atom_output = XInternAtom(xcontext->disp,
+ "_USER_WM_PORT_ATTRIBUTE_OUTPUT", False);
+ ret = XvSetPortAttribute(xcontext->disp, xcontext->xv_port_id,
+ atom_output, set_mode);
+ if (ret == Success) {
+ return TRUE;
+ } else {
+ GST_WARNING("display mode[%d] set failed.", set_mode);
+ }
+ } else {
+ GST_WARNING("_USER_WM_PORT_ATTRIBUTE_OUTPUT is not existed");
+ }
+
+ return FALSE;
+}
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* This function handles a GstXWindow creation
* The width and height are the actual pixel size on the display */
#ifdef GST_EXT_XV_ENHANCEMENT
XSetWindowAttributes win_attr;
XWindowAttributes root_attr;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
g_return_val_if_fail (GST_IS_XVIMAGESINK (xvimagesink), NULL);
/* Make window manager not to change window size as Full screen */
win_attr.override_redirect = True;
XChangeWindowAttributes(xvimagesink->xcontext->disp, xwindow->win, CWOverrideRedirect, &win_attr);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
xvimagesink->render_rect.w = width;
xvimagesink->render_rect.h = height;
xwindow->win = XCreateSimpleWindow (xvimagesink->xcontext->disp,
xvimagesink->xcontext->root,
0, 0, width, height, 0, 0, xvimagesink->xcontext->black);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* We have to do that to prevent X from redrawing the background on
* ConfigureNotify. This takes away flickering of video when resizing. */
g_mutex_lock (xvimagesink->x_lock);
/* If we did not create that window we just free the GC and let it live */
- if (xwindow->internal)
+ if (xwindow->internal) {
XDestroyWindow (xvimagesink->xcontext->disp, xwindow->win);
- else
+ if (xvimagesink->xim_transparenter) {
+ XDestroyImage(xvimagesink->xim_transparenter);
+ xvimagesink->xim_transparenter = NULL;
+ }
+ } else {
XSelectInput (xvimagesink->xcontext->disp, xwindow->win, 0);
+ }
XFreeGC (xvimagesink->xcontext->disp, xwindow->gc);
unsigned int cur_win_height = 0;
unsigned int cur_win_border_width = 0;
unsigned int cur_win_depth = 0;
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
XWindowAttributes attr;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
g_return_if_fail (GST_IS_XVIMAGESINK (xvimagesink));
xvimagesink->xwindow->width, xvimagesink->xwindow->height,
xvimagesink->render_rect.x, xvimagesink->render_rect.y,
xvimagesink->render_rect.w, xvimagesink->render_rect.h);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
XGetWindowAttributes (xvimagesink->xcontext->disp,
xvimagesink->xwindow->win, &attr);
xvimagesink->xwindow->width = attr.width;
xvimagesink->xwindow->height = attr.height;
-
if (!xvimagesink->have_render_rect) {
xvimagesink->render_rect.x = xvimagesink->render_rect.y = 0;
xvimagesink->render_rect.w = attr.width;
xvimagesink->render_rect.h = attr.height;
}
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
g_mutex_unlock (xvimagesink->x_lock);
}
XFillRectangle (xvimagesink->xcontext->disp, xwindow->win, xwindow->gc,
xvimagesink->render_rect.x, xvimagesink->render_rect.y,
xvimagesink->render_rect.w, xvimagesink->render_rect.h);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
XSync (xvimagesink->xcontext->disp, FALSE);
break;
case ConfigureNotify:
g_mutex_unlock (xvimagesink->x_lock);
+#ifdef GST_EXT_XV_ENHANCEMENT
GST_INFO_OBJECT (xvimagesink, "Call gst_xvimagesink_xwindow_update_geometry!");
+#endif /* GST_EXT_XV_ENHANCEMENT */
gst_xvimagesink_xwindow_update_geometry (xvimagesink);
g_mutex_lock (xvimagesink->x_lock);
configured = TRUE;
/* Handle Display events */
while (XPending (xvimagesink->xcontext->disp)) {
XNextEvent (xvimagesink->xcontext->disp, &e);
+
switch (e.type) {
case ClientMessage:{
#ifdef GST_EXT_XV_ENHANCEMENT
Atom active_win_atom;
Atom deactive_win_atom;
Atom atom_stream;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
Atom wm_delete;
wm_delete = XInternAtom (xvimagesink->xcontext->disp,
active_win_atom = XInternAtom (xvimagesink->xcontext->disp, "_X_ILLUME_ACTIVATE_WINDOW", False);
deactive_win_atom = XInternAtom (xvimagesink->xcontext->disp, "_X_ILLUME_DEACTIVATE_WINDOW", False);
- if( !active_win_atom || !deactive_win_atom )
- {
+ if (!active_win_atom || !deactive_win_atom) {
GST_WARNING_OBJECT( xvimagesink, "Can NOT get active[%d] or deactive[%d] win atom",
active_win_atom, deactive_win_atom );
- }
- else
- {
- /* Window is DEACTIVATED */
- if( e.xclient.message_type == deactive_win_atom )
- {
+ } else {
+ if (e.xclient.message_type == deactive_win_atom) {
+ /* Window is DEACTIVATED */
/* Get pid of activated/deactivated window */
active_pid = e.xclient.data.l[1];
deactive_pid = e.xclient.data.l[3];
- if( active_pid != deactive_pid )
- {
+ if (active_pid != deactive_pid) {
GST_INFO_OBJECT( xvimagesink, "XClientMessage : Window DEACTIVATED" );
xvimagesink->is_hided = TRUE;
atom_stream = XInternAtom( xvimagesink->xcontext->disp,
"_USER_WM_PORT_ATTRIBUTE_STREAM_OFF", False );
- if( atom_stream != None )
- {
- if( XvSetPortAttribute( xvimagesink->xcontext->disp,
- xvimagesink->xcontext->xv_port_id,
- atom_stream, 0 ) != Success )
- {
+ if (atom_stream != None) {
+ if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+ xvimagesink->xcontext->xv_port_id,
+ atom_stream, 0 ) != Success) {
GST_WARNING_OBJECT( xvimagesink, "STREAM OFF failed" );
}
XSync( xvimagesink->xcontext->disp, FALSE );
}
- }
- else
- {
+ } else {
GST_INFO_OBJECT( xvimagesink, "Window is DEACTIVATED, but same process. so Do not clear screen." );
}
- }
- /* Window is ACTIVATED */
- else if( e.xclient.message_type == active_win_atom )
- {
+ } else if (e.xclient.message_type == active_win_atom) {
+ /* Window is ACTIVATED */
/* Get pid of activated/deactivated window */
active_pid = e.xclient.data.l[1];
deactive_pid = e.xclient.data.l[3];
- if( active_pid != deactive_pid )
- {
+ if (active_pid != deactive_pid) {
GST_INFO_OBJECT( xvimagesink, "XClientMessage : Window ACTIVATED" );
g_mutex_unlock (xvimagesink->x_lock);
g_mutex_lock (xvimagesink->flow_lock);
g_mutex_lock (xvimagesink->x_lock);
- }
- else
- {
+ } else {
GST_INFO_OBJECT( xvimagesink, "Window is ACTIVATED, but same process. so Do not redraw screen." );
}
}
}
-#endif
- }
+#endif /* GST_EXT_XV_ENHANCEMENT */
break;
+ }
default:
break;
}
#ifdef GST_EXT_XV_ENHANCEMENT
xvimagesink->scr_w = max_w;
xvimagesink->scr_h = max_h;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
}
}
GST_DEBUG_OBJECT (xvimagesink, "run xevent thread, expose %d, events %d",
xvimagesink->handle_expose, xvimagesink->handle_events);
xvimagesink->running = TRUE;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
xvimagesink->event_thread = g_thread_create (
(GThreadFunc) gst_xvimagesink_event_thread, xvimagesink, TRUE, NULL);
+#else
+ xvimagesink->event_thread = g_thread_try_new ("xvimagesink-events",
+ (GThreadFunc) gst_xvimagesink_event_thread, xvimagesink, NULL);
+#endif
}
} else {
if (xvimagesink->event_thread) {
for (i = 0; i < (sizeof (channels) / sizeof (char *)); i++) {
XvAttribute *matching_attr = NULL;
- /* Retrieve the property atom if it exists. If it doesn't exist,
+ /* Retrieve the property atom if it exists. If it doesn't exist,
* the attribute itself must not either, so we can skip */
prop_atom = XInternAtom (xcontext->disp, channels[i], True);
if (prop_atom == None)
channel = g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL, NULL);
channel->label = g_strdup (channels[i]);
- channel->min_value = matching_attr ? matching_attr->min_value : -1000;
- channel->max_value = matching_attr ? matching_attr->max_value : 1000;
+ channel->min_value = matching_attr->min_value;
+ channel->max_value = matching_attr->max_value;
xcontext->channels_list = g_list_append (xcontext->channels_list,
channel);
if (xv_attr)
XFree (xv_attr);
+#ifdef GST_EXT_XV_ENHANCEMENT
+ set_display_mode(xcontext, xvimagesink->display_mode);
+#endif /* GST_EXT_XV_ENHANCEMENT */
+
g_mutex_unlock (xvimagesink->x_lock);
return xcontext;
const GValue *caps_disp_reg;
const GValue *fps;
guint num, den;
+#ifdef GST_EXT_XV_ENHANCEMENT
+ gboolean enable_last_buffer;
+#endif /* #ifdef GST_EXT_XV_ENHANCEMENT */
xvimagesink = GST_XVIMAGESINK (bsink);
#ifdef GST_EXT_XV_ENHANCEMENT
xvimagesink->aligned_width = video_width;
xvimagesink->aligned_height = video_height;
-#endif
+
+ /* get enable-last-buffer */
+ g_object_get(G_OBJECT(xvimagesink), "enable-last-buffer", &enable_last_buffer, NULL);
+ GST_INFO_OBJECT(xvimagesink, "current enable-last-buffer : %d", enable_last_buffer);
+
+ /* flush if enable-last-buffer is TRUE */
+ if (enable_last_buffer) {
+ GST_INFO_OBJECT(xvimagesink, "flush last-buffer");
+ g_object_set(G_OBJECT(xvimagesink), "enable-last-buffer", FALSE, NULL);
+ g_object_set(G_OBJECT(xvimagesink), "enable-last-buffer", TRUE, NULL);
+ }
+#endif /* GST_EXT_XV_ENHANCEMENT */
xvimagesink->fps_n = gst_value_get_fraction_numerator (fps);
xvimagesink->fps_d = gst_value_get_fraction_denominator (fps);
GST_VIDEO_SINK_HEIGHT (xvimagesink));
}
- /* After a resize, we want to redraw the borders in case the new frame size
+ /* After a resize, we want to redraw the borders in case the new frame size
* doesn't cover the same area */
xvimagesink->redraw_border = TRUE;
GstXContext *xcontext = NULL;
#ifdef GST_EXT_XV_ENHANCEMENT
Atom atom_preemption = None;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
xvimagesink = GST_XVIMAGESINK (element);
g_mutex_lock (xvimagesink->x_lock);
atom_preemption = XInternAtom( xvimagesink->xcontext->disp,
"_USER_WM_PORT_ATTRIBUTE_PREEMPTION", False );
- if(atom_preemption != None)
- {
- if( XvSetPortAttribute( xvimagesink->xcontext->disp,
- xvimagesink->xcontext->xv_port_id,
- atom_preemption, 1 ) != Success )
- {
+ if (atom_preemption != None) {
+ if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+ xvimagesink->xcontext->xv_port_id,
+ atom_preemption, 1 ) != Success) {
GST_ERROR_OBJECT(xvimagesink, "%d: XvSetPortAttribute: preemption failed.\n", atom_preemption);
}
XSync (xvimagesink->xcontext->disp, FALSE);
}
g_mutex_unlock (xvimagesink->x_lock);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
g_mutex_lock (xvimagesink->pool_lock);
g_mutex_lock (xvimagesink->x_lock);
atom_preemption = XInternAtom( xvimagesink->xcontext->disp,
"_USER_WM_PORT_ATTRIBUTE_PREEMPTION", False );
- if(atom_preemption != None)
- {
- if( XvSetPortAttribute( xvimagesink->xcontext->disp,
- xvimagesink->xcontext->xv_port_id,
- atom_preemption, 0 ) != Success )
- {
+ if (atom_preemption != None) {
+ if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+ xvimagesink->xcontext->xv_port_id,
+ atom_preemption, 0 ) != Success) {
GST_ERROR_OBJECT(xvimagesink, "%d: XvSetPortAttribute: preemption failed.\n", atom_preemption);
}
XSync (xvimagesink->xcontext->disp, FALSE);
}
g_mutex_unlock (xvimagesink->x_lock);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
xvimagesink->fps_n = 0;
#ifdef GST_EXT_XV_ENHANCEMENT
XV_PUTIMAGE_DATA_PTR img_data = NULL;
SCMN_IMGB *scmn_imgb = NULL;
- GstMultiPlaneImageBuffer* mp_buf = NULL;
- int ret = 0;
gint format = 0;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
xvimagesink = GST_XVIMAGESINK (vsink);
#ifdef GST_EXT_XV_ENHANCEMENT
- if( xvimagesink->stop_video )
- {
+ if (xvimagesink->stop_video) {
GST_INFO( "Stop video is TRUE. so skip show frame..." );
return GST_FLOW_OK;
}
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* If this buffer has been allocated using our buffer management we simply
put the ximage which is in the PRIVATE pointer */
GST_DEBUG_OBJECT( xvimagesink, "scmn_imgb is NULL. Skip xvimage put..." );
return GST_FLOW_OK;
}
+
+ /* skip buffer if aligned size is smaller than size of caps */
+ if (scmn_imgb->s[0] < xvimagesink->video_width ||
+ scmn_imgb->e[0] < xvimagesink->video_height) {
+ GST_WARNING_OBJECT(xvimagesink, "invalid size[caps:%dx%d,aligned:%dx%d]. Skip this buffer...",
+ xvimagesink->video_width, xvimagesink->video_height,
+ scmn_imgb->s[0], scmn_imgb->e[0]);
+ return GST_FLOW_OK;
+ }
+
xvimagesink->aligned_width = scmn_imgb->s[0];
xvimagesink->aligned_height = scmn_imgb->e[0];
GST_INFO_OBJECT(xvimagesink, "Use aligned width,height[%dx%d]",
GST_INFO_OBJECT(xvimagesink, "Use original width,height of caps");
break;
}
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
xvimagesink->xvimage = gst_xvimagesink_xvimage_new (xvimagesink,
GST_BUFFER_CAPS (buf));
}
#ifdef GST_EXT_XV_ENHANCEMENT
-
switch (xvimagesink->xvimage->im_format) {
/* Cases for specified formats of Samsung extension */
case GST_MAKE_FOURCC('S', 'T', '1', '2'):
case GST_MAKE_FOURCC('S', 'U', 'Y', '2'):
case GST_MAKE_FOURCC('S', 'U', 'Y', 'V'):
case GST_MAKE_FOURCC('S', 'Y', 'V', 'Y'):
+ case GST_MAKE_FOURCC('I', 'T', 'L', 'V'):
{
GST_DEBUG("Samsung extension display format activated. fourcc:%d,display mode:%d,Rotate angle:%d",
xvimagesink->xvimage->im_format, xvimagesink->display_mode, xvimagesink->rotate_angle);
break;
}
}
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
memcpy (xvimagesink->xvimage->xvimage->data,
GST_BUFFER_DATA (buf),
MIN (GST_BUFFER_SIZE (buf), xvimagesink->xvimage->size));
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
+
if (!gst_xvimagesink_xvimage_put (xvimagesink, xvimagesink->xvimage))
goto no_window;
}
suitable one */
while (xvimagesink->image_pool) {
xvimage = xvimagesink->image_pool->data;
+
if (xvimage) {
/* Removing from the pool */
xvimagesink->image_pool = g_slist_delete_link (xvimagesink->image_pool,
static gboolean
gst_xvimagesink_interface_supported (GstImplementsInterface * iface, GType type)
{
- g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY ||
- type == GST_TYPE_COLOR_BALANCE || type == GST_TYPE_PROPERTY_PROBE);
- return TRUE;
+ if (type == GST_TYPE_NAVIGATION || type == GST_TYPE_X_OVERLAY ||
+ type == GST_TYPE_COLOR_BALANCE || type == GST_TYPE_PROPERTY_PROBE)
+ return TRUE;
+ else
+ return FALSE;
}
static void
#ifdef GST_EXT_XV_ENHANCEMENT
GST_INFO_OBJECT( xvimagesink, "ENTER, id : %d", xwindow_id );
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
/* If we already use that window return */
if (xvimagesink->xwindow && (xwindow_id == xvimagesink->xwindow->win)) {
#ifdef GST_EXT_XV_ENHANCEMENT
GST_INFO_OBJECT( xvimagesink, "xid is 0. create window[%dx%d]",
GST_VIDEO_SINK_WIDTH (xvimagesink), GST_VIDEO_SINK_HEIGHT (xvimagesink) );
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
if (GST_VIDEO_SINK_WIDTH (xvimagesink)
&& GST_VIDEO_SINK_HEIGHT (xvimagesink)) {
xwindow =
#ifdef GST_EXT_XV_ENHANCEMENT
GST_INFO_OBJECT( xvimagesink, "Overlay window exposed. update it");
gst_xvimagesink_xvimage_put (xvimagesink, xvimagesink->xvimage);
-#else
+#else /* GST_EXT_XV_ENHANCEMENT */
gst_xvimagesink_xvimage_put (xvimagesink, NULL);
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
}
static void
break;
#ifdef GST_EXT_XV_ENHANCEMENT
case PROP_DISPLAY_MODE:
- xvimagesink->display_mode = g_value_get_enum (value);
+ {
+ int set_mode = g_value_get_enum (value);
+
+ g_mutex_lock(xvimagesink->flow_lock);
+ g_mutex_lock(xvimagesink->x_lock);
+
+ if (xvimagesink->display_mode != set_mode) {
+ if (xvimagesink->xcontext) {
+ /* set display mode */
+ if (set_display_mode(xvimagesink->xcontext, set_mode)) {
+ xvimagesink->display_mode = set_mode;
+ } else {
+ GST_WARNING_OBJECT(xvimagesink, "display mode[%d] set failed.", set_mode);
+ }
+ } else {
+ /* "xcontext" is not created yet. It will be applied when xcontext is created. */
+ GST_INFO_OBJECT(xvimagesink, "xcontext is NULL. display-mode will be set later.");
+ xvimagesink->display_mode = set_mode;
+ }
+ } else {
+ GST_INFO_OBJECT(xvimagesink, "skip display mode %d, because current mode is same", set_mode);
+ }
+
+ g_mutex_unlock(xvimagesink->x_lock);
+ g_mutex_unlock(xvimagesink->flow_lock);
+ }
break;
case PROP_DISPLAY_GEOMETRY_METHOD:
xvimagesink->display_geometry_method = g_value_get_enum (value);
g_mutex_lock( xvimagesink->flow_lock );
g_mutex_lock( xvimagesink->x_lock );
- if( xvimagesink->visible && ( g_value_get_boolean( value ) == FALSE ) )
- {
+ if (xvimagesink->visible && (g_value_get_boolean(value) == FALSE)) {
Atom atom_stream = XInternAtom( xvimagesink->xcontext->disp,
"_USER_WM_PORT_ATTRIBUTE_STREAM_OFF", False );
- if( atom_stream != None )
- {
- if( XvSetPortAttribute( xvimagesink->xcontext->disp,
- xvimagesink->xcontext->xv_port_id,
- atom_stream, 0 ) != Success )
- {
+ if (atom_stream != None) {
+ if (XvSetPortAttribute(xvimagesink->xcontext->disp,
+ xvimagesink->xcontext->xv_port_id,
+ atom_stream, 0 ) != Success) {
GST_WARNING_OBJECT( xvimagesink, "Set visible FALSE failed" );
}
XSync( xvimagesink->xcontext->disp, FALSE );
}
- }
- else if( !xvimagesink->visible && ( g_value_get_boolean( value ) == TRUE ) )
- {
+ } else if (!xvimagesink->visible && (g_value_get_boolean(value) == TRUE)) {
g_mutex_unlock( xvimagesink->x_lock );
g_mutex_unlock( xvimagesink->flow_lock );
GST_INFO_OBJECT( xvimagesink, "Set visible as TRUE. Update it." );
g_mutex_unlock( xvimagesink->flow_lock );
break;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_STOP_VIDEO:
g_value_set_int (value, xvimagesink->stop_video);
break;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
G_OBJECT_CLASS (parent_class)->finalize (object);
}
-
static void
-gst_xvimagesink_init (GstXvImageSink * xvimagesink)
+gst_xvimagesink_init (GstXvImageSink * xvimagesink,
+ GstXvImageSinkClass * xvimagesinkclass)
{
xvimagesink->display_name = NULL;
xvimagesink->adaptor_no = 0;
xvimagesink->draw_borders = TRUE;
#ifdef GST_EXT_XV_ENHANCEMENT
- xvimagesink->display_mode = VIDEO_MODE_LCDONLY;
+ xvimagesink->display_mode = DISPLAY_MODE_DEFAULT;
xvimagesink->rotate_changed = TRUE;
xvimagesink->display_geometry_method = DEF_DISPLAY_GEOMETRY_METHOD;
xvimagesink->rotate_angle = DEGREE_270;
xvimagesink->aligned_height = 0;
xvimagesink->stop_video = FALSE;
xvimagesink->is_hided = FALSE;
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
}
static void
"Video sink", "Sink/Video",
"A Xv based videosink", "Julien Moutte <julien@moutte.net>");
- gst_element_class_add_pad_template (element_class,
- gst_static_pad_template_get (&gst_xvimagesink_sink_template_factory));
+ gst_element_class_add_static_pad_template (element_class,
+ &gst_xvimagesink_sink_template_factory);
}
static void
gstbasesink_class = (GstBaseSinkClass *) klass;
videosink_class = (GstVideoSinkClass *) klass;
- parent_class = g_type_class_peek_parent (klass);
-
gobject_class->set_property = gst_xvimagesink_set_property;
gobject_class->get_property = gst_xvimagesink_get_property;
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_SYNCHRONOUS,
g_param_spec_boolean ("synchronous", "Synchronous",
- "When enabled, runs "
- "the X display in synchronous mode. (used only for debugging)", FALSE,
+ "When enabled, runs the X display in synchronous mode. "
+ "(unrelated to A/V sync, used only for debugging)", FALSE,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
g_object_class_install_property (gobject_class, PROP_PIXEL_ASPECT_RATIO,
g_param_spec_string ("pixel-aspect-ratio", "Pixel Aspect Ratio",
g_object_class_install_property(gobject_class, PROP_DISPLAY_MODE,
g_param_spec_enum("display-mode", "Display Mode",
"Display device setting",
- GST_TYPE_XVIMAGESINK_DISPLAY_MODE, VIDEO_MODE_LCDONLY,
+ GST_TYPE_XVIMAGESINK_DISPLAY_MODE, DISPLAY_MODE_DEFAULT,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
/**
g_param_spec_int ("stop-video", "Stop-Video",
"Stop video for releasing video source buffer", 0, 1, 0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-#endif
+#endif /* GST_EXT_XV_ENHANCEMENT */
gobject_class->finalize = gst_xvimagesink_finalize;
/* Object typing & Creation */
/* */
/* =========================================== */
-
-GType
-gst_xvimagesink_get_type (void)
+static void
+gst_xvimagesink_init_interfaces (GType type)
{
- static GType xvimagesink_type = 0;
-
- if (!xvimagesink_type) {
- static const GTypeInfo xvimagesink_info = {
- sizeof (GstXvImageSinkClass),
- gst_xvimagesink_base_init,
- NULL,
- (GClassInitFunc) gst_xvimagesink_class_init,
- NULL,
- NULL,
- sizeof (GstXvImageSink),
- 0,
- (GInstanceInitFunc) gst_xvimagesink_init,
- };
- static const GInterfaceInfo iface_info = {
- (GInterfaceInitFunc) gst_xvimagesink_interface_init,
- NULL,
- NULL,
- };
- static const GInterfaceInfo navigation_info = {
- (GInterfaceInitFunc) gst_xvimagesink_navigation_init,
- NULL,
- NULL,
- };
- static const GInterfaceInfo overlay_info = {
- (GInterfaceInitFunc) gst_xvimagesink_xoverlay_init,
- NULL,
- NULL,
- };
- static const GInterfaceInfo colorbalance_info = {
- (GInterfaceInitFunc) gst_xvimagesink_colorbalance_init,
- NULL,
- NULL,
- };
- static const GInterfaceInfo propertyprobe_info = {
- (GInterfaceInitFunc) gst_xvimagesink_property_probe_interface_init,
- NULL,
- NULL,
- };
- xvimagesink_type = g_type_register_static (GST_TYPE_VIDEO_SINK,
- "GstXvImageSink", &xvimagesink_info, 0);
-
- g_type_add_interface_static (xvimagesink_type,
- GST_TYPE_IMPLEMENTS_INTERFACE, &iface_info);
- g_type_add_interface_static (xvimagesink_type, GST_TYPE_NAVIGATION,
- &navigation_info);
- g_type_add_interface_static (xvimagesink_type, GST_TYPE_X_OVERLAY,
- &overlay_info);
- g_type_add_interface_static (xvimagesink_type, GST_TYPE_COLOR_BALANCE,
- &colorbalance_info);
- g_type_add_interface_static (xvimagesink_type, GST_TYPE_PROPERTY_PROBE,
- &propertyprobe_info);
-
-
- /* register type and create class in a more safe place instead of at
- * runtime since the type registration and class creation is not
- * threadsafe. */
- g_type_class_ref (gst_xvimage_buffer_get_type ());
- }
+ static const GInterfaceInfo iface_info = {
+ (GInterfaceInitFunc) gst_xvimagesink_interface_init,
+ NULL,
+ NULL,
+ };
+ static const GInterfaceInfo navigation_info = {
+ (GInterfaceInitFunc) gst_xvimagesink_navigation_init,
+ NULL,
+ NULL,
+ };
+ static const GInterfaceInfo overlay_info = {
+ (GInterfaceInitFunc) gst_xvimagesink_xoverlay_init,
+ NULL,
+ NULL,
+ };
+ static const GInterfaceInfo colorbalance_info = {
+ (GInterfaceInitFunc) gst_xvimagesink_colorbalance_init,
+ NULL,
+ NULL,
+ };
+ static const GInterfaceInfo propertyprobe_info = {
+ (GInterfaceInitFunc) gst_xvimagesink_property_probe_interface_init,
+ NULL,
+ NULL,
+ };
- return xvimagesink_type;
+ g_type_add_interface_static (type,
+ GST_TYPE_IMPLEMENTS_INTERFACE, &iface_info);
+ g_type_add_interface_static (type, GST_TYPE_NAVIGATION, &navigation_info);
+ g_type_add_interface_static (type, GST_TYPE_X_OVERLAY, &overlay_info);
+ g_type_add_interface_static (type, GST_TYPE_COLOR_BALANCE,
+ &colorbalance_info);
+ g_type_add_interface_static (type, GST_TYPE_PROPERTY_PROBE,
+ &propertyprobe_info);
+
+ /* register type and create class in a more safe place instead of at
+ * runtime since the type registration and class creation is not
+ * threadsafe. */
+ g_type_class_ref (gst_xvimage_buffer_get_type ());
}
static gboolean
/* stream metadata */
gchar *media_title;
- /* target video rectagle */
+ /* target video rectangle */
GstVideoRectangle render_rect;
gboolean have_render_rect;
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
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:
$(REGISTRY_ENVIRONMENT) \
GST_PLUGIN_SYSTEM_PATH= \
GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
- GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)"
+ GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)" \
+ GST_TAG_LICENSE_TRANSLATIONS_DICT="$(top_srcdir)/gst-libs/gst/tag/license-translations.dict"
# ths core dumps of some machines have PIDs appended
elements/multifdsink \
elements/playbin \
elements/playbin2 \
+ elements/playbin2-compressed \
$(check_subparse) \
elements/videorate \
elements/videoscale \
noinst_PROGRAMS = $(check_libvisual)
noinst_HEADERS = \
+ libs/struct_arm.h \
libs/struct_i386.h \
libs/struct_i386_osx.h \
libs/struct_x86_64.h
elements_playbin2_LDADD = $(GST_BASE_LIBS) $(LDADD)
elements_playbin2_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_playbin2_compressed_LDADD = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la $(GST_BASE_LIBS) $(LDADD)
+elements_playbin2_compressed_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+
elements_decodebin_LDADD = $(GST_BASE_LIBS) $(LDADD)
elements_decodebin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
$(AM_CFLAGS)
elements_audioresample_LDADD = \
+ $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
$(GST_BASE_LIBS) \
elements_volume_LDADD = \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
- $(GST_PLUGINS_BASE_LIBS) \
$(GST_CONTROLLER_LIBS) \
$(GST_BASE_LIBS) \
$(LDADD)
-# 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.
$(am__EXEEXT_8) elements/ffmpegcolorspace$(EXEEXT) \
elements/gdpdepay$(EXEEXT) elements/gdppay$(EXEEXT) \
elements/multifdsink$(EXEEXT) elements/playbin$(EXEEXT) \
- elements/playbin2$(EXEEXT) $(am__EXEEXT_9) \
+ elements/playbin2$(EXEEXT) \
+ elements/playbin2-compressed$(EXEEXT) $(am__EXEEXT_9) \
elements/videorate$(EXEEXT) elements/videoscale$(EXEEXT) \
elements/videotestsrc$(EXEEXT) elements/volume$(EXEEXT) \
generic/clock-selection$(EXEEXT) generic/states$(EXEEXT) \
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
am__DEPENDENCIES_1 =
elements_adder_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
am__dirstamp = $(am__leading_dot)dirstamp
elements_alsa_SOURCES = elements/alsa.c
elements_audioresample_SOURCES = elements/audioresample.c
elements_audioresample_OBJECTS = \
elements_audioresample-audioresample.$(OBJEXT)
-elements_audioresample_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
+elements_audioresample_DEPENDENCIES = $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
+ $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
elements_audioresample_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(elements_playbin2_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
-o $@
+elements_playbin2_compressed_SOURCES = elements/playbin2-compressed.c
+elements_playbin2_compressed_OBJECTS = \
+ elements_playbin2_compressed-playbin2-compressed.$(OBJEXT)
+elements_playbin2_compressed_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_playbin2_compressed_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
elements_subparse_SOURCES = elements/subparse.c
elements_subparse_OBJECTS = elements_subparse-subparse.$(OBJEXT)
elements_subparse_DEPENDENCIES = $(am__DEPENDENCIES_2)
$(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)
$(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 = elements/adder.c elements/alsa.c elements/appsink.c \
elements/appsrc.c elements/audioconvert.c elements/audiorate.c \
elements/encodebin.c elements/ffmpegcolorspace.c \
elements/gdpdepay.c elements/gdppay.c elements/gnomevfssink.c \
elements/libvisual.c elements/multifdsink.c elements/playbin.c \
- elements/playbin2.c elements/subparse.c elements/textoverlay.c \
+ elements/playbin2.c elements/playbin2-compressed.c \
+ elements/subparse.c elements/textoverlay.c \
elements/videorate.c elements/videoscale.c \
elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
elements/vorbistag.c generic/clock-selection.c \
elements/encodebin.c elements/ffmpegcolorspace.c \
elements/gdpdepay.c elements/gdppay.c elements/gnomevfssink.c \
elements/libvisual.c elements/multifdsink.c elements/playbin.c \
- elements/playbin2.c elements/subparse.c elements/textoverlay.c \
+ elements/playbin2.c elements/playbin2-compressed.c \
+ elements/subparse.c elements/textoverlay.c \
elements/videorate.c elements/videoscale.c \
elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
elements/vorbistag.c generic/clock-selection.c \
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
$(REGISTRY_ENVIRONMENT) \
GST_PLUGIN_SYSTEM_PATH= \
GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(GST_PLUGINS_DIR) \
- GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)"
+ GST_PLUGIN_LOADING_WHITELIST="gstreamer:gst-plugins-base@$(top_builddir)" \
+ GST_TAG_LICENSE_TRANSLATIONS_DICT="$(top_srcdir)/gst-libs/gst/tag/license-translations.dict"
# ths core dumps of some machines have PIDs appended
libs/video
noinst_HEADERS = \
+ libs/struct_arm.h \
libs/struct_i386.h \
libs/struct_i386_osx.h \
libs/struct_x86_64.h
elements_playbin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
elements_playbin2_LDADD = $(GST_BASE_LIBS) $(LDADD)
elements_playbin2_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_playbin2_compressed_LDADD = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la $(GST_BASE_LIBS) $(LDADD)
+elements_playbin2_compressed_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
elements_decodebin_LDADD = $(GST_BASE_LIBS) $(LDADD)
elements_decodebin_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
elements_encodebin_LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la $(GST_BASE_LIBS) $(LDADD)
$(AM_CFLAGS)
elements_audioresample_LDADD = \
+ $(top_builddir)/gst-libs/gst/fft/libgstfft-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
$(GST_BASE_LIBS) \
elements_textoverlay_CFLAGS = $(GST_BASE_CFLAGS) $(AM_CFLAGS)
elements_volume_LDADD = \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
- $(GST_PLUGINS_BASE_LIBS) \
$(GST_CONTROLLER_LIBS) \
$(GST_BASE_LIBS) \
$(LDADD)
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
elements/$(am__dirstamp):
@$(MKDIR_P) elements
@: > elements/$(am__dirstamp)
-elements/adder$(EXEEXT): $(elements_adder_OBJECTS) $(elements_adder_DEPENDENCIES) elements/$(am__dirstamp)
+elements/adder$(EXEEXT): $(elements_adder_OBJECTS) $(elements_adder_DEPENDENCIES) $(EXTRA_elements_adder_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/adder$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_adder_OBJECTS) $(elements_adder_LDADD) $(LIBS)
-elements/alsa$(EXEEXT): $(elements_alsa_OBJECTS) $(elements_alsa_DEPENDENCIES) elements/$(am__dirstamp)
+elements/alsa$(EXEEXT): $(elements_alsa_OBJECTS) $(elements_alsa_DEPENDENCIES) $(EXTRA_elements_alsa_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/alsa$(EXEEXT)
$(AM_V_CCLD)$(elements_alsa_LINK) $(elements_alsa_OBJECTS) $(elements_alsa_LDADD) $(LIBS)
-elements/appsink$(EXEEXT): $(elements_appsink_OBJECTS) $(elements_appsink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/appsink$(EXEEXT): $(elements_appsink_OBJECTS) $(elements_appsink_DEPENDENCIES) $(EXTRA_elements_appsink_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/appsink$(EXEEXT)
$(AM_V_CCLD)$(elements_appsink_LINK) $(elements_appsink_OBJECTS) $(elements_appsink_LDADD) $(LIBS)
-elements/appsrc$(EXEEXT): $(elements_appsrc_OBJECTS) $(elements_appsrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/appsrc$(EXEEXT): $(elements_appsrc_OBJECTS) $(elements_appsrc_DEPENDENCIES) $(EXTRA_elements_appsrc_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/appsrc$(EXEEXT)
$(AM_V_CCLD)$(elements_appsrc_LINK) $(elements_appsrc_OBJECTS) $(elements_appsrc_LDADD) $(LIBS)
-elements/audioconvert$(EXEEXT): $(elements_audioconvert_OBJECTS) $(elements_audioconvert_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audioconvert$(EXEEXT): $(elements_audioconvert_OBJECTS) $(elements_audioconvert_DEPENDENCIES) $(EXTRA_elements_audioconvert_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/audioconvert$(EXEEXT)
$(AM_V_CCLD)$(elements_audioconvert_LINK) $(elements_audioconvert_OBJECTS) $(elements_audioconvert_LDADD) $(LIBS)
-elements/audiorate$(EXEEXT): $(elements_audiorate_OBJECTS) $(elements_audiorate_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audiorate$(EXEEXT): $(elements_audiorate_OBJECTS) $(elements_audiorate_DEPENDENCIES) $(EXTRA_elements_audiorate_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/audiorate$(EXEEXT)
$(AM_V_CCLD)$(elements_audiorate_LINK) $(elements_audiorate_OBJECTS) $(elements_audiorate_LDADD) $(LIBS)
-elements/audioresample$(EXEEXT): $(elements_audioresample_OBJECTS) $(elements_audioresample_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audioresample$(EXEEXT): $(elements_audioresample_OBJECTS) $(elements_audioresample_DEPENDENCIES) $(EXTRA_elements_audioresample_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/audioresample$(EXEEXT)
$(AM_V_CCLD)$(elements_audioresample_LINK) $(elements_audioresample_OBJECTS) $(elements_audioresample_LDADD) $(LIBS)
-elements/audiotestsrc$(EXEEXT): $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/audiotestsrc$(EXEEXT): $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_DEPENDENCIES) $(EXTRA_elements_audiotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/audiotestsrc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_audiotestsrc_OBJECTS) $(elements_audiotestsrc_LDADD) $(LIBS)
-elements/decodebin$(EXEEXT): $(elements_decodebin_OBJECTS) $(elements_decodebin_DEPENDENCIES) elements/$(am__dirstamp)
+elements/decodebin$(EXEEXT): $(elements_decodebin_OBJECTS) $(elements_decodebin_DEPENDENCIES) $(EXTRA_elements_decodebin_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/decodebin$(EXEEXT)
$(AM_V_CCLD)$(elements_decodebin_LINK) $(elements_decodebin_OBJECTS) $(elements_decodebin_LDADD) $(LIBS)
-elements/decodebin2$(EXEEXT): $(elements_decodebin2_OBJECTS) $(elements_decodebin2_DEPENDENCIES) elements/$(am__dirstamp)
+elements/decodebin2$(EXEEXT): $(elements_decodebin2_OBJECTS) $(elements_decodebin2_DEPENDENCIES) $(EXTRA_elements_decodebin2_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/decodebin2$(EXEEXT)
$(AM_V_CCLD)$(elements_decodebin2_LINK) $(elements_decodebin2_OBJECTS) $(elements_decodebin2_LDADD) $(LIBS)
-elements/encodebin$(EXEEXT): $(elements_encodebin_OBJECTS) $(elements_encodebin_DEPENDENCIES) elements/$(am__dirstamp)
+elements/encodebin$(EXEEXT): $(elements_encodebin_OBJECTS) $(elements_encodebin_DEPENDENCIES) $(EXTRA_elements_encodebin_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/encodebin$(EXEEXT)
$(AM_V_CCLD)$(elements_encodebin_LINK) $(elements_encodebin_OBJECTS) $(elements_encodebin_LDADD) $(LIBS)
-elements/ffmpegcolorspace$(EXEEXT): $(elements_ffmpegcolorspace_OBJECTS) $(elements_ffmpegcolorspace_DEPENDENCIES) elements/$(am__dirstamp)
+elements/ffmpegcolorspace$(EXEEXT): $(elements_ffmpegcolorspace_OBJECTS) $(elements_ffmpegcolorspace_DEPENDENCIES) $(EXTRA_elements_ffmpegcolorspace_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/ffmpegcolorspace$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_ffmpegcolorspace_OBJECTS) $(elements_ffmpegcolorspace_LDADD) $(LIBS)
-elements/gdpdepay$(EXEEXT): $(elements_gdpdepay_OBJECTS) $(elements_gdpdepay_DEPENDENCIES) elements/$(am__dirstamp)
+elements/gdpdepay$(EXEEXT): $(elements_gdpdepay_OBJECTS) $(elements_gdpdepay_DEPENDENCIES) $(EXTRA_elements_gdpdepay_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/gdpdepay$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_gdpdepay_OBJECTS) $(elements_gdpdepay_LDADD) $(LIBS)
-elements/gdppay$(EXEEXT): $(elements_gdppay_OBJECTS) $(elements_gdppay_DEPENDENCIES) elements/$(am__dirstamp)
+elements/gdppay$(EXEEXT): $(elements_gdppay_OBJECTS) $(elements_gdppay_DEPENDENCIES) $(EXTRA_elements_gdppay_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/gdppay$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_gdppay_OBJECTS) $(elements_gdppay_LDADD) $(LIBS)
-elements/gnomevfssink$(EXEEXT): $(elements_gnomevfssink_OBJECTS) $(elements_gnomevfssink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/gnomevfssink$(EXEEXT): $(elements_gnomevfssink_OBJECTS) $(elements_gnomevfssink_DEPENDENCIES) $(EXTRA_elements_gnomevfssink_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/gnomevfssink$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_gnomevfssink_OBJECTS) $(elements_gnomevfssink_LDADD) $(LIBS)
-elements/libvisual$(EXEEXT): $(elements_libvisual_OBJECTS) $(elements_libvisual_DEPENDENCIES) elements/$(am__dirstamp)
+elements/libvisual$(EXEEXT): $(elements_libvisual_OBJECTS) $(elements_libvisual_DEPENDENCIES) $(EXTRA_elements_libvisual_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/libvisual$(EXEEXT)
$(AM_V_CCLD)$(elements_libvisual_LINK) $(elements_libvisual_OBJECTS) $(elements_libvisual_LDADD) $(LIBS)
-elements/multifdsink$(EXEEXT): $(elements_multifdsink_OBJECTS) $(elements_multifdsink_DEPENDENCIES) elements/$(am__dirstamp)
+elements/multifdsink$(EXEEXT): $(elements_multifdsink_OBJECTS) $(elements_multifdsink_DEPENDENCIES) $(EXTRA_elements_multifdsink_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/multifdsink$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_multifdsink_OBJECTS) $(elements_multifdsink_LDADD) $(LIBS)
-elements/playbin$(EXEEXT): $(elements_playbin_OBJECTS) $(elements_playbin_DEPENDENCIES) elements/$(am__dirstamp)
+elements/playbin$(EXEEXT): $(elements_playbin_OBJECTS) $(elements_playbin_DEPENDENCIES) $(EXTRA_elements_playbin_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/playbin$(EXEEXT)
$(AM_V_CCLD)$(elements_playbin_LINK) $(elements_playbin_OBJECTS) $(elements_playbin_LDADD) $(LIBS)
-elements/playbin2$(EXEEXT): $(elements_playbin2_OBJECTS) $(elements_playbin2_DEPENDENCIES) elements/$(am__dirstamp)
+elements/playbin2$(EXEEXT): $(elements_playbin2_OBJECTS) $(elements_playbin2_DEPENDENCIES) $(EXTRA_elements_playbin2_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/playbin2$(EXEEXT)
$(AM_V_CCLD)$(elements_playbin2_LINK) $(elements_playbin2_OBJECTS) $(elements_playbin2_LDADD) $(LIBS)
-elements/subparse$(EXEEXT): $(elements_subparse_OBJECTS) $(elements_subparse_DEPENDENCIES) elements/$(am__dirstamp)
+elements/playbin2-compressed$(EXEEXT): $(elements_playbin2_compressed_OBJECTS) $(elements_playbin2_compressed_DEPENDENCIES) $(EXTRA_elements_playbin2_compressed_DEPENDENCIES) elements/$(am__dirstamp)
+ @rm -f elements/playbin2-compressed$(EXEEXT)
+ $(AM_V_CCLD)$(elements_playbin2_compressed_LINK) $(elements_playbin2_compressed_OBJECTS) $(elements_playbin2_compressed_LDADD) $(LIBS)
+elements/subparse$(EXEEXT): $(elements_subparse_OBJECTS) $(elements_subparse_DEPENDENCIES) $(EXTRA_elements_subparse_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/subparse$(EXEEXT)
$(AM_V_CCLD)$(elements_subparse_LINK) $(elements_subparse_OBJECTS) $(elements_subparse_LDADD) $(LIBS)
-elements/textoverlay$(EXEEXT): $(elements_textoverlay_OBJECTS) $(elements_textoverlay_DEPENDENCIES) elements/$(am__dirstamp)
+elements/textoverlay$(EXEEXT): $(elements_textoverlay_OBJECTS) $(elements_textoverlay_DEPENDENCIES) $(EXTRA_elements_textoverlay_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/textoverlay$(EXEEXT)
$(AM_V_CCLD)$(elements_textoverlay_LINK) $(elements_textoverlay_OBJECTS) $(elements_textoverlay_LDADD) $(LIBS)
-elements/videorate$(EXEEXT): $(elements_videorate_OBJECTS) $(elements_videorate_DEPENDENCIES) elements/$(am__dirstamp)
+elements/videorate$(EXEEXT): $(elements_videorate_OBJECTS) $(elements_videorate_DEPENDENCIES) $(EXTRA_elements_videorate_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/videorate$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_videorate_OBJECTS) $(elements_videorate_LDADD) $(LIBS)
-elements/videoscale$(EXEEXT): $(elements_videoscale_OBJECTS) $(elements_videoscale_DEPENDENCIES) elements/$(am__dirstamp)
+elements/videoscale$(EXEEXT): $(elements_videoscale_OBJECTS) $(elements_videoscale_DEPENDENCIES) $(EXTRA_elements_videoscale_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/videoscale$(EXEEXT)
$(AM_V_CCLD)$(elements_videoscale_LINK) $(elements_videoscale_OBJECTS) $(elements_videoscale_LDADD) $(LIBS)
-elements/videotestsrc$(EXEEXT): $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
+elements/videotestsrc$(EXEEXT): $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_DEPENDENCIES) $(EXTRA_elements_videotestsrc_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/videotestsrc$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(elements_videotestsrc_OBJECTS) $(elements_videotestsrc_LDADD) $(LIBS)
-elements/volume$(EXEEXT): $(elements_volume_OBJECTS) $(elements_volume_DEPENDENCIES) elements/$(am__dirstamp)
+elements/volume$(EXEEXT): $(elements_volume_OBJECTS) $(elements_volume_DEPENDENCIES) $(EXTRA_elements_volume_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/volume$(EXEEXT)
$(AM_V_CCLD)$(elements_volume_LINK) $(elements_volume_OBJECTS) $(elements_volume_LDADD) $(LIBS)
-elements/vorbisdec$(EXEEXT): $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_DEPENDENCIES) elements/$(am__dirstamp)
+elements/vorbisdec$(EXEEXT): $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_DEPENDENCIES) $(EXTRA_elements_vorbisdec_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/vorbisdec$(EXEEXT)
$(AM_V_CCLD)$(elements_vorbisdec_LINK) $(elements_vorbisdec_OBJECTS) $(elements_vorbisdec_LDADD) $(LIBS)
-elements/vorbistag$(EXEEXT): $(elements_vorbistag_OBJECTS) $(elements_vorbistag_DEPENDENCIES) elements/$(am__dirstamp)
+elements/vorbistag$(EXEEXT): $(elements_vorbistag_OBJECTS) $(elements_vorbistag_DEPENDENCIES) $(EXTRA_elements_vorbistag_DEPENDENCIES) elements/$(am__dirstamp)
@rm -f elements/vorbistag$(EXEEXT)
$(AM_V_CCLD)$(elements_vorbistag_LINK) $(elements_vorbistag_OBJECTS) $(elements_vorbistag_LDADD) $(LIBS)
generic/$(am__dirstamp):
@$(MKDIR_P) generic
@: > generic/$(am__dirstamp)
-generic/clock-selection$(EXEEXT): $(generic_clock_selection_OBJECTS) $(generic_clock_selection_DEPENDENCIES) generic/$(am__dirstamp)
+generic/clock-selection$(EXEEXT): $(generic_clock_selection_OBJECTS) $(generic_clock_selection_DEPENDENCIES) $(EXTRA_generic_clock_selection_DEPENDENCIES) generic/$(am__dirstamp)
@rm -f generic/clock-selection$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(generic_clock_selection_OBJECTS) $(generic_clock_selection_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)
gst/$(am__dirstamp):
@$(MKDIR_P) gst
@: > gst/$(am__dirstamp)
-gst/typefindfunctions$(EXEEXT): $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_DEPENDENCIES) gst/$(am__dirstamp)
+gst/typefindfunctions$(EXEEXT): $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_DEPENDENCIES) $(EXTRA_gst_typefindfunctions_DEPENDENCIES) gst/$(am__dirstamp)
@rm -f gst/typefindfunctions$(EXEEXT)
$(AM_V_CCLD)$(gst_typefindfunctions_LINK) $(gst_typefindfunctions_OBJECTS) $(gst_typefindfunctions_LDADD) $(LIBS)
libs/$(am__dirstamp):
@$(MKDIR_P) libs
@: > libs/$(am__dirstamp)
-libs/audio$(EXEEXT): $(libs_audio_OBJECTS) $(libs_audio_DEPENDENCIES) libs/$(am__dirstamp)
+libs/audio$(EXEEXT): $(libs_audio_OBJECTS) $(libs_audio_DEPENDENCIES) $(EXTRA_libs_audio_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/audio$(EXEEXT)
$(AM_V_CCLD)$(libs_audio_LINK) $(libs_audio_OBJECTS) $(libs_audio_LDADD) $(LIBS)
-libs/cddabasesrc$(EXEEXT): $(libs_cddabasesrc_OBJECTS) $(libs_cddabasesrc_DEPENDENCIES) libs/$(am__dirstamp)
+libs/cddabasesrc$(EXEEXT): $(libs_cddabasesrc_OBJECTS) $(libs_cddabasesrc_DEPENDENCIES) $(EXTRA_libs_cddabasesrc_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/cddabasesrc$(EXEEXT)
$(AM_V_CCLD)$(libs_cddabasesrc_LINK) $(libs_cddabasesrc_OBJECTS) $(libs_cddabasesrc_LDADD) $(LIBS)
-libs/discoverer$(EXEEXT): $(libs_discoverer_OBJECTS) $(libs_discoverer_DEPENDENCIES) libs/$(am__dirstamp)
+libs/discoverer$(EXEEXT): $(libs_discoverer_OBJECTS) $(libs_discoverer_DEPENDENCIES) $(EXTRA_libs_discoverer_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/discoverer$(EXEEXT)
$(AM_V_CCLD)$(libs_discoverer_LINK) $(libs_discoverer_OBJECTS) $(libs_discoverer_LDADD) $(LIBS)
-libs/fft$(EXEEXT): $(libs_fft_OBJECTS) $(libs_fft_DEPENDENCIES) libs/$(am__dirstamp)
+libs/fft$(EXEEXT): $(libs_fft_OBJECTS) $(libs_fft_DEPENDENCIES) $(EXTRA_libs_fft_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/fft$(EXEEXT)
$(AM_V_CCLD)$(libs_fft_LINK) $(libs_fft_OBJECTS) $(libs_fft_LDADD) $(LIBS)
-libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
+libs/gstlibscpp$(EXEEXT): $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_DEPENDENCIES) $(EXTRA_libs_gstlibscpp_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/gstlibscpp$(EXEEXT)
$(AM_V_CXXLD)$(CXXLINK) $(libs_gstlibscpp_OBJECTS) $(libs_gstlibscpp_LDADD) $(LIBS)
-libs/libsabi$(EXEEXT): $(libs_libsabi_OBJECTS) $(libs_libsabi_DEPENDENCIES) libs/$(am__dirstamp)
+libs/libsabi$(EXEEXT): $(libs_libsabi_OBJECTS) $(libs_libsabi_DEPENDENCIES) $(EXTRA_libs_libsabi_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/libsabi$(EXEEXT)
$(AM_V_CCLD)$(libs_libsabi_LINK) $(libs_libsabi_OBJECTS) $(libs_libsabi_LDADD) $(LIBS)
-libs/mixer$(EXEEXT): $(libs_mixer_OBJECTS) $(libs_mixer_DEPENDENCIES) libs/$(am__dirstamp)
+libs/mixer$(EXEEXT): $(libs_mixer_OBJECTS) $(libs_mixer_DEPENDENCIES) $(EXTRA_libs_mixer_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/mixer$(EXEEXT)
$(AM_V_CCLD)$(libs_mixer_LINK) $(libs_mixer_OBJECTS) $(libs_mixer_LDADD) $(LIBS)
-libs/navigation$(EXEEXT): $(libs_navigation_OBJECTS) $(libs_navigation_DEPENDENCIES) libs/$(am__dirstamp)
+libs/navigation$(EXEEXT): $(libs_navigation_OBJECTS) $(libs_navigation_DEPENDENCIES) $(EXTRA_libs_navigation_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/navigation$(EXEEXT)
$(AM_V_CCLD)$(libs_navigation_LINK) $(libs_navigation_OBJECTS) $(libs_navigation_LDADD) $(LIBS)
-libs/netbuffer$(EXEEXT): $(libs_netbuffer_OBJECTS) $(libs_netbuffer_DEPENDENCIES) libs/$(am__dirstamp)
+libs/netbuffer$(EXEEXT): $(libs_netbuffer_OBJECTS) $(libs_netbuffer_DEPENDENCIES) $(EXTRA_libs_netbuffer_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/netbuffer$(EXEEXT)
$(AM_V_CCLD)$(libs_netbuffer_LINK) $(libs_netbuffer_OBJECTS) $(libs_netbuffer_LDADD) $(LIBS)
-libs/pbutils$(EXEEXT): $(libs_pbutils_OBJECTS) $(libs_pbutils_DEPENDENCIES) libs/$(am__dirstamp)
+libs/pbutils$(EXEEXT): $(libs_pbutils_OBJECTS) $(libs_pbutils_DEPENDENCIES) $(EXTRA_libs_pbutils_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/pbutils$(EXEEXT)
$(AM_V_CCLD)$(libs_pbutils_LINK) $(libs_pbutils_OBJECTS) $(libs_pbutils_LDADD) $(LIBS)
-libs/profile$(EXEEXT): $(libs_profile_OBJECTS) $(libs_profile_DEPENDENCIES) libs/$(am__dirstamp)
+libs/profile$(EXEEXT): $(libs_profile_OBJECTS) $(libs_profile_DEPENDENCIES) $(EXTRA_libs_profile_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/profile$(EXEEXT)
$(AM_V_CCLD)$(libs_profile_LINK) $(libs_profile_OBJECTS) $(libs_profile_LDADD) $(LIBS)
-libs/rtp$(EXEEXT): $(libs_rtp_OBJECTS) $(libs_rtp_DEPENDENCIES) libs/$(am__dirstamp)
+libs/rtp$(EXEEXT): $(libs_rtp_OBJECTS) $(libs_rtp_DEPENDENCIES) $(EXTRA_libs_rtp_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/rtp$(EXEEXT)
$(AM_V_CCLD)$(libs_rtp_LINK) $(libs_rtp_OBJECTS) $(libs_rtp_LDADD) $(LIBS)
-libs/rtsp$(EXEEXT): $(libs_rtsp_OBJECTS) $(libs_rtsp_DEPENDENCIES) libs/$(am__dirstamp)
+libs/rtsp$(EXEEXT): $(libs_rtsp_OBJECTS) $(libs_rtsp_DEPENDENCIES) $(EXTRA_libs_rtsp_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/rtsp$(EXEEXT)
$(AM_V_CCLD)$(libs_rtsp_LINK) $(libs_rtsp_OBJECTS) $(libs_rtsp_LDADD) $(LIBS)
-libs/tag$(EXEEXT): $(libs_tag_OBJECTS) $(libs_tag_DEPENDENCIES) libs/$(am__dirstamp)
+libs/tag$(EXEEXT): $(libs_tag_OBJECTS) $(libs_tag_DEPENDENCIES) $(EXTRA_libs_tag_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/tag$(EXEEXT)
$(AM_V_CCLD)$(libs_tag_LINK) $(libs_tag_OBJECTS) $(libs_tag_LDADD) $(LIBS)
-libs/video$(EXEEXT): $(libs_video_OBJECTS) $(libs_video_DEPENDENCIES) libs/$(am__dirstamp)
+libs/video$(EXEEXT): $(libs_video_OBJECTS) $(libs_video_DEPENDENCIES) $(EXTRA_libs_video_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/video$(EXEEXT)
$(AM_V_CCLD)$(libs_video_LINK) $(libs_video_OBJECTS) $(libs_video_LDADD) $(LIBS)
-libs/xmpwriter$(EXEEXT): $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_DEPENDENCIES) libs/$(am__dirstamp)
+libs/xmpwriter$(EXEEXT): $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_DEPENDENCIES) $(EXTRA_libs_xmpwriter_DEPENDENCIES) libs/$(am__dirstamp)
@rm -f libs/xmpwriter$(EXEEXT)
$(AM_V_CCLD)$(libs_xmpwriter_LINK) $(libs_xmpwriter_OBJECTS) $(libs_xmpwriter_LDADD) $(LIBS)
orc/$(am__dirstamp):
@$(MKDIR_P) orc
@: > orc/$(am__dirstamp)
-orc/adder$(EXEEXT): $(orc_adder_OBJECTS) $(orc_adder_DEPENDENCIES) orc/$(am__dirstamp)
+orc/adder$(EXEEXT): $(orc_adder_OBJECTS) $(orc_adder_DEPENDENCIES) $(EXTRA_orc_adder_DEPENDENCIES) orc/$(am__dirstamp)
@rm -f orc/adder$(EXEEXT)
$(AM_V_CCLD)$(orc_adder_LINK) $(orc_adder_OBJECTS) $(orc_adder_LDADD) $(LIBS)
-orc/audioconvert$(EXEEXT): $(orc_audioconvert_OBJECTS) $(orc_audioconvert_DEPENDENCIES) orc/$(am__dirstamp)
+orc/audioconvert$(EXEEXT): $(orc_audioconvert_OBJECTS) $(orc_audioconvert_DEPENDENCIES) $(EXTRA_orc_audioconvert_DEPENDENCIES) orc/$(am__dirstamp)
@rm -f orc/audioconvert$(EXEEXT)
$(AM_V_CCLD)$(orc_audioconvert_LINK) $(orc_audioconvert_OBJECTS) $(orc_audioconvert_LDADD) $(LIBS)
-orc/videoscale$(EXEEXT): $(orc_videoscale_OBJECTS) $(orc_videoscale_DEPENDENCIES) orc/$(am__dirstamp)
+orc/videoscale$(EXEEXT): $(orc_videoscale_OBJECTS) $(orc_videoscale_DEPENDENCIES) $(EXTRA_orc_videoscale_DEPENDENCIES) orc/$(am__dirstamp)
@rm -f orc/videoscale$(EXEEXT)
$(AM_V_CCLD)$(orc_videoscale_LINK) $(orc_videoscale_OBJECTS) $(orc_videoscale_LDADD) $(LIBS)
-orc/videotestsrc$(EXEEXT): $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_DEPENDENCIES) orc/$(am__dirstamp)
+orc/videotestsrc$(EXEEXT): $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_DEPENDENCIES) $(EXTRA_orc_videotestsrc_DEPENDENCIES) orc/$(am__dirstamp)
@rm -f orc/videotestsrc$(EXEEXT)
$(AM_V_CCLD)$(orc_videotestsrc_LINK) $(orc_videotestsrc_OBJECTS) $(orc_videotestsrc_LDADD) $(LIBS)
-orc/volume$(EXEEXT): $(orc_volume_OBJECTS) $(orc_volume_DEPENDENCIES) orc/$(am__dirstamp)
+orc/volume$(EXEEXT): $(orc_volume_OBJECTS) $(orc_volume_DEPENDENCIES) $(EXTRA_orc_volume_DEPENDENCIES) orc/$(am__dirstamp)
@rm -f orc/volume$(EXEEXT)
$(AM_V_CCLD)$(orc_volume_LINK) $(orc_volume_OBJECTS) $(orc_volume_LDADD) $(LIBS)
pipelines/$(am__dirstamp):
@$(MKDIR_P) pipelines
@: > pipelines/$(am__dirstamp)
-pipelines/basetime$(EXEEXT): $(pipelines_basetime_OBJECTS) $(pipelines_basetime_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/basetime$(EXEEXT): $(pipelines_basetime_OBJECTS) $(pipelines_basetime_DEPENDENCIES) $(EXTRA_pipelines_basetime_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/basetime$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipelines_basetime_OBJECTS) $(pipelines_basetime_LDADD) $(LIBS)
-pipelines/capsfilter-renegotiation$(EXEEXT): $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/capsfilter-renegotiation$(EXEEXT): $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_DEPENDENCIES) $(EXTRA_pipelines_capsfilter_renegotiation_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/capsfilter-renegotiation$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipelines_capsfilter_renegotiation_OBJECTS) $(pipelines_capsfilter_renegotiation_LDADD) $(LIBS)
-pipelines/gio$(EXEEXT): $(pipelines_gio_OBJECTS) $(pipelines_gio_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/gio$(EXEEXT): $(pipelines_gio_OBJECTS) $(pipelines_gio_DEPENDENCIES) $(EXTRA_pipelines_gio_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/gio$(EXEEXT)
$(AM_V_CCLD)$(pipelines_gio_LINK) $(pipelines_gio_OBJECTS) $(pipelines_gio_LDADD) $(LIBS)
-pipelines/oggmux$(EXEEXT): $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/oggmux$(EXEEXT): $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_DEPENDENCIES) $(EXTRA_pipelines_oggmux_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/oggmux$(EXEEXT)
$(AM_V_CCLD)$(pipelines_oggmux_LINK) $(pipelines_oggmux_OBJECTS) $(pipelines_oggmux_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)$(pipelines_simple_launch_lines_LINK) $(pipelines_simple_launch_lines_OBJECTS) $(pipelines_simple_launch_lines_LDADD) $(LIBS)
-pipelines/streamheader$(EXEEXT): $(pipelines_streamheader_OBJECTS) $(pipelines_streamheader_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/streamheader$(EXEEXT): $(pipelines_streamheader_OBJECTS) $(pipelines_streamheader_DEPENDENCIES) $(EXTRA_pipelines_streamheader_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/streamheader$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(pipelines_streamheader_OBJECTS) $(pipelines_streamheader_LDADD) $(LIBS)
-pipelines/theoraenc$(EXEEXT): $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/theoraenc$(EXEEXT): $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_DEPENDENCIES) $(EXTRA_pipelines_theoraenc_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/theoraenc$(EXEEXT)
$(AM_V_CCLD)$(pipelines_theoraenc_LINK) $(pipelines_theoraenc_OBJECTS) $(pipelines_theoraenc_LDADD) $(LIBS)
-pipelines/vorbisdec$(EXEEXT): $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/vorbisdec$(EXEEXT): $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_DEPENDENCIES) $(EXTRA_pipelines_vorbisdec_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/vorbisdec$(EXEEXT)
$(AM_V_CCLD)$(pipelines_vorbisdec_LINK) $(pipelines_vorbisdec_OBJECTS) $(pipelines_vorbisdec_LDADD) $(LIBS)
-pipelines/vorbisenc$(EXEEXT): $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_DEPENDENCIES) pipelines/$(am__dirstamp)
+pipelines/vorbisenc$(EXEEXT): $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_DEPENDENCIES) $(EXTRA_pipelines_vorbisenc_DEPENDENCIES) pipelines/$(am__dirstamp)
@rm -f pipelines/vorbisenc$(EXEEXT)
$(AM_V_CCLD)$(pipelines_vorbisenc_LINK) $(pipelines_vorbisenc_OBJECTS) $(pipelines_vorbisenc_LDADD) $(LIBS)
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_libvisual-libvisual.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin-playbin.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin2-playbin2.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_subparse-subparse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_textoverlay-textoverlay.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/elements_videoscale-videoscale.Po@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 $@ $<
adder.o: elements/adder.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adder.o -MD -MP -MF $(DEPDIR)/adder.Tpo -c -o adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/adder.Tpo $(DEPDIR)/adder.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/adder.c' object='adder.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/adder.c' object='adder.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 adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adder.o `test -f 'elements/adder.c' || echo '$(srcdir)/'`elements/adder.c
adder.obj: elements/adder.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT adder.obj -MD -MP -MF $(DEPDIR)/adder.Tpo -c -o adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/adder.Tpo $(DEPDIR)/adder.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/adder.c' object='adder.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/adder.c' object='adder.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 adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o adder.obj `if test -f 'elements/adder.c'; then $(CYGPATH_W) 'elements/adder.c'; else $(CYGPATH_W) '$(srcdir)/elements/adder.c'; fi`
elements_alsa-alsa.o: elements/alsa.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -MT elements_alsa-alsa.o -MD -MP -MF $(DEPDIR)/elements_alsa-alsa.Tpo -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alsa-alsa.Tpo $(DEPDIR)/elements_alsa-alsa.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/alsa.c' object='elements_alsa-alsa.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/alsa.c' object='elements_alsa-alsa.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_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.o `test -f 'elements/alsa.c' || echo '$(srcdir)/'`elements/alsa.c
elements_alsa-alsa.obj: elements/alsa.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -MT elements_alsa-alsa.obj -MD -MP -MF $(DEPDIR)/elements_alsa-alsa.Tpo -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_alsa-alsa.Tpo $(DEPDIR)/elements_alsa-alsa.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/alsa.c' object='elements_alsa-alsa.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/alsa.c' object='elements_alsa-alsa.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_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_alsa_CFLAGS) $(CFLAGS) -c -o elements_alsa-alsa.obj `if test -f 'elements/alsa.c'; then $(CYGPATH_W) 'elements/alsa.c'; else $(CYGPATH_W) '$(srcdir)/elements/alsa.c'; fi`
elements_appsink-appsink.o: elements/appsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements_appsink-appsink.o -MD -MP -MF $(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsink-appsink.Tpo $(DEPDIR)/elements_appsink-appsink.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/appsink.c' object='elements_appsink-appsink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/appsink.c' object='elements_appsink-appsink.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_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.o `test -f 'elements/appsink.c' || echo '$(srcdir)/'`elements/appsink.c
elements_appsink-appsink.obj: elements/appsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -MT elements_appsink-appsink.obj -MD -MP -MF $(DEPDIR)/elements_appsink-appsink.Tpo -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsink-appsink.Tpo $(DEPDIR)/elements_appsink-appsink.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/appsink.c' object='elements_appsink-appsink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/appsink.c' object='elements_appsink-appsink.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_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsink_CFLAGS) $(CFLAGS) -c -o elements_appsink-appsink.obj `if test -f 'elements/appsink.c'; then $(CYGPATH_W) 'elements/appsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsink.c'; fi`
elements_appsrc-appsrc.o: elements/appsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements_appsrc-appsrc.o -MD -MP -MF $(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsrc-appsrc.Tpo $(DEPDIR)/elements_appsrc-appsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/appsrc.c' object='elements_appsrc-appsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/appsrc.c' object='elements_appsrc-appsrc.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_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.o `test -f 'elements/appsrc.c' || echo '$(srcdir)/'`elements/appsrc.c
elements_appsrc-appsrc.obj: elements/appsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -MT elements_appsrc-appsrc.obj -MD -MP -MF $(DEPDIR)/elements_appsrc-appsrc.Tpo -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_appsrc-appsrc.Tpo $(DEPDIR)/elements_appsrc-appsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/appsrc.c' object='elements_appsrc-appsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/appsrc.c' object='elements_appsrc-appsrc.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_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_appsrc_CFLAGS) $(CFLAGS) -c -o elements_appsrc-appsrc.obj `if test -f 'elements/appsrc.c'; then $(CYGPATH_W) 'elements/appsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/appsrc.c'; fi`
elements_audioconvert-audioconvert.o: elements/audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements_audioconvert-audioconvert.o -MD -MP -MF $(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioconvert-audioconvert.Tpo $(DEPDIR)/elements_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.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_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.o `test -f 'elements/audioconvert.c' || echo '$(srcdir)/'`elements/audioconvert.c
elements_audioconvert-audioconvert.obj: elements/audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -MT elements_audioconvert-audioconvert.obj -MD -MP -MF $(DEPDIR)/elements_audioconvert-audioconvert.Tpo -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioconvert-audioconvert.Tpo $(DEPDIR)/elements_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioconvert.c' object='elements_audioconvert-audioconvert.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_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioconvert_CFLAGS) $(CFLAGS) -c -o elements_audioconvert-audioconvert.obj `if test -f 'elements/audioconvert.c'; then $(CYGPATH_W) 'elements/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioconvert.c'; fi`
elements_audiorate-audiorate.o: elements/audiorate.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements_audiorate-audiorate.o -MD -MP -MF $(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiorate-audiorate.Tpo $(DEPDIR)/elements_audiorate-audiorate.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiorate.c' object='elements_audiorate-audiorate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiorate.c' object='elements_audiorate-audiorate.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_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.o `test -f 'elements/audiorate.c' || echo '$(srcdir)/'`elements/audiorate.c
elements_audiorate-audiorate.obj: elements/audiorate.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -MT elements_audiorate-audiorate.obj -MD -MP -MF $(DEPDIR)/elements_audiorate-audiorate.Tpo -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audiorate-audiorate.Tpo $(DEPDIR)/elements_audiorate-audiorate.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiorate.c' object='elements_audiorate-audiorate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiorate.c' object='elements_audiorate-audiorate.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_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audiorate_CFLAGS) $(CFLAGS) -c -o elements_audiorate-audiorate.obj `if test -f 'elements/audiorate.c'; then $(CYGPATH_W) 'elements/audiorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiorate.c'; fi`
elements_audioresample-audioresample.o: elements/audioresample.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements_audioresample-audioresample.o -MD -MP -MF $(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioresample-audioresample.Tpo $(DEPDIR)/elements_audioresample-audioresample.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioresample.c' object='elements_audioresample-audioresample.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioresample.c' object='elements_audioresample-audioresample.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_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.o `test -f 'elements/audioresample.c' || echo '$(srcdir)/'`elements/audioresample.c
elements_audioresample-audioresample.obj: elements/audioresample.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -MT elements_audioresample-audioresample.obj -MD -MP -MF $(DEPDIR)/elements_audioresample-audioresample.Tpo -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_audioresample-audioresample.Tpo $(DEPDIR)/elements_audioresample-audioresample.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audioresample.c' object='elements_audioresample-audioresample.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audioresample.c' object='elements_audioresample-audioresample.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_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_audioresample_CFLAGS) $(CFLAGS) -c -o elements_audioresample-audioresample.obj `if test -f 'elements/audioresample.c'; then $(CYGPATH_W) 'elements/audioresample.c'; else $(CYGPATH_W) '$(srcdir)/elements/audioresample.c'; fi`
audiotestsrc.o: elements/audiotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiotestsrc.o -MD -MP -MF $(DEPDIR)/audiotestsrc.Tpo -c -o audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiotestsrc.Tpo $(DEPDIR)/audiotestsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiotestsrc.c' object='audiotestsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiotestsrc.c' object='audiotestsrc.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 audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.o `test -f 'elements/audiotestsrc.c' || echo '$(srcdir)/'`elements/audiotestsrc.c
audiotestsrc.obj: elements/audiotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT audiotestsrc.obj -MD -MP -MF $(DEPDIR)/audiotestsrc.Tpo -c -o audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiotestsrc.Tpo $(DEPDIR)/audiotestsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/audiotestsrc.c' object='audiotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/audiotestsrc.c' object='audiotestsrc.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 audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o audiotestsrc.obj `if test -f 'elements/audiotestsrc.c'; then $(CYGPATH_W) 'elements/audiotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/audiotestsrc.c'; fi`
elements_decodebin-decodebin.o: elements/decodebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements_decodebin-decodebin.o -MD -MP -MF $(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin-decodebin.Tpo $(DEPDIR)/elements_decodebin-decodebin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/decodebin.c' object='elements_decodebin-decodebin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/decodebin.c' object='elements_decodebin-decodebin.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_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.o `test -f 'elements/decodebin.c' || echo '$(srcdir)/'`elements/decodebin.c
elements_decodebin-decodebin.obj: elements/decodebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -MT elements_decodebin-decodebin.obj -MD -MP -MF $(DEPDIR)/elements_decodebin-decodebin.Tpo -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin-decodebin.Tpo $(DEPDIR)/elements_decodebin-decodebin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/decodebin.c' object='elements_decodebin-decodebin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/decodebin.c' object='elements_decodebin-decodebin.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_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin_CFLAGS) $(CFLAGS) -c -o elements_decodebin-decodebin.obj `if test -f 'elements/decodebin.c'; then $(CYGPATH_W) 'elements/decodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin.c'; fi`
elements_decodebin2-decodebin2.o: elements/decodebin2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -MT elements_decodebin2-decodebin2.o -MD -MP -MF $(DEPDIR)/elements_decodebin2-decodebin2.Tpo -c -o elements_decodebin2-decodebin2.o `test -f 'elements/decodebin2.c' || echo '$(srcdir)/'`elements/decodebin2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin2-decodebin2.Tpo $(DEPDIR)/elements_decodebin2-decodebin2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.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_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.o `test -f 'elements/decodebin2.c' || echo '$(srcdir)/'`elements/decodebin2.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.o `test -f 'elements/decodebin2.c' || echo '$(srcdir)/'`elements/decodebin2.c
elements_decodebin2-decodebin2.obj: elements/decodebin2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -MT elements_decodebin2-decodebin2.obj -MD -MP -MF $(DEPDIR)/elements_decodebin2-decodebin2.Tpo -c -o elements_decodebin2-decodebin2.obj `if test -f 'elements/decodebin2.c'; then $(CYGPATH_W) 'elements/decodebin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin2.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_decodebin2-decodebin2.Tpo $(DEPDIR)/elements_decodebin2-decodebin2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/decodebin2.c' object='elements_decodebin2-decodebin2.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_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.obj `if test -f 'elements/decodebin2.c'; then $(CYGPATH_W) 'elements/decodebin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin2.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_decodebin2_CFLAGS) $(CFLAGS) -c -o elements_decodebin2-decodebin2.obj `if test -f 'elements/decodebin2.c'; then $(CYGPATH_W) 'elements/decodebin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/decodebin2.c'; fi`
elements_encodebin-encodebin.o: elements/encodebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements_encodebin-encodebin.o -MD -MP -MF $(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_encodebin-encodebin.Tpo $(DEPDIR)/elements_encodebin-encodebin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/encodebin.c' object='elements_encodebin-encodebin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/encodebin.c' object='elements_encodebin-encodebin.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_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.o `test -f 'elements/encodebin.c' || echo '$(srcdir)/'`elements/encodebin.c
elements_encodebin-encodebin.obj: elements/encodebin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -MT elements_encodebin-encodebin.obj -MD -MP -MF $(DEPDIR)/elements_encodebin-encodebin.Tpo -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_encodebin-encodebin.Tpo $(DEPDIR)/elements_encodebin-encodebin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/encodebin.c' object='elements_encodebin-encodebin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/encodebin.c' object='elements_encodebin-encodebin.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_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_encodebin_CFLAGS) $(CFLAGS) -c -o elements_encodebin-encodebin.obj `if test -f 'elements/encodebin.c'; then $(CYGPATH_W) 'elements/encodebin.c'; else $(CYGPATH_W) '$(srcdir)/elements/encodebin.c'; fi`
ffmpegcolorspace.o: elements/ffmpegcolorspace.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ffmpegcolorspace.o -MD -MP -MF $(DEPDIR)/ffmpegcolorspace.Tpo -c -o ffmpegcolorspace.o `test -f 'elements/ffmpegcolorspace.c' || echo '$(srcdir)/'`elements/ffmpegcolorspace.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ffmpegcolorspace.Tpo $(DEPDIR)/ffmpegcolorspace.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.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 ffmpegcolorspace.o `test -f 'elements/ffmpegcolorspace.c' || echo '$(srcdir)/'`elements/ffmpegcolorspace.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ffmpegcolorspace.o `test -f 'elements/ffmpegcolorspace.c' || echo '$(srcdir)/'`elements/ffmpegcolorspace.c
ffmpegcolorspace.obj: elements/ffmpegcolorspace.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ffmpegcolorspace.obj -MD -MP -MF $(DEPDIR)/ffmpegcolorspace.Tpo -c -o ffmpegcolorspace.obj `if test -f 'elements/ffmpegcolorspace.c'; then $(CYGPATH_W) 'elements/ffmpegcolorspace.c'; else $(CYGPATH_W) '$(srcdir)/elements/ffmpegcolorspace.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ffmpegcolorspace.Tpo $(DEPDIR)/ffmpegcolorspace.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/ffmpegcolorspace.c' object='ffmpegcolorspace.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 ffmpegcolorspace.obj `if test -f 'elements/ffmpegcolorspace.c'; then $(CYGPATH_W) 'elements/ffmpegcolorspace.c'; else $(CYGPATH_W) '$(srcdir)/elements/ffmpegcolorspace.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ffmpegcolorspace.obj `if test -f 'elements/ffmpegcolorspace.c'; then $(CYGPATH_W) 'elements/ffmpegcolorspace.c'; else $(CYGPATH_W) '$(srcdir)/elements/ffmpegcolorspace.c'; fi`
gdpdepay.o: elements/gdpdepay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdpdepay.o -MD -MP -MF $(DEPDIR)/gdpdepay.Tpo -c -o gdpdepay.o `test -f 'elements/gdpdepay.c' || echo '$(srcdir)/'`elements/gdpdepay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gdpdepay.Tpo $(DEPDIR)/gdpdepay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gdpdepay.c' object='gdpdepay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gdpdepay.c' object='gdpdepay.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 gdpdepay.o `test -f 'elements/gdpdepay.c' || echo '$(srcdir)/'`elements/gdpdepay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdpdepay.o `test -f 'elements/gdpdepay.c' || echo '$(srcdir)/'`elements/gdpdepay.c
gdpdepay.obj: elements/gdpdepay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdpdepay.obj -MD -MP -MF $(DEPDIR)/gdpdepay.Tpo -c -o gdpdepay.obj `if test -f 'elements/gdpdepay.c'; then $(CYGPATH_W) 'elements/gdpdepay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdpdepay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gdpdepay.Tpo $(DEPDIR)/gdpdepay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gdpdepay.c' object='gdpdepay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gdpdepay.c' object='gdpdepay.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 gdpdepay.obj `if test -f 'elements/gdpdepay.c'; then $(CYGPATH_W) 'elements/gdpdepay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdpdepay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdpdepay.obj `if test -f 'elements/gdpdepay.c'; then $(CYGPATH_W) 'elements/gdpdepay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdpdepay.c'; fi`
gdppay.o: elements/gdppay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdppay.o -MD -MP -MF $(DEPDIR)/gdppay.Tpo -c -o gdppay.o `test -f 'elements/gdppay.c' || echo '$(srcdir)/'`elements/gdppay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gdppay.Tpo $(DEPDIR)/gdppay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gdppay.c' object='gdppay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gdppay.c' object='gdppay.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 gdppay.o `test -f 'elements/gdppay.c' || echo '$(srcdir)/'`elements/gdppay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdppay.o `test -f 'elements/gdppay.c' || echo '$(srcdir)/'`elements/gdppay.c
gdppay.obj: elements/gdppay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gdppay.obj -MD -MP -MF $(DEPDIR)/gdppay.Tpo -c -o gdppay.obj `if test -f 'elements/gdppay.c'; then $(CYGPATH_W) 'elements/gdppay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdppay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gdppay.Tpo $(DEPDIR)/gdppay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gdppay.c' object='gdppay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gdppay.c' object='gdppay.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 gdppay.obj `if test -f 'elements/gdppay.c'; then $(CYGPATH_W) 'elements/gdppay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdppay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gdppay.obj `if test -f 'elements/gdppay.c'; then $(CYGPATH_W) 'elements/gdppay.c'; else $(CYGPATH_W) '$(srcdir)/elements/gdppay.c'; fi`
gnomevfssink.o: elements/gnomevfssink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gnomevfssink.o -MD -MP -MF $(DEPDIR)/gnomevfssink.Tpo -c -o gnomevfssink.o `test -f 'elements/gnomevfssink.c' || echo '$(srcdir)/'`elements/gnomevfssink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gnomevfssink.Tpo $(DEPDIR)/gnomevfssink.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gnomevfssink.c' object='gnomevfssink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gnomevfssink.c' object='gnomevfssink.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 gnomevfssink.o `test -f 'elements/gnomevfssink.c' || echo '$(srcdir)/'`elements/gnomevfssink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnomevfssink.o `test -f 'elements/gnomevfssink.c' || echo '$(srcdir)/'`elements/gnomevfssink.c
gnomevfssink.obj: elements/gnomevfssink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT gnomevfssink.obj -MD -MP -MF $(DEPDIR)/gnomevfssink.Tpo -c -o gnomevfssink.obj `if test -f 'elements/gnomevfssink.c'; then $(CYGPATH_W) 'elements/gnomevfssink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gnomevfssink.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gnomevfssink.Tpo $(DEPDIR)/gnomevfssink.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/gnomevfssink.c' object='gnomevfssink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/gnomevfssink.c' object='gnomevfssink.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 gnomevfssink.obj `if test -f 'elements/gnomevfssink.c'; then $(CYGPATH_W) 'elements/gnomevfssink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gnomevfssink.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o gnomevfssink.obj `if test -f 'elements/gnomevfssink.c'; then $(CYGPATH_W) 'elements/gnomevfssink.c'; else $(CYGPATH_W) '$(srcdir)/elements/gnomevfssink.c'; fi`
elements_libvisual-libvisual.o: elements/libvisual.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements_libvisual-libvisual.o -MD -MP -MF $(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_libvisual-libvisual.Tpo $(DEPDIR)/elements_libvisual-libvisual.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/libvisual.c' object='elements_libvisual-libvisual.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/libvisual.c' object='elements_libvisual-libvisual.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_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.o `test -f 'elements/libvisual.c' || echo '$(srcdir)/'`elements/libvisual.c
elements_libvisual-libvisual.obj: elements/libvisual.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -MT elements_libvisual-libvisual.obj -MD -MP -MF $(DEPDIR)/elements_libvisual-libvisual.Tpo -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_libvisual-libvisual.Tpo $(DEPDIR)/elements_libvisual-libvisual.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/libvisual.c' object='elements_libvisual-libvisual.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/libvisual.c' object='elements_libvisual-libvisual.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_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_libvisual_CFLAGS) $(CFLAGS) -c -o elements_libvisual-libvisual.obj `if test -f 'elements/libvisual.c'; then $(CYGPATH_W) 'elements/libvisual.c'; else $(CYGPATH_W) '$(srcdir)/elements/libvisual.c'; fi`
multifdsink.o: elements/multifdsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifdsink.o -MD -MP -MF $(DEPDIR)/multifdsink.Tpo -c -o multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/multifdsink.Tpo $(DEPDIR)/multifdsink.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/multifdsink.c' object='multifdsink.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/multifdsink.c' object='multifdsink.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 multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.o `test -f 'elements/multifdsink.c' || echo '$(srcdir)/'`elements/multifdsink.c
multifdsink.obj: elements/multifdsink.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT multifdsink.obj -MD -MP -MF $(DEPDIR)/multifdsink.Tpo -c -o multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/multifdsink.Tpo $(DEPDIR)/multifdsink.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/multifdsink.c' object='multifdsink.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/multifdsink.c' object='multifdsink.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 multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o multifdsink.obj `if test -f 'elements/multifdsink.c'; then $(CYGPATH_W) 'elements/multifdsink.c'; else $(CYGPATH_W) '$(srcdir)/elements/multifdsink.c'; fi`
elements_playbin-playbin.o: elements/playbin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements_playbin-playbin.o -MD -MP -MF $(DEPDIR)/elements_playbin-playbin.Tpo -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin-playbin.Tpo $(DEPDIR)/elements_playbin-playbin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/playbin.c' object='elements_playbin-playbin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/playbin.c' object='elements_playbin-playbin.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_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.o `test -f 'elements/playbin.c' || echo '$(srcdir)/'`elements/playbin.c
elements_playbin-playbin.obj: elements/playbin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -MT elements_playbin-playbin.obj -MD -MP -MF $(DEPDIR)/elements_playbin-playbin.Tpo -c -o elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin-playbin.Tpo $(DEPDIR)/elements_playbin-playbin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/playbin.c' object='elements_playbin-playbin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/playbin.c' object='elements_playbin-playbin.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_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin_CFLAGS) $(CFLAGS) -c -o elements_playbin-playbin.obj `if test -f 'elements/playbin.c'; then $(CYGPATH_W) 'elements/playbin.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin.c'; fi`
elements_playbin2-playbin2.o: elements/playbin2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -MT elements_playbin2-playbin2.o -MD -MP -MF $(DEPDIR)/elements_playbin2-playbin2.Tpo -c -o elements_playbin2-playbin2.o `test -f 'elements/playbin2.c' || echo '$(srcdir)/'`elements/playbin2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2-playbin2.Tpo $(DEPDIR)/elements_playbin2-playbin2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/playbin2.c' object='elements_playbin2-playbin2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/playbin2.c' object='elements_playbin2-playbin2.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_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.o `test -f 'elements/playbin2.c' || echo '$(srcdir)/'`elements/playbin2.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.o `test -f 'elements/playbin2.c' || echo '$(srcdir)/'`elements/playbin2.c
elements_playbin2-playbin2.obj: elements/playbin2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -MT elements_playbin2-playbin2.obj -MD -MP -MF $(DEPDIR)/elements_playbin2-playbin2.Tpo -c -o elements_playbin2-playbin2.obj `if test -f 'elements/playbin2.c'; then $(CYGPATH_W) 'elements/playbin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2-playbin2.Tpo $(DEPDIR)/elements_playbin2-playbin2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/playbin2.c' object='elements_playbin2-playbin2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/playbin2.c' object='elements_playbin2-playbin2.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_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.obj `if test -f 'elements/playbin2.c'; then $(CYGPATH_W) 'elements/playbin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_CFLAGS) $(CFLAGS) -c -o elements_playbin2-playbin2.obj `if test -f 'elements/playbin2.c'; then $(CYGPATH_W) 'elements/playbin2.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2.c'; fi`
+
+elements_playbin2_compressed-playbin2-compressed.o: elements/playbin2-compressed.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -MT elements_playbin2_compressed-playbin2-compressed.o -MD -MP -MF $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo -c -o elements_playbin2_compressed-playbin2-compressed.o `test -f 'elements/playbin2-compressed.c' || echo '$(srcdir)/'`elements/playbin2-compressed.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/playbin2-compressed.c' object='elements_playbin2_compressed-playbin2-compressed.o' 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) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -c -o elements_playbin2_compressed-playbin2-compressed.o `test -f 'elements/playbin2-compressed.c' || echo '$(srcdir)/'`elements/playbin2-compressed.c
+
+elements_playbin2_compressed-playbin2-compressed.obj: elements/playbin2-compressed.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -MT elements_playbin2_compressed-playbin2-compressed.obj -MD -MP -MF $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo -c -o elements_playbin2_compressed-playbin2-compressed.obj `if test -f 'elements/playbin2-compressed.c'; then $(CYGPATH_W) 'elements/playbin2-compressed.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2-compressed.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Tpo $(DEPDIR)/elements_playbin2_compressed-playbin2-compressed.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/playbin2-compressed.c' object='elements_playbin2_compressed-playbin2-compressed.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) $(elements_playbin2_compressed_CFLAGS) $(CFLAGS) -c -o elements_playbin2_compressed-playbin2-compressed.obj `if test -f 'elements/playbin2-compressed.c'; then $(CYGPATH_W) 'elements/playbin2-compressed.c'; else $(CYGPATH_W) '$(srcdir)/elements/playbin2-compressed.c'; fi`
elements_subparse-subparse.o: elements/subparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements_subparse-subparse.o -MD -MP -MF $(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_subparse-subparse.Tpo $(DEPDIR)/elements_subparse-subparse.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/subparse.c' object='elements_subparse-subparse.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/subparse.c' object='elements_subparse-subparse.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_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.o `test -f 'elements/subparse.c' || echo '$(srcdir)/'`elements/subparse.c
elements_subparse-subparse.obj: elements/subparse.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -MT elements_subparse-subparse.obj -MD -MP -MF $(DEPDIR)/elements_subparse-subparse.Tpo -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_subparse-subparse.Tpo $(DEPDIR)/elements_subparse-subparse.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/subparse.c' object='elements_subparse-subparse.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/subparse.c' object='elements_subparse-subparse.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_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_subparse_CFLAGS) $(CFLAGS) -c -o elements_subparse-subparse.obj `if test -f 'elements/subparse.c'; then $(CYGPATH_W) 'elements/subparse.c'; else $(CYGPATH_W) '$(srcdir)/elements/subparse.c'; fi`
elements_textoverlay-textoverlay.o: elements/textoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements_textoverlay-textoverlay.o -MD -MP -MF $(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_textoverlay-textoverlay.Tpo $(DEPDIR)/elements_textoverlay-textoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.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_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.o `test -f 'elements/textoverlay.c' || echo '$(srcdir)/'`elements/textoverlay.c
elements_textoverlay-textoverlay.obj: elements/textoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -MT elements_textoverlay-textoverlay.obj -MD -MP -MF $(DEPDIR)/elements_textoverlay-textoverlay.Tpo -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_textoverlay-textoverlay.Tpo $(DEPDIR)/elements_textoverlay-textoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/textoverlay.c' object='elements_textoverlay-textoverlay.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_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_textoverlay_CFLAGS) $(CFLAGS) -c -o elements_textoverlay-textoverlay.obj `if test -f 'elements/textoverlay.c'; then $(CYGPATH_W) 'elements/textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/elements/textoverlay.c'; fi`
videorate.o: elements/videorate.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videorate.o -MD -MP -MF $(DEPDIR)/videorate.Tpo -c -o videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videorate.Tpo $(DEPDIR)/videorate.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videorate.c' object='videorate.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videorate.c' object='videorate.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 videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.o `test -f 'elements/videorate.c' || echo '$(srcdir)/'`elements/videorate.c
videorate.obj: elements/videorate.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videorate.obj -MD -MP -MF $(DEPDIR)/videorate.Tpo -c -o videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videorate.Tpo $(DEPDIR)/videorate.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videorate.c' object='videorate.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videorate.c' object='videorate.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 videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videorate.obj `if test -f 'elements/videorate.c'; then $(CYGPATH_W) 'elements/videorate.c'; else $(CYGPATH_W) '$(srcdir)/elements/videorate.c'; fi`
elements_videoscale-videoscale.o: elements/videoscale.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements_videoscale-videoscale.o -MD -MP -MF $(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoscale-videoscale.Tpo $(DEPDIR)/elements_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videoscale.c' object='elements_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements_videoscale-videoscale.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_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.o `test -f 'elements/videoscale.c' || echo '$(srcdir)/'`elements/videoscale.c
elements_videoscale-videoscale.obj: elements/videoscale.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -MT elements_videoscale-videoscale.obj -MD -MP -MF $(DEPDIR)/elements_videoscale-videoscale.Tpo -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_videoscale-videoscale.Tpo $(DEPDIR)/elements_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videoscale.c' object='elements_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videoscale.c' object='elements_videoscale-videoscale.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_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_videoscale_CFLAGS) $(CFLAGS) -c -o elements_videoscale-videoscale.obj `if test -f 'elements/videoscale.c'; then $(CYGPATH_W) 'elements/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/elements/videoscale.c'; fi`
videotestsrc.o: elements/videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videotestsrc.o -MD -MP -MF $(DEPDIR)/videotestsrc.Tpo -c -o videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videotestsrc.Tpo $(DEPDIR)/videotestsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videotestsrc.c' object='videotestsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videotestsrc.c' object='videotestsrc.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 videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.o `test -f 'elements/videotestsrc.c' || echo '$(srcdir)/'`elements/videotestsrc.c
videotestsrc.obj: elements/videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT videotestsrc.obj -MD -MP -MF $(DEPDIR)/videotestsrc.Tpo -c -o videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/videotestsrc.Tpo $(DEPDIR)/videotestsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/videotestsrc.c' object='videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/videotestsrc.c' object='videotestsrc.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 videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o videotestsrc.obj `if test -f 'elements/videotestsrc.c'; then $(CYGPATH_W) 'elements/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/elements/videotestsrc.c'; fi`
elements_volume-volume.o: elements/volume.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements_volume-volume.o -MD -MP -MF $(DEPDIR)/elements_volume-volume.Tpo -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_volume-volume.Tpo $(DEPDIR)/elements_volume-volume.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/volume.c' object='elements_volume-volume.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/volume.c' object='elements_volume-volume.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_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.o `test -f 'elements/volume.c' || echo '$(srcdir)/'`elements/volume.c
elements_volume-volume.obj: elements/volume.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -MT elements_volume-volume.obj -MD -MP -MF $(DEPDIR)/elements_volume-volume.Tpo -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_volume-volume.Tpo $(DEPDIR)/elements_volume-volume.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/volume.c' object='elements_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/volume.c' object='elements_volume-volume.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_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_volume_CFLAGS) $(CFLAGS) -c -o elements_volume-volume.obj `if test -f 'elements/volume.c'; then $(CYGPATH_W) 'elements/volume.c'; else $(CYGPATH_W) '$(srcdir)/elements/volume.c'; fi`
elements_vorbisdec-vorbisdec.o: elements/vorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements_vorbisdec-vorbisdec.o -MD -MP -MF $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo $(DEPDIR)/elements_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.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_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.o `test -f 'elements/vorbisdec.c' || echo '$(srcdir)/'`elements/vorbisdec.c
elements_vorbisdec-vorbisdec.obj: elements/vorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -MT elements_vorbisdec-vorbisdec.obj -MD -MP -MF $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbisdec-vorbisdec.Tpo $(DEPDIR)/elements_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vorbisdec.c' object='elements_vorbisdec-vorbisdec.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_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbisdec_CFLAGS) $(CFLAGS) -c -o elements_vorbisdec-vorbisdec.obj `if test -f 'elements/vorbisdec.c'; then $(CYGPATH_W) 'elements/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbisdec.c'; fi`
elements_vorbistag-vorbistag.o: elements/vorbistag.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements_vorbistag-vorbistag.o -MD -MP -MF $(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbistag-vorbistag.Tpo $(DEPDIR)/elements_vorbistag-vorbistag.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.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_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.o `test -f 'elements/vorbistag.c' || echo '$(srcdir)/'`elements/vorbistag.c
elements_vorbistag-vorbistag.obj: elements/vorbistag.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -MT elements_vorbistag-vorbistag.obj -MD -MP -MF $(DEPDIR)/elements_vorbistag-vorbistag.Tpo -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/elements_vorbistag-vorbistag.Tpo $(DEPDIR)/elements_vorbistag-vorbistag.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='elements/vorbistag.c' object='elements_vorbistag-vorbistag.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_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vorbistag_CFLAGS) $(CFLAGS) -c -o elements_vorbistag-vorbistag.obj `if test -f 'elements/vorbistag.c'; then $(CYGPATH_W) 'elements/vorbistag.c'; else $(CYGPATH_W) '$(srcdir)/elements/vorbistag.c'; fi`
clock-selection.o: generic/clock-selection.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clock-selection.o -MD -MP -MF $(DEPDIR)/clock-selection.Tpo -c -o clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/clock-selection.Tpo $(DEPDIR)/clock-selection.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/clock-selection.c' object='clock-selection.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/clock-selection.c' object='clock-selection.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 clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.o `test -f 'generic/clock-selection.c' || echo '$(srcdir)/'`generic/clock-selection.c
clock-selection.obj: generic/clock-selection.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT clock-selection.obj -MD -MP -MF $(DEPDIR)/clock-selection.Tpo -c -o clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/clock-selection.Tpo $(DEPDIR)/clock-selection.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generic/clock-selection.c' object='clock-selection.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='generic/clock-selection.c' object='clock-selection.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 clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o clock-selection.obj `if test -f 'generic/clock-selection.c'; then $(CYGPATH_W) 'generic/clock-selection.c'; else $(CYGPATH_W) '$(srcdir)/generic/clock-selection.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`
gst_typefindfunctions-typefindfunctions.o: gst/typefindfunctions.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst_typefindfunctions-typefindfunctions.o -MD -MP -MF $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.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) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.o `test -f 'gst/typefindfunctions.c' || echo '$(srcdir)/'`gst/typefindfunctions.c
gst_typefindfunctions-typefindfunctions.obj: gst/typefindfunctions.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -MT gst_typefindfunctions-typefindfunctions.obj -MD -MP -MF $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Tpo $(DEPDIR)/gst_typefindfunctions-typefindfunctions.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gst/typefindfunctions.c' object='gst_typefindfunctions-typefindfunctions.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) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gst_typefindfunctions_CFLAGS) $(CFLAGS) -c -o gst_typefindfunctions-typefindfunctions.obj `if test -f 'gst/typefindfunctions.c'; then $(CYGPATH_W) 'gst/typefindfunctions.c'; else $(CYGPATH_W) '$(srcdir)/gst/typefindfunctions.c'; fi`
libs_audio-audio.o: libs/audio.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs_audio-audio.o -MD -MP -MF $(DEPDIR)/libs_audio-audio.Tpo -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_audio-audio.Tpo $(DEPDIR)/libs_audio-audio.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/audio.c' object='libs_audio-audio.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/audio.c' object='libs_audio-audio.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) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.o `test -f 'libs/audio.c' || echo '$(srcdir)/'`libs/audio.c
libs_audio-audio.obj: libs/audio.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -MT libs_audio-audio.obj -MD -MP -MF $(DEPDIR)/libs_audio-audio.Tpo -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_audio-audio.Tpo $(DEPDIR)/libs_audio-audio.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/audio.c' object='libs_audio-audio.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/audio.c' object='libs_audio-audio.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) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_audio_CFLAGS) $(CFLAGS) -c -o libs_audio-audio.obj `if test -f 'libs/audio.c'; then $(CYGPATH_W) 'libs/audio.c'; else $(CYGPATH_W) '$(srcdir)/libs/audio.c'; fi`
libs_cddabasesrc-cddabasesrc.o: libs/cddabasesrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -MT libs_cddabasesrc-cddabasesrc.o -MD -MP -MF $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo -c -o libs_cddabasesrc-cddabasesrc.o `test -f 'libs/cddabasesrc.c' || echo '$(srcdir)/'`libs/cddabasesrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.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) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.o `test -f 'libs/cddabasesrc.c' || echo '$(srcdir)/'`libs/cddabasesrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.o `test -f 'libs/cddabasesrc.c' || echo '$(srcdir)/'`libs/cddabasesrc.c
libs_cddabasesrc-cddabasesrc.obj: libs/cddabasesrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -MT libs_cddabasesrc-cddabasesrc.obj -MD -MP -MF $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo -c -o libs_cddabasesrc-cddabasesrc.obj `if test -f 'libs/cddabasesrc.c'; then $(CYGPATH_W) 'libs/cddabasesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/cddabasesrc.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Tpo $(DEPDIR)/libs_cddabasesrc-cddabasesrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/cddabasesrc.c' object='libs_cddabasesrc-cddabasesrc.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) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.obj `if test -f 'libs/cddabasesrc.c'; then $(CYGPATH_W) 'libs/cddabasesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/cddabasesrc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_cddabasesrc_CFLAGS) $(CFLAGS) -c -o libs_cddabasesrc-cddabasesrc.obj `if test -f 'libs/cddabasesrc.c'; then $(CYGPATH_W) 'libs/cddabasesrc.c'; else $(CYGPATH_W) '$(srcdir)/libs/cddabasesrc.c'; fi`
libs_discoverer-discoverer.o: libs/discoverer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs_discoverer-discoverer.o -MD -MP -MF $(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_discoverer-discoverer.Tpo $(DEPDIR)/libs_discoverer-discoverer.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/discoverer.c' object='libs_discoverer-discoverer.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/discoverer.c' object='libs_discoverer-discoverer.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) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.o `test -f 'libs/discoverer.c' || echo '$(srcdir)/'`libs/discoverer.c
libs_discoverer-discoverer.obj: libs/discoverer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -MT libs_discoverer-discoverer.obj -MD -MP -MF $(DEPDIR)/libs_discoverer-discoverer.Tpo -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_discoverer-discoverer.Tpo $(DEPDIR)/libs_discoverer-discoverer.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/discoverer.c' object='libs_discoverer-discoverer.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/discoverer.c' object='libs_discoverer-discoverer.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) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_discoverer_CFLAGS) $(CFLAGS) -c -o libs_discoverer-discoverer.obj `if test -f 'libs/discoverer.c'; then $(CYGPATH_W) 'libs/discoverer.c'; else $(CYGPATH_W) '$(srcdir)/libs/discoverer.c'; fi`
libs_fft-fft.o: libs/fft.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs_fft-fft.o -MD -MP -MF $(DEPDIR)/libs_fft-fft.Tpo -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_fft-fft.Tpo $(DEPDIR)/libs_fft-fft.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/fft.c' object='libs_fft-fft.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/fft.c' object='libs_fft-fft.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) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.o `test -f 'libs/fft.c' || echo '$(srcdir)/'`libs/fft.c
libs_fft-fft.obj: libs/fft.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -MT libs_fft-fft.obj -MD -MP -MF $(DEPDIR)/libs_fft-fft.Tpo -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_fft-fft.Tpo $(DEPDIR)/libs_fft-fft.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/fft.c' object='libs_fft-fft.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/fft.c' object='libs_fft-fft.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) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_fft_CFLAGS) $(CFLAGS) -c -o libs_fft-fft.obj `if test -f 'libs/fft.c'; then $(CYGPATH_W) 'libs/fft.c'; else $(CYGPATH_W) '$(srcdir)/libs/fft.c'; fi`
libs_libsabi-libsabi.o: libs/libsabi.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs_libsabi-libsabi.o -MD -MP -MF $(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_libsabi-libsabi.Tpo $(DEPDIR)/libs_libsabi-libsabi.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/libsabi.c' object='libs_libsabi-libsabi.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/libsabi.c' object='libs_libsabi-libsabi.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) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.o `test -f 'libs/libsabi.c' || echo '$(srcdir)/'`libs/libsabi.c
libs_libsabi-libsabi.obj: libs/libsabi.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -MT libs_libsabi-libsabi.obj -MD -MP -MF $(DEPDIR)/libs_libsabi-libsabi.Tpo -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_libsabi-libsabi.Tpo $(DEPDIR)/libs_libsabi-libsabi.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/libsabi.c' object='libs_libsabi-libsabi.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/libsabi.c' object='libs_libsabi-libsabi.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) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_libsabi_CFLAGS) $(CFLAGS) -c -o libs_libsabi-libsabi.obj `if test -f 'libs/libsabi.c'; then $(CYGPATH_W) 'libs/libsabi.c'; else $(CYGPATH_W) '$(srcdir)/libs/libsabi.c'; fi`
libs_mixer-mixer.o: libs/mixer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -MT libs_mixer-mixer.o -MD -MP -MF $(DEPDIR)/libs_mixer-mixer.Tpo -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mixer-mixer.Tpo $(DEPDIR)/libs_mixer-mixer.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/mixer.c' object='libs_mixer-mixer.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/mixer.c' object='libs_mixer-mixer.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) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.o `test -f 'libs/mixer.c' || echo '$(srcdir)/'`libs/mixer.c
libs_mixer-mixer.obj: libs/mixer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -MT libs_mixer-mixer.obj -MD -MP -MF $(DEPDIR)/libs_mixer-mixer.Tpo -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_mixer-mixer.Tpo $(DEPDIR)/libs_mixer-mixer.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/mixer.c' object='libs_mixer-mixer.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/mixer.c' object='libs_mixer-mixer.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) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_mixer_CFLAGS) $(CFLAGS) -c -o libs_mixer-mixer.obj `if test -f 'libs/mixer.c'; then $(CYGPATH_W) 'libs/mixer.c'; else $(CYGPATH_W) '$(srcdir)/libs/mixer.c'; fi`
libs_navigation-navigation.o: libs/navigation.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs_navigation-navigation.o -MD -MP -MF $(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_navigation-navigation.Tpo $(DEPDIR)/libs_navigation-navigation.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/navigation.c' object='libs_navigation-navigation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/navigation.c' object='libs_navigation-navigation.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) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.o `test -f 'libs/navigation.c' || echo '$(srcdir)/'`libs/navigation.c
libs_navigation-navigation.obj: libs/navigation.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -MT libs_navigation-navigation.obj -MD -MP -MF $(DEPDIR)/libs_navigation-navigation.Tpo -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_navigation-navigation.Tpo $(DEPDIR)/libs_navigation-navigation.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/navigation.c' object='libs_navigation-navigation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/navigation.c' object='libs_navigation-navigation.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) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_navigation_CFLAGS) $(CFLAGS) -c -o libs_navigation-navigation.obj `if test -f 'libs/navigation.c'; then $(CYGPATH_W) 'libs/navigation.c'; else $(CYGPATH_W) '$(srcdir)/libs/navigation.c'; fi`
libs_netbuffer-netbuffer.o: libs/netbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -MT libs_netbuffer-netbuffer.o -MD -MP -MF $(DEPDIR)/libs_netbuffer-netbuffer.Tpo -c -o libs_netbuffer-netbuffer.o `test -f 'libs/netbuffer.c' || echo '$(srcdir)/'`libs/netbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_netbuffer-netbuffer.Tpo $(DEPDIR)/libs_netbuffer-netbuffer.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.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) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.o `test -f 'libs/netbuffer.c' || echo '$(srcdir)/'`libs/netbuffer.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.o `test -f 'libs/netbuffer.c' || echo '$(srcdir)/'`libs/netbuffer.c
libs_netbuffer-netbuffer.obj: libs/netbuffer.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -MT libs_netbuffer-netbuffer.obj -MD -MP -MF $(DEPDIR)/libs_netbuffer-netbuffer.Tpo -c -o libs_netbuffer-netbuffer.obj `if test -f 'libs/netbuffer.c'; then $(CYGPATH_W) 'libs/netbuffer.c'; else $(CYGPATH_W) '$(srcdir)/libs/netbuffer.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_netbuffer-netbuffer.Tpo $(DEPDIR)/libs_netbuffer-netbuffer.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/netbuffer.c' object='libs_netbuffer-netbuffer.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) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.obj `if test -f 'libs/netbuffer.c'; then $(CYGPATH_W) 'libs/netbuffer.c'; else $(CYGPATH_W) '$(srcdir)/libs/netbuffer.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_netbuffer_CFLAGS) $(CFLAGS) -c -o libs_netbuffer-netbuffer.obj `if test -f 'libs/netbuffer.c'; then $(CYGPATH_W) 'libs/netbuffer.c'; else $(CYGPATH_W) '$(srcdir)/libs/netbuffer.c'; fi`
libs_pbutils-pbutils.o: libs/pbutils.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs_pbutils-pbutils.o -MD -MP -MF $(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_pbutils-pbutils.Tpo $(DEPDIR)/libs_pbutils-pbutils.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/pbutils.c' object='libs_pbutils-pbutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/pbutils.c' object='libs_pbutils-pbutils.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) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.o `test -f 'libs/pbutils.c' || echo '$(srcdir)/'`libs/pbutils.c
libs_pbutils-pbutils.obj: libs/pbutils.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -MT libs_pbutils-pbutils.obj -MD -MP -MF $(DEPDIR)/libs_pbutils-pbutils.Tpo -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_pbutils-pbutils.Tpo $(DEPDIR)/libs_pbutils-pbutils.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/pbutils.c' object='libs_pbutils-pbutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/pbutils.c' object='libs_pbutils-pbutils.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) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_pbutils_CFLAGS) $(CFLAGS) -c -o libs_pbutils-pbutils.obj `if test -f 'libs/pbutils.c'; then $(CYGPATH_W) 'libs/pbutils.c'; else $(CYGPATH_W) '$(srcdir)/libs/pbutils.c'; fi`
libs_profile-profile.o: libs/profile.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs_profile-profile.o -MD -MP -MF $(DEPDIR)/libs_profile-profile.Tpo -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_profile-profile.Tpo $(DEPDIR)/libs_profile-profile.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/profile.c' object='libs_profile-profile.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/profile.c' object='libs_profile-profile.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) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.o `test -f 'libs/profile.c' || echo '$(srcdir)/'`libs/profile.c
libs_profile-profile.obj: libs/profile.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -MT libs_profile-profile.obj -MD -MP -MF $(DEPDIR)/libs_profile-profile.Tpo -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_profile-profile.Tpo $(DEPDIR)/libs_profile-profile.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/profile.c' object='libs_profile-profile.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/profile.c' object='libs_profile-profile.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) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_profile_CFLAGS) $(CFLAGS) -c -o libs_profile-profile.obj `if test -f 'libs/profile.c'; then $(CYGPATH_W) 'libs/profile.c'; else $(CYGPATH_W) '$(srcdir)/libs/profile.c'; fi`
libs_rtp-rtp.o: libs/rtp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs_rtp-rtp.o -MD -MP -MF $(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtp-rtp.Tpo $(DEPDIR)/libs_rtp-rtp.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/rtp.c' object='libs_rtp-rtp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/rtp.c' object='libs_rtp-rtp.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) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.o `test -f 'libs/rtp.c' || echo '$(srcdir)/'`libs/rtp.c
libs_rtp-rtp.obj: libs/rtp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -MT libs_rtp-rtp.obj -MD -MP -MF $(DEPDIR)/libs_rtp-rtp.Tpo -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtp-rtp.Tpo $(DEPDIR)/libs_rtp-rtp.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/rtp.c' object='libs_rtp-rtp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/rtp.c' object='libs_rtp-rtp.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) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtp_CFLAGS) $(CFLAGS) -c -o libs_rtp-rtp.obj `if test -f 'libs/rtp.c'; then $(CYGPATH_W) 'libs/rtp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtp.c'; fi`
libs_rtsp-rtsp.o: libs/rtsp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs_rtsp-rtsp.o -MD -MP -MF $(DEPDIR)/libs_rtsp-rtsp.Tpo -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtsp-rtsp.Tpo $(DEPDIR)/libs_rtsp-rtsp.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/rtsp.c' object='libs_rtsp-rtsp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/rtsp.c' object='libs_rtsp-rtsp.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) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.o `test -f 'libs/rtsp.c' || echo '$(srcdir)/'`libs/rtsp.c
libs_rtsp-rtsp.obj: libs/rtsp.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -MT libs_rtsp-rtsp.obj -MD -MP -MF $(DEPDIR)/libs_rtsp-rtsp.Tpo -c -o libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_rtsp-rtsp.Tpo $(DEPDIR)/libs_rtsp-rtsp.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/rtsp.c' object='libs_rtsp-rtsp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/rtsp.c' object='libs_rtsp-rtsp.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) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_rtsp_CFLAGS) $(CFLAGS) -c -o libs_rtsp-rtsp.obj `if test -f 'libs/rtsp.c'; then $(CYGPATH_W) 'libs/rtsp.c'; else $(CYGPATH_W) '$(srcdir)/libs/rtsp.c'; fi`
libs_tag-tag.o: libs/tag.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -MT libs_tag-tag.o -MD -MP -MF $(DEPDIR)/libs_tag-tag.Tpo -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_tag-tag.Tpo $(DEPDIR)/libs_tag-tag.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/tag.c' object='libs_tag-tag.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/tag.c' object='libs_tag-tag.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) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.o `test -f 'libs/tag.c' || echo '$(srcdir)/'`libs/tag.c
libs_tag-tag.obj: libs/tag.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -MT libs_tag-tag.obj -MD -MP -MF $(DEPDIR)/libs_tag-tag.Tpo -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_tag-tag.Tpo $(DEPDIR)/libs_tag-tag.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/tag.c' object='libs_tag-tag.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/tag.c' object='libs_tag-tag.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) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_tag_CFLAGS) $(CFLAGS) -c -o libs_tag-tag.obj `if test -f 'libs/tag.c'; then $(CYGPATH_W) 'libs/tag.c'; else $(CYGPATH_W) '$(srcdir)/libs/tag.c'; fi`
libs_video-video.o: libs/video.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs_video-video.o -MD -MP -MF $(DEPDIR)/libs_video-video.Tpo -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_video-video.Tpo $(DEPDIR)/libs_video-video.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/video.c' object='libs_video-video.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/video.c' object='libs_video-video.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) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.o `test -f 'libs/video.c' || echo '$(srcdir)/'`libs/video.c
libs_video-video.obj: libs/video.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -MT libs_video-video.obj -MD -MP -MF $(DEPDIR)/libs_video-video.Tpo -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_video-video.Tpo $(DEPDIR)/libs_video-video.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/video.c' object='libs_video-video.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/video.c' object='libs_video-video.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) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_video_CFLAGS) $(CFLAGS) -c -o libs_video-video.obj `if test -f 'libs/video.c'; then $(CYGPATH_W) 'libs/video.c'; else $(CYGPATH_W) '$(srcdir)/libs/video.c'; fi`
libs_xmpwriter-xmpwriter.o: libs/xmpwriter.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs_xmpwriter-xmpwriter.o -MD -MP -MF $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo $(DEPDIR)/libs_xmpwriter-xmpwriter.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.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) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.o `test -f 'libs/xmpwriter.c' || echo '$(srcdir)/'`libs/xmpwriter.c
libs_xmpwriter-xmpwriter.obj: libs/xmpwriter.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -MT libs_xmpwriter-xmpwriter.obj -MD -MP -MF $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libs_xmpwriter-xmpwriter.Tpo $(DEPDIR)/libs_xmpwriter-xmpwriter.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='libs/xmpwriter.c' object='libs_xmpwriter-xmpwriter.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) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libs_xmpwriter_CFLAGS) $(CFLAGS) -c -o libs_xmpwriter-xmpwriter.obj `if test -f 'libs/xmpwriter.c'; then $(CYGPATH_W) 'libs/xmpwriter.c'; else $(CYGPATH_W) '$(srcdir)/libs/xmpwriter.c'; fi`
orc_adder-adder.o: orc/adder.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc_adder-adder.o -MD -MP -MF $(DEPDIR)/orc_adder-adder.Tpo -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_adder-adder.Tpo $(DEPDIR)/orc_adder-adder.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/adder.c' object='orc_adder-adder.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/adder.c' object='orc_adder-adder.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_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.o `test -f 'orc/adder.c' || echo '$(srcdir)/'`orc/adder.c
orc_adder-adder.obj: orc/adder.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -MT orc_adder-adder.obj -MD -MP -MF $(DEPDIR)/orc_adder-adder.Tpo -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_adder-adder.Tpo $(DEPDIR)/orc_adder-adder.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/adder.c' object='orc_adder-adder.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/adder.c' object='orc_adder-adder.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_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_adder_CFLAGS) $(CFLAGS) -c -o orc_adder-adder.obj `if test -f 'orc/adder.c'; then $(CYGPATH_W) 'orc/adder.c'; else $(CYGPATH_W) '$(srcdir)/orc/adder.c'; fi`
orc_audioconvert-audioconvert.o: orc/audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc_audioconvert-audioconvert.o -MD -MP -MF $(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_audioconvert-audioconvert.Tpo $(DEPDIR)/orc_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.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_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.o `test -f 'orc/audioconvert.c' || echo '$(srcdir)/'`orc/audioconvert.c
orc_audioconvert-audioconvert.obj: orc/audioconvert.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -MT orc_audioconvert-audioconvert.obj -MD -MP -MF $(DEPDIR)/orc_audioconvert-audioconvert.Tpo -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_audioconvert-audioconvert.Tpo $(DEPDIR)/orc_audioconvert-audioconvert.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/audioconvert.c' object='orc_audioconvert-audioconvert.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_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_audioconvert_CFLAGS) $(CFLAGS) -c -o orc_audioconvert-audioconvert.obj `if test -f 'orc/audioconvert.c'; then $(CYGPATH_W) 'orc/audioconvert.c'; else $(CYGPATH_W) '$(srcdir)/orc/audioconvert.c'; fi`
orc_videoscale-videoscale.o: orc/videoscale.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc_videoscale-videoscale.o -MD -MP -MF $(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videoscale-videoscale.Tpo $(DEPDIR)/orc_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videoscale.c' object='orc_videoscale-videoscale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videoscale.c' object='orc_videoscale-videoscale.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_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.o `test -f 'orc/videoscale.c' || echo '$(srcdir)/'`orc/videoscale.c
orc_videoscale-videoscale.obj: orc/videoscale.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -MT orc_videoscale-videoscale.obj -MD -MP -MF $(DEPDIR)/orc_videoscale-videoscale.Tpo -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videoscale-videoscale.Tpo $(DEPDIR)/orc_videoscale-videoscale.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videoscale.c' object='orc_videoscale-videoscale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videoscale.c' object='orc_videoscale-videoscale.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_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videoscale_CFLAGS) $(CFLAGS) -c -o orc_videoscale-videoscale.obj `if test -f 'orc/videoscale.c'; then $(CYGPATH_W) 'orc/videoscale.c'; else $(CYGPATH_W) '$(srcdir)/orc/videoscale.c'; fi`
orc_videotestsrc-videotestsrc.o: orc/videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc_videotestsrc-videotestsrc.o -MD -MP -MF $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo $(DEPDIR)/orc_videotestsrc-videotestsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.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_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.o `test -f 'orc/videotestsrc.c' || echo '$(srcdir)/'`orc/videotestsrc.c
orc_videotestsrc-videotestsrc.obj: orc/videotestsrc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -MT orc_videotestsrc-videotestsrc.obj -MD -MP -MF $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_videotestsrc-videotestsrc.Tpo $(DEPDIR)/orc_videotestsrc-videotestsrc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/videotestsrc.c' object='orc_videotestsrc-videotestsrc.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_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_videotestsrc_CFLAGS) $(CFLAGS) -c -o orc_videotestsrc-videotestsrc.obj `if test -f 'orc/videotestsrc.c'; then $(CYGPATH_W) 'orc/videotestsrc.c'; else $(CYGPATH_W) '$(srcdir)/orc/videotestsrc.c'; fi`
orc_volume-volume.o: orc/volume.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc_volume-volume.o -MD -MP -MF $(DEPDIR)/orc_volume-volume.Tpo -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_volume-volume.Tpo $(DEPDIR)/orc_volume-volume.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/volume.c' object='orc_volume-volume.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/volume.c' object='orc_volume-volume.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_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.o `test -f 'orc/volume.c' || echo '$(srcdir)/'`orc/volume.c
orc_volume-volume.obj: orc/volume.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -MT orc_volume-volume.obj -MD -MP -MF $(DEPDIR)/orc_volume-volume.Tpo -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/orc_volume-volume.Tpo $(DEPDIR)/orc_volume-volume.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='orc/volume.c' object='orc_volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='orc/volume.c' object='orc_volume-volume.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_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_volume_CFLAGS) $(CFLAGS) -c -o orc_volume-volume.obj `if test -f 'orc/volume.c'; then $(CYGPATH_W) 'orc/volume.c'; else $(CYGPATH_W) '$(srcdir)/orc/volume.c'; fi`
basetime.o: pipelines/basetime.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basetime.o -MD -MP -MF $(DEPDIR)/basetime.Tpo -c -o basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/basetime.Tpo $(DEPDIR)/basetime.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/basetime.c' object='basetime.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/basetime.c' object='basetime.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 basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.o `test -f 'pipelines/basetime.c' || echo '$(srcdir)/'`pipelines/basetime.c
basetime.obj: pipelines/basetime.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT basetime.obj -MD -MP -MF $(DEPDIR)/basetime.Tpo -c -o basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/basetime.Tpo $(DEPDIR)/basetime.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/basetime.c' object='basetime.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/basetime.c' object='basetime.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 basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o basetime.obj `if test -f 'pipelines/basetime.c'; then $(CYGPATH_W) 'pipelines/basetime.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/basetime.c'; fi`
capsfilter-renegotiation.o: pipelines/capsfilter-renegotiation.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter-renegotiation.o -MD -MP -MF $(DEPDIR)/capsfilter-renegotiation.Tpo -c -o capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter-renegotiation.Tpo $(DEPDIR)/capsfilter-renegotiation.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.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 capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.o `test -f 'pipelines/capsfilter-renegotiation.c' || echo '$(srcdir)/'`pipelines/capsfilter-renegotiation.c
capsfilter-renegotiation.obj: pipelines/capsfilter-renegotiation.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT capsfilter-renegotiation.obj -MD -MP -MF $(DEPDIR)/capsfilter-renegotiation.Tpo -c -o capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/capsfilter-renegotiation.Tpo $(DEPDIR)/capsfilter-renegotiation.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/capsfilter-renegotiation.c' object='capsfilter-renegotiation.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 capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o capsfilter-renegotiation.obj `if test -f 'pipelines/capsfilter-renegotiation.c'; then $(CYGPATH_W) 'pipelines/capsfilter-renegotiation.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/capsfilter-renegotiation.c'; fi`
pipelines_gio-gio.o: pipelines/gio.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines_gio-gio.o -MD -MP -MF $(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_gio-gio.Tpo $(DEPDIR)/pipelines_gio-gio.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/gio.c' object='pipelines_gio-gio.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/gio.c' object='pipelines_gio-gio.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_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.o `test -f 'pipelines/gio.c' || echo '$(srcdir)/'`pipelines/gio.c
pipelines_gio-gio.obj: pipelines/gio.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -MT pipelines_gio-gio.obj -MD -MP -MF $(DEPDIR)/pipelines_gio-gio.Tpo -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_gio-gio.Tpo $(DEPDIR)/pipelines_gio-gio.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/gio.c' object='pipelines_gio-gio.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/gio.c' object='pipelines_gio-gio.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_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_gio_CFLAGS) $(CFLAGS) -c -o pipelines_gio-gio.obj `if test -f 'pipelines/gio.c'; then $(CYGPATH_W) 'pipelines/gio.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/gio.c'; fi`
pipelines_oggmux-oggmux.o: pipelines/oggmux.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines_oggmux-oggmux.o -MD -MP -MF $(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_oggmux-oggmux.Tpo $(DEPDIR)/pipelines_oggmux-oggmux.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.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_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.o `test -f 'pipelines/oggmux.c' || echo '$(srcdir)/'`pipelines/oggmux.c
pipelines_oggmux-oggmux.obj: pipelines/oggmux.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -MT pipelines_oggmux-oggmux.obj -MD -MP -MF $(DEPDIR)/pipelines_oggmux-oggmux.Tpo -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_oggmux-oggmux.Tpo $(DEPDIR)/pipelines_oggmux-oggmux.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/oggmux.c' object='pipelines_oggmux-oggmux.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_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_oggmux_CFLAGS) $(CFLAGS) -c -o pipelines_oggmux-oggmux.obj `if test -f 'pipelines/oggmux.c'; then $(CYGPATH_W) 'pipelines/oggmux.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/oggmux.c'; fi`
pipelines_simple_launch_lines-simple-launch-lines.o: pipelines/simple-launch-lines.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines_simple_launch_lines-simple-launch-lines.o -MD -MP -MF $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines_simple_launch_lines-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)/pipelines_simple_launch_lines-simple-launch-lines.Tpo $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-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) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-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) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-simple-launch-lines.o `test -f 'pipelines/simple-launch-lines.c' || echo '$(srcdir)/'`pipelines/simple-launch-lines.c
pipelines_simple_launch_lines-simple-launch-lines.obj: pipelines/simple-launch-lines.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -MT pipelines_simple_launch_lines-simple-launch-lines.obj -MD -MP -MF $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Tpo -c -o pipelines_simple_launch_lines-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)/pipelines_simple_launch_lines-simple-launch-lines.Tpo $(DEPDIR)/pipelines_simple_launch_lines-simple-launch-lines.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-simple-launch-lines.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/simple-launch-lines.c' object='pipelines_simple_launch_lines-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) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-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) $(pipelines_simple_launch_lines_CFLAGS) $(CFLAGS) -c -o pipelines_simple_launch_lines-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`
streamheader.o: pipelines/streamheader.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT streamheader.o -MD -MP -MF $(DEPDIR)/streamheader.Tpo -c -o streamheader.o `test -f 'pipelines/streamheader.c' || echo '$(srcdir)/'`pipelines/streamheader.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/streamheader.Tpo $(DEPDIR)/streamheader.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/streamheader.c' object='streamheader.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/streamheader.c' object='streamheader.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 streamheader.o `test -f 'pipelines/streamheader.c' || echo '$(srcdir)/'`pipelines/streamheader.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamheader.o `test -f 'pipelines/streamheader.c' || echo '$(srcdir)/'`pipelines/streamheader.c
streamheader.obj: pipelines/streamheader.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT streamheader.obj -MD -MP -MF $(DEPDIR)/streamheader.Tpo -c -o streamheader.obj `if test -f 'pipelines/streamheader.c'; then $(CYGPATH_W) 'pipelines/streamheader.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/streamheader.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/streamheader.Tpo $(DEPDIR)/streamheader.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/streamheader.c' object='streamheader.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/streamheader.c' object='streamheader.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 streamheader.obj `if test -f 'pipelines/streamheader.c'; then $(CYGPATH_W) 'pipelines/streamheader.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/streamheader.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o streamheader.obj `if test -f 'pipelines/streamheader.c'; then $(CYGPATH_W) 'pipelines/streamheader.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/streamheader.c'; fi`
pipelines_theoraenc-theoraenc.o: pipelines/theoraenc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines_theoraenc-theoraenc.o -MD -MP -MF $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo $(DEPDIR)/pipelines_theoraenc-theoraenc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.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_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.o `test -f 'pipelines/theoraenc.c' || echo '$(srcdir)/'`pipelines/theoraenc.c
pipelines_theoraenc-theoraenc.obj: pipelines/theoraenc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -MT pipelines_theoraenc-theoraenc.obj -MD -MP -MF $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_theoraenc-theoraenc.Tpo $(DEPDIR)/pipelines_theoraenc-theoraenc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/theoraenc.c' object='pipelines_theoraenc-theoraenc.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_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_theoraenc_CFLAGS) $(CFLAGS) -c -o pipelines_theoraenc-theoraenc.obj `if test -f 'pipelines/theoraenc.c'; then $(CYGPATH_W) 'pipelines/theoraenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/theoraenc.c'; fi`
pipelines_vorbisdec-vorbisdec.o: pipelines/vorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines_vorbisdec-vorbisdec.o -MD -MP -MF $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.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_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.o `test -f 'pipelines/vorbisdec.c' || echo '$(srcdir)/'`pipelines/vorbisdec.c
pipelines_vorbisdec-vorbisdec.obj: pipelines/vorbisdec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -MT pipelines_vorbisdec-vorbisdec.obj -MD -MP -MF $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Tpo $(DEPDIR)/pipelines_vorbisdec-vorbisdec.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/vorbisdec.c' object='pipelines_vorbisdec-vorbisdec.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_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisdec_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisdec-vorbisdec.obj `if test -f 'pipelines/vorbisdec.c'; then $(CYGPATH_W) 'pipelines/vorbisdec.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisdec.c'; fi`
pipelines_vorbisenc-vorbisenc.o: pipelines/vorbisenc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines_vorbisenc-vorbisenc.o -MD -MP -MF $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.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_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.o `test -f 'pipelines/vorbisenc.c' || echo '$(srcdir)/'`pipelines/vorbisenc.c
pipelines_vorbisenc-vorbisenc.obj: pipelines/vorbisenc.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -MT pipelines_vorbisenc-vorbisenc.obj -MD -MP -MF $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Tpo $(DEPDIR)/pipelines_vorbisenc-vorbisenc.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pipelines/vorbisenc.c' object='pipelines_vorbisenc-vorbisenc.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_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pipelines_vorbisenc_CFLAGS) $(CFLAGS) -c -o pipelines_vorbisenc-vorbisenc.obj `if test -f 'pipelines/vorbisenc.c'; then $(CYGPATH_W) 'pipelines/vorbisenc.c'; else $(CYGPATH_W) '$(srcdir)/pipelines/vorbisenc.c'; fi`
.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 $@ $<
gstlibscpp.o: libs/gstlibscpp.cc
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.o -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='libs/gstlibscpp.cc' object='gstlibscpp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.o `test -f 'libs/gstlibscpp.cc' || echo '$(srcdir)/'`libs/gstlibscpp.cc
gstlibscpp.obj: libs/gstlibscpp.cc
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT gstlibscpp.obj -MD -MP -MF $(DEPDIR)/gstlibscpp.Tpo -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gstlibscpp.Tpo $(DEPDIR)/gstlibscpp.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='libs/gstlibscpp.cc' object='gstlibscpp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='libs/gstlibscpp.cc' object='gstlibscpp.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o gstlibscpp.obj `if test -f 'libs/gstlibscpp.cc'; then $(CYGPATH_W) 'libs/gstlibscpp.cc'; else $(CYGPATH_W) '$(srcdir)/libs/gstlibscpp.cc'; fi`
mostlyclean-libtool:
-rm -f *.lo
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
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:
#if 1
fail_unless (res == TRUE, NULL);
#else
- /* adder is picky, if a single seek fails it totaly fails */
+ /* adder is picky, if a single seek fails it totally fails */
fail_unless (res == FALSE, NULL);
#endif
GstElement *bin, *src1, *src2, *adder, *sink;
GstBus *bus;
GstPad *srcpad;
- GstStreamConsistency *consist;
gboolean res;
GST_INFO ("preparing test");
fail_unless (res == TRUE, NULL);
srcpad = gst_element_get_static_pad (adder, "src");
- consist = gst_consistency_checker_new (srcpad);
gst_object_unref (srcpad);
main_loop = g_main_loop_new (NULL, FALSE);
GstBus *bus;
GstPad *pad, *srcpad;
gboolean res;
- GstStreamConsistency *consist;
GST_INFO ("preparing test");
fail_if (pad == NULL, NULL);
srcpad = gst_element_get_static_pad (adder, "src");
- consist = gst_consistency_checker_new (srcpad);
gst_object_unref (srcpad);
main_loop = g_main_loop_new (NULL, FALSE);
{
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_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);
}
static void
audiorate = gst_check_setup_element ("audiorate");
caps = gst_caps_new_simple ("audio/x-raw-float",
"channels", G_TYPE_INT, 1,
- "rate", G_TYPE_INT, 44100, "width", G_TYPE_INT, 32, NULL);
+ "rate", G_TYPE_INT, 44100, "width", G_TYPE_INT, 32,
+ "endianness", G_TYPE_INT, G_BYTE_ORDER, NULL);
srcpad = gst_check_setup_src_pad (audiorate, &srctemplate, caps);
sinkpad = gst_check_setup_sink_pad (audiorate, &sinktemplate, caps);
#include <gst/audio/audio.h>
+#include <gst/fft/gstfft.h>
+#include <gst/fft/gstffts16.h>
+#include <gst/fft/gstffts32.h>
+#include <gst/fft/gstfftf32.h>
+#include <gst/fft/gstfftf64.h>
+
/* For ease of programming we use globals to keep refs for our floating
* src and sink pads we create; otherwise we always have to do get_pad,
* get_peer, and then remove references in every test function */
"channels = (int) [ 1, MAX ], " \
"rate = (int) [ 1, MAX ], " \
"endianness = (int) BYTE_ORDER, " \
- "width = (int) 16, " \
- "depth = (int) 16, " \
+ "width = (int) { 16, 32 }, " \
+ "depth = (int) { 16, 32 }, " \
"signed = (bool) TRUE"
#define RESAMPLE_CAPS_TEMPLATE_STRING \
ctx->latency = 1000 - GST_BUFFER_SIZE (buffer) / 8;
}
- /* Check if we have a perfectly timestampped stream */
+ /* Check if we have a perfectly timestamped stream */
if (ctx->next_out_ts != GST_CLOCK_TIME_NONE)
fail_unless (ctx->next_out_ts == GST_BUFFER_TIMESTAMP (buffer),
"expected timestamp %" GST_TIME_FORMAT " got timestamp %"
} GST_END_TEST;
+#define FFT_HELPERS(type,ffttag,ffttag2,scale); \
+static gdouble magnitude##ffttag (const GstFFT##ffttag##Complex *c) \
+{ \
+ gdouble mag = (gdouble) c->r * (gdouble) c->r; \
+ mag += (gdouble) c->i * (gdouble) c->i; \
+ mag /= scale * scale; \
+ mag = 10.0 * log10 (mag); \
+ return mag; \
+} \
+static gdouble find_main_frequency_spot_##ffttag (const GstFFT##ffttag##Complex *v, \
+ int elements) \
+{ \
+ int i; \
+ gdouble maxmag = -9999; \
+ int maxidx = 0; \
+ for (i=0; i<elements; ++i) { \
+ gdouble mag = magnitude##ffttag (v+i); \
+ if (mag > maxmag) { \
+ maxmag = mag; \
+ maxidx = i; \
+ } \
+ } \
+ return maxidx / (gdouble) elements; \
+} \
+static gboolean is_zero_except_##ffttag (const GstFFT##ffttag##Complex *v, int elements, \
+ gdouble spot) \
+{ \
+ int i; \
+ for (i=0; i<elements; ++i) { \
+ gdouble pos = i / (gdouble) elements; \
+ gdouble mag = magnitude##ffttag (v+i); \
+ if (fabs (pos - spot) > 0.01) { \
+ if (mag > -55.0) { \
+ return FALSE; \
+ } \
+ } \
+ } \
+ return TRUE; \
+} \
+static void compare_ffts_##ffttag (const GstBuffer *inbuffer, const GstBuffer *outbuffer) \
+{ \
+ int insamples = GST_BUFFER_SIZE (inbuffer) / sizeof(type) & ~1; \
+ int outsamples = GST_BUFFER_SIZE (outbuffer) / sizeof(type) & ~1; \
+ gdouble inspot, outspot; \
+ \
+ GstFFT##ffttag *inctx = gst_fft_##ffttag2##_new (insamples, FALSE); \
+ GstFFT##ffttag##Complex *in = g_new (GstFFT##ffttag##Complex, insamples / 2 + 1); \
+ GstFFT##ffttag *outctx = gst_fft_##ffttag2##_new (outsamples, FALSE); \
+ GstFFT##ffttag##Complex *out = g_new (GstFFT##ffttag##Complex, outsamples / 2 + 1); \
+ \
+ gst_fft_##ffttag2##_window (inctx, (type*)GST_BUFFER_DATA (inbuffer), \
+ GST_FFT_WINDOW_HAMMING); \
+ gst_fft_##ffttag2##_fft (inctx, (type*)GST_BUFFER_DATA (inbuffer), in); \
+ gst_fft_##ffttag2##_window (outctx, (type*)GST_BUFFER_DATA (outbuffer), \
+ GST_FFT_WINDOW_HAMMING); \
+ gst_fft_##ffttag2##_fft (outctx, (type*)GST_BUFFER_DATA (outbuffer), out); \
+ \
+ inspot = find_main_frequency_spot_##ffttag (in, insamples / 2 + 1); \
+ outspot = find_main_frequency_spot_##ffttag (out, outsamples / 2 + 1); \
+ GST_LOG ("Spots are %.3f and %.3f", inspot, outspot); \
+ fail_unless (fabs (outspot - inspot) < 0.05); \
+ fail_unless (is_zero_except_##ffttag (in, insamples / 2 + 1, inspot)); \
+ fail_unless (is_zero_except_##ffttag (out, outsamples / 2 + 1, outspot)); \
+ \
+ gst_fft_##ffttag2##_free (inctx); \
+ gst_fft_##ffttag2##_free (outctx); \
+ g_free (in); \
+ g_free (out); \
+}
+FFT_HELPERS (float, F32, f32, 2048.0f);
+FFT_HELPERS (double, F64, f64, 2048.0);
+FFT_HELPERS (gint16, S16, s16, 32767.0);
+FFT_HELPERS (gint32, S32, s32, 2147483647.0);
+
+#define FILL_BUFFER(type, desc, value); \
+ static void init_##type##_##desc (GstBuffer *buffer) \
+ { \
+ type *ptr = (type *) GST_BUFFER_DATA (buffer); \
+ int i, nsamples = GST_BUFFER_SIZE (buffer) / sizeof (type); \
+ for (i = 0; i < nsamples; ++i) { \
+ *ptr++ = value; \
+ } \
+ }
+
+FILL_BUFFER (float, silence, 0.0f);
+FILL_BUFFER (double, silence, 0.0);
+FILL_BUFFER (gint16, silence, 0);
+FILL_BUFFER (gint32, silence, 0);
+FILL_BUFFER (float, sine, sinf (i * 0.01f));
+FILL_BUFFER (float, sine2, sinf (i * 1.8f));
+FILL_BUFFER (double, sine, sin (i * 0.01));
+FILL_BUFFER (double, sine2, sin (i * 1.8));
+FILL_BUFFER (gint16, sine, (gint16) (32767 * sinf (i * 0.01f)));
+FILL_BUFFER (gint16, sine2, (gint16) (32767 * sinf (i * 1.8f)));
+FILL_BUFFER (gint32, sine, (gint32) (2147483647 * sinf (i * 0.01f)));
+FILL_BUFFER (gint32, sine2, (gint32) (2147483647 * sinf (i * 1.8f)));
+
+static void
+run_fft_pipeline (int inrate, int outrate, int quality, int width, gboolean fp,
+ void (*init) (GstBuffer *),
+ void (*compare_ffts) (const GstBuffer *, const GstBuffer *))
+{
+ GstElement *audioresample;
+ GstBuffer *inbuffer, *outbuffer;
+ GstCaps *caps;
+ const int nsamples = 2048;
+
+ audioresample = setup_audioresample (1, inrate, outrate, width, fp);
+ fail_unless (audioresample != NULL);
+ g_object_set (audioresample, "quality", quality, NULL);
+ caps = gst_pad_get_negotiated_caps (mysrcpad);
+ fail_unless (gst_caps_is_fixed (caps));
+
+ fail_unless (gst_element_set_state (audioresample,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ inbuffer = gst_buffer_new_and_alloc (nsamples * width / 8);
+ GST_BUFFER_DURATION (inbuffer) = GST_FRAMES_TO_CLOCK_TIME (nsamples, inrate);
+ GST_BUFFER_TIMESTAMP (inbuffer) = 0;
+ gst_buffer_set_caps (inbuffer, caps);
+ gst_buffer_ref (inbuffer);
+
+ (*init) (inbuffer);
+
+ /* pushing gives away my reference ... */
+ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+ /* ... but it ends up being collected on the global buffer list */
+ fail_unless_equals_int (g_list_length (buffers), 1);
+ /* retrieve out buffer */
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+
+ fail_unless (gst_element_set_state (audioresample,
+ GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS, "could not set to null");
+
+ (*compare_ffts) (inbuffer, outbuffer);
+
+ /* cleanup */
+ gst_buffer_unref (inbuffer);
+ gst_caps_unref (caps);
+ cleanup_audioresample (audioresample);
+}
+
+GST_START_TEST (test_fft)
+{
+ int quality;
+ size_t f0, f1;
+ static const int frequencies[] =
+ { 8000, 16000, 44100, 48000, 128000, 12345, 54321 };
+
+ /* audioresample uses a mixed float/double code path for floats with quality>8, make sure we test it */
+ for (quality = 0; quality <= 10; quality += 5) {
+ for (f0 = 0; f0 < G_N_ELEMENTS (frequencies); ++f0) {
+ for (f1 = 0; f1 < G_N_ELEMENTS (frequencies); ++f1) {
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, TRUE,
+ &init_float_silence, &compare_ffts_F32);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, TRUE,
+ &init_float_sine, &compare_ffts_F32);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, TRUE,
+ &init_float_sine2, &compare_ffts_F32);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 64, TRUE,
+ &init_double_silence, &compare_ffts_F64);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 64, TRUE,
+ &init_double_sine, &compare_ffts_F64);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 64, TRUE,
+ &init_double_sine2, &compare_ffts_F64);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 16, FALSE,
+ &init_gint16_silence, &compare_ffts_S16);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 16, FALSE,
+ &init_gint16_sine, &compare_ffts_S16);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 16, FALSE,
+ &init_gint16_sine2, &compare_ffts_S16);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, FALSE,
+ &init_gint32_silence, &compare_ffts_S32);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, FALSE,
+ &init_gint32_sine, &compare_ffts_S32);
+ run_fft_pipeline (frequencies[f0], frequencies[f0], quality, 32, FALSE,
+ &init_gint32_sine2, &compare_ffts_S32);
+ }
+ }
+ }
+}
+
+GST_END_TEST;
+
static Suite *
audioresample_suite (void)
{
tcase_add_test (tc_chain, test_shutdown);
tcase_add_test (tc_chain, test_live_switch);
tcase_add_test (tc_chain, test_timestamp_drift);
+ tcase_add_test (tc_chain, test_fft);
#ifndef GST_DISABLE_PARSE
tcase_set_timeout (tc_chain, 360);
while (values[j].value_name) {
GST_DEBUG_OBJECT (audiotestsrc, "testing wave %s", values[j].value_name);
+ g_object_set (audiotestsrc, "wave", values[j].value, NULL);
fail_unless (gst_element_set_state (audiotestsrc,
GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
/* GStreamer unit tests for decodebin
*
* Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2011 Hewlett-Packard Development Company, L.P.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#endif
#include <gst/check/gstcheck.h>
+#include <gst/base/gstbaseparse.h>
#include <unistd.h>
static const gchar dummytext[] =
GST_END_TEST;
+/* Fake mp3 parser for test */
+typedef GstBaseParse TestMpegAudioParse;
+typedef GstBaseParseClass TestMpegAudioParseClass;
+
+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], parsed=(b)true")
+ );
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/mpeg, mpegversion=1, parsed=(bool) { false, true }")
+ );
+
+static GType test_mpeg_audio_parse_get_type (void);
+static gboolean test_mpeg_audio_parse_start (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_stop (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame, guint * size, gint * skipsize);
+static GstFlowReturn test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame);
+
+GST_BOILERPLATE (TestMpegAudioParse, test_mpeg_audio_parse, GstBaseParse,
+ GST_TYPE_BASE_PARSE);
+
+static void
+test_mpeg_audio_parse_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 Parser",
+ "Codec/Parser/Audio", "Pretends to parse mpeg1 audio stream",
+ "Foo Bar <foo@bar.com>");
+}
+
+static void
+test_mpeg_audio_parse_class_init (TestMpegAudioParseClass * klass)
+{
+ GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass);
+
+ parse_class->start = test_mpeg_audio_parse_start;
+ parse_class->stop = test_mpeg_audio_parse_stop;
+ parse_class->check_valid_frame = test_mpeg_audio_parse_check_valid_frame;
+ parse_class->parse_frame = test_mpeg_audio_parse_parse_frame;
+}
+
+static gint num_parse_instances = 0;
+
+static void
+test_mpeg_audio_parse_init (TestMpegAudioParse * mp3parse,
+ TestMpegAudioParseClass * klass)
+{
+ /* catch decodebin plugging parsers in a loop early */
+ fail_unless (++num_parse_instances < 10);
+}
+
+static gboolean
+test_mpeg_audio_parse_start (GstBaseParse * parse)
+{
+ gst_base_parse_set_min_frame_size (parse, 6);
+ return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_stop (GstBaseParse * parse)
+{
+ return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame, guint * framesize, gint * skipsize)
+{
+ const guint8 *data = GST_BUFFER_DATA (frame->buffer);
+
+ if ((GST_READ_UINT16_BE (data) & 0xffe0) == 0xffe0) {
+ /* this framesize is hard-coded for ../test.mp3 */
+ *framesize = 1045;
+ return TRUE;
+ } else {
+ *skipsize = 1;
+ return FALSE;
+ }
+}
+
+static GstFlowReturn
+test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame)
+{
+ if (GST_BUFFER_OFFSET (frame->buffer) == 0) {
+ GstCaps *caps;
+
+ caps = gst_caps_new_simple ("audio/mpeg", "mpegversion", G_TYPE_INT, 1,
+ "mpegaudioversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3,
+ "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 2, NULL);
+ gst_buffer_set_caps (frame->buffer, caps);
+ gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps);
+ gst_caps_unref (caps);
+ }
+ return GST_FLOW_OK;
+}
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+ return gst_element_register (plugin, "testmpegaudioparse", GST_RANK_NONE,
+ test_mpeg_audio_parse_get_type ());
+}
+
+GST_START_TEST (test_mp3_parser_loop)
+{
+ GstStateChangeReturn sret;
+ GstPluginFeature *feature;
+ GstMessage *msg;
+ GstElement *pipe, *src, *dec;
+ gchar *path;
+
+ num_parse_instances = 0;
+
+ gst_plugin_register_static (GST_VERSION_MAJOR, GST_VERSION_MINOR,
+ "fakemp3parse", "fakemp3parse", plugin_init, VERSION, "LGPL",
+ "gst-plugins-base", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
+
+ feature = gst_default_registry_find_feature ("testmpegaudioparse",
+ GST_TYPE_ELEMENT_FACTORY);
+
+ gst_plugin_feature_set_rank (feature, GST_RANK_PRIMARY + 100);
+
+ pipe = gst_pipeline_new (NULL);
+
+ src = gst_element_factory_make ("filesrc", NULL);
+ fail_unless (src != NULL);
+
+ path = g_build_filename (GST_TEST_FILES_PATH, "test.mp3", NULL);
+ g_object_set (src, "location", path, NULL);
+ g_free (path);
+
+ dec = gst_element_factory_make ("decodebin", NULL);
+ fail_unless (dec != NULL);
+
+ gst_bin_add_many (GST_BIN (pipe), src, dec, NULL);
+ gst_element_link_many (src, dec, NULL);
+
+ sret = gst_element_set_state (pipe, GST_STATE_PLAYING);
+ fail_unless_equals_int (sret, GST_STATE_CHANGE_ASYNC);
+
+ /* wait for unlinked error */
+ msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipe),
+ GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR);
+ gst_message_unref (msg);
+
+ gst_element_set_state (pipe, GST_STATE_NULL);
+ gst_object_unref (pipe);
+
+ /* make sure out parser got plugged at all though */
+ fail_unless_equals_int (num_parse_instances, 1);
+
+ /* don't want to interfere with any other of the other tests */
+ gst_plugin_feature_set_rank (feature, GST_RANK_NONE);
+ gst_object_unref (feature);
+}
+
+GST_END_TEST;
+
static Suite *
decodebin_suite (void)
{
suite_add_tcase (s, tc_chain);
tcase_add_test (tc_chain, test_text_plain_streams);
tcase_add_test (tc_chain, test_reuse_without_decoders);
+ tcase_add_test (tc_chain, test_mp3_parser_loop);
return s;
}
/* GStreamer unit tests for decodebin2
*
* Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2011 Hewlett-Packard Development Company, L.P.
+ * Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>, Collabora Ltd.
+ * Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#endif
#include <gst/check/gstcheck.h>
+#include <gst/base/gstbaseparse.h>
#include <unistd.h>
static const gchar dummytext[] =
GST_END_TEST;
+/* Fake mp3 parser for test */
+typedef GstBaseParse TestMpegAudioParse;
+typedef GstBaseParseClass TestMpegAudioParseClass;
+
+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], parsed=(b)true")
+ );
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK,
+ GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/mpeg, mpegversion=1, parsed=(bool) { false, true }")
+ );
+
+static GType test_mpeg_audio_parse_get_type (void);
+static gboolean test_mpeg_audio_parse_start (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_stop (GstBaseParse * parse);
+static gboolean test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame, guint * size, gint * skipsize);
+static GstFlowReturn test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame);
+
+GST_BOILERPLATE (TestMpegAudioParse, test_mpeg_audio_parse, GstBaseParse,
+ GST_TYPE_BASE_PARSE);
+
+static void
+test_mpeg_audio_parse_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 Parser",
+ "Codec/Parser/Audio", "Pretends to parse mpeg1 audio stream",
+ "Foo Bar <foo@bar.com>");
+}
+
+static void
+test_mpeg_audio_parse_class_init (TestMpegAudioParseClass * klass)
+{
+ GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass);
+
+ parse_class->start = test_mpeg_audio_parse_start;
+ parse_class->stop = test_mpeg_audio_parse_stop;
+ parse_class->check_valid_frame = test_mpeg_audio_parse_check_valid_frame;
+ parse_class->parse_frame = test_mpeg_audio_parse_parse_frame;
+}
+
+static gint num_parse_instances = 0;
+
+static void
+test_mpeg_audio_parse_init (TestMpegAudioParse * mp3parse,
+ TestMpegAudioParseClass * klass)
+{
+ /* catch decodebin plugging parsers in a loop early */
+ fail_unless (++num_parse_instances < 10);
+}
+
+static gboolean
+test_mpeg_audio_parse_start (GstBaseParse * parse)
+{
+ gst_base_parse_set_min_frame_size (parse, 6);
+ return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_stop (GstBaseParse * parse)
+{
+ return TRUE;
+}
+
+static gboolean
+test_mpeg_audio_parse_check_valid_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame, guint * framesize, gint * skipsize)
+{
+ const guint8 *data = GST_BUFFER_DATA (frame->buffer);
+
+ if ((GST_READ_UINT16_BE (data) & 0xffe0) == 0xffe0) {
+ /* this framesize is hard-coded for ../test.mp3 */
+ *framesize = 1045;
+ return TRUE;
+ } else {
+ *skipsize = 1;
+ return FALSE;
+ }
+}
+
+static GstFlowReturn
+test_mpeg_audio_parse_parse_frame (GstBaseParse * parse,
+ GstBaseParseFrame * frame)
+{
+ if (GST_BUFFER_OFFSET (frame->buffer) == 0) {
+ GstCaps *caps;
+
+ caps = gst_caps_new_simple ("audio/mpeg", "mpegversion", G_TYPE_INT, 1,
+ "mpegaudioversion", G_TYPE_INT, 1, "layer", G_TYPE_INT, 3,
+ "rate", G_TYPE_INT, 44100, "channels", G_TYPE_INT, 2, NULL);
+ gst_buffer_set_caps (frame->buffer, caps);
+ gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (parse), caps);
+ gst_caps_unref (caps);
+ }
+ return GST_FLOW_OK;
+}
+
+static gboolean
+plugin_init (GstPlugin * plugin)
+{
+ return gst_element_register (plugin, "testmpegaudioparse", GST_RANK_NONE,
+ test_mpeg_audio_parse_get_type ());
+}
+
+GST_START_TEST (test_mp3_parser_loop)
+{
+ GstStateChangeReturn sret;
+ GstPluginFeature *feature;
+ GstMessage *msg;
+ GstElement *pipe, *src, *dec;
+ gchar *path;
+
+ num_parse_instances = 0;
+
+ gst_plugin_register_static (GST_VERSION_MAJOR, GST_VERSION_MINOR,
+ "fakemp3parse", "fakemp3parse", plugin_init, VERSION, "LGPL",
+ "gst-plugins-base", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
+
+ feature = gst_default_registry_find_feature ("testmpegaudioparse",
+ GST_TYPE_ELEMENT_FACTORY);
+
+ gst_plugin_feature_set_rank (feature, GST_RANK_PRIMARY + 100);
+
+ pipe = gst_pipeline_new (NULL);
+
+ src = gst_element_factory_make ("filesrc", NULL);
+ fail_unless (src != NULL);
+
+ path = g_build_filename (GST_TEST_FILES_PATH, "test.mp3", NULL);
+ g_object_set (src, "location", path, NULL);
+ g_free (path);
+
+ dec = gst_element_factory_make ("decodebin2", NULL);
+ fail_unless (dec != NULL);
+
+ gst_bin_add_many (GST_BIN (pipe), src, dec, NULL);
+ gst_element_link_many (src, dec, NULL);
+
+ sret = gst_element_set_state (pipe, GST_STATE_PLAYING);
+ fail_unless_equals_int (sret, GST_STATE_CHANGE_ASYNC);
+
+ /* wait for unlinked error */
+ msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipe),
+ GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR);
+ gst_message_unref (msg);
+
+ gst_element_set_state (pipe, GST_STATE_NULL);
+ gst_object_unref (pipe);
+
+ /* make sure out parser got plugged at all though */
+ fail_unless_equals_int (num_parse_instances, 1);
+
+ /* don't want to interfere with any other of the other tests */
+ gst_plugin_feature_set_rank (feature, GST_RANK_NONE);
+ gst_object_unref (feature);
+}
+
+GST_END_TEST;
+
+/* Fake parser/decoder for parser_negotiation test */
+static GType gst_fake_h264_parser_get_type (void);
+static GType gst_fake_h264_decoder_get_type (void);
+
+#undef parent_class
+#define parent_class fake_h264_parser_parent_class
+typedef struct _GstFakeH264Parser GstFakeH264Parser;
+typedef GstElementClass GstFakeH264ParserClass;
+
+struct _GstFakeH264Parser
+{
+ GstElement parent;
+};
+
+GST_BOILERPLATE (GstFakeH264Parser, gst_fake_h264_parser, GstElement,
+ GST_TYPE_ELEMENT);
+
+static void
+gst_fake_h264_parser_base_init (gpointer klass)
+{
+ static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("video/x-h264"));
+ static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("video/x-h264, "
+ "stream-format=(string) { avc, byte-stream }"));
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+ gst_element_class_add_static_pad_template (element_class, &sink_templ);
+ gst_element_class_add_static_pad_template (element_class, &src_templ);
+ gst_element_class_set_details_simple (element_class,
+ "FakeH264Parser", "Codec/Parser/Converter/Video", "yep", "me");
+}
+
+static void
+gst_fake_h264_parser_class_init (GstFakeH264ParserClass * klass)
+{
+}
+
+static gboolean
+gst_fake_h264_parser_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+ GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+ GstPad *otherpad = gst_element_get_static_pad (self, "src");
+ GstCaps *accepted_caps;
+ GstStructure *s;
+ const gchar *stream_format;
+
+ accepted_caps = gst_pad_get_allowed_caps (otherpad);
+ accepted_caps = gst_caps_make_writable (accepted_caps);
+ gst_caps_truncate (accepted_caps);
+
+ s = gst_caps_get_structure (accepted_caps, 0);
+ stream_format = gst_structure_get_string (s, "stream-format");
+ if (!stream_format)
+ gst_structure_set (s, "stream-format", G_TYPE_STRING, "avc", NULL);
+
+ gst_pad_set_caps (otherpad, accepted_caps);
+ gst_caps_unref (accepted_caps);
+
+ gst_object_unref (otherpad);
+ gst_object_unref (self);
+
+ return TRUE;
+}
+
+static GstFlowReturn
+gst_fake_h264_parser_sink_chain (GstPad * pad, GstBuffer * buf)
+{
+ GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+ GstPad *otherpad = gst_element_get_static_pad (self, "src");
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ buf = gst_buffer_make_metadata_writable (buf);
+ gst_buffer_set_caps (buf, GST_PAD_CAPS (otherpad));
+
+ ret = gst_pad_push (otherpad, buf);
+
+ gst_object_unref (otherpad);
+ gst_object_unref (self);
+
+ return ret;
+}
+
+static void
+gst_fake_h264_parser_init (GstFakeH264Parser * self,
+ GstFakeH264ParserClass * klass)
+{
+ GstPad *pad;
+
+ pad =
+ gst_pad_new_from_template (gst_element_class_get_pad_template
+ (GST_ELEMENT_GET_CLASS (self), "sink"), "sink");
+ gst_pad_set_setcaps_function (pad, gst_fake_h264_parser_sink_setcaps);
+ gst_pad_set_chain_function (pad, gst_fake_h264_parser_sink_chain);
+ gst_element_add_pad (GST_ELEMENT (self), pad);
+
+ pad =
+ gst_pad_new_from_template (gst_element_class_get_pad_template
+ (GST_ELEMENT_GET_CLASS (self), "src"), "src");
+ gst_element_add_pad (GST_ELEMENT (self), pad);
+}
+
+#undef parent_class
+#define parent_class fake_h264_decoder_parent_class
+typedef struct _GstFakeH264Decoder GstFakeH264Decoder;
+typedef GstElementClass GstFakeH264DecoderClass;
+
+struct _GstFakeH264Decoder
+{
+ GstElement parent;
+};
+
+GST_BOILERPLATE (GstFakeH264Decoder, gst_fake_h264_decoder, GstElement,
+ GST_TYPE_ELEMENT);
+
+static void
+gst_fake_h264_decoder_base_init (gpointer klass)
+{
+ static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("video/x-h264, " "stream-format=(string) byte-stream"));
+ static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("video/x-raw-yuv"));
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+ gst_element_class_add_static_pad_template (element_class, &sink_templ);
+ gst_element_class_add_static_pad_template (element_class, &src_templ);
+ gst_element_class_set_details_simple (element_class,
+ "FakeH264Decoder", "Codec/Decoder/Video", "yep", "me");
+}
+
+static void
+gst_fake_h264_decoder_class_init (GstFakeH264DecoderClass * klass)
+{
+}
+
+static gboolean
+gst_fake_h264_decoder_sink_setcaps (GstPad * pad, GstCaps * caps)
+{
+ GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+ GstPad *otherpad = gst_element_get_static_pad (self, "src");
+
+ caps = gst_caps_new_simple ("video/x-raw-yuv", NULL);
+ gst_pad_set_caps (otherpad, caps);
+ gst_caps_unref (caps);
+
+ gst_object_unref (otherpad);
+ gst_object_unref (self);
+
+ return TRUE;
+}
+
+static GstFlowReturn
+gst_fake_h264_decoder_sink_chain (GstPad * pad, GstBuffer * buf)
+{
+ GstElement *self = GST_ELEMENT (gst_pad_get_parent (pad));
+ GstPad *otherpad = gst_element_get_static_pad (self, "src");
+ GstFlowReturn ret = GST_FLOW_OK;
+
+ buf = gst_buffer_make_metadata_writable (buf);
+ gst_buffer_set_caps (buf, GST_PAD_CAPS (otherpad));
+
+ ret = gst_pad_push (otherpad, buf);
+
+ gst_object_unref (otherpad);
+ gst_object_unref (self);
+
+ return ret;
+}
+
+static void
+gst_fake_h264_decoder_init (GstFakeH264Decoder * self,
+ GstFakeH264DecoderClass * klass)
+{
+ GstPad *pad;
+
+ pad =
+ gst_pad_new_from_template (gst_element_class_get_pad_template
+ (GST_ELEMENT_GET_CLASS (self), "sink"), "sink");
+ gst_pad_set_setcaps_function (pad, gst_fake_h264_decoder_sink_setcaps);
+ gst_pad_set_chain_function (pad, gst_fake_h264_decoder_sink_chain);
+ gst_element_add_pad (GST_ELEMENT (self), pad);
+
+ pad =
+ gst_pad_new_from_template (gst_element_class_get_pad_template
+ (GST_ELEMENT_GET_CLASS (self), "src"), "src");
+ gst_element_add_pad (GST_ELEMENT (self), pad);
+}
+
+static void
+parser_negotiation_pad_added_cb (GstElement * dec, GstPad * pad,
+ gpointer user_data)
+{
+ GstBin *pipe = user_data;
+ GstElement *sink;
+ GstPad *sinkpad;
+
+ sink = gst_element_factory_make ("fakesink", NULL);
+ gst_bin_add (pipe, sink);
+ gst_element_sync_state_with_parent (sink);
+ sinkpad = gst_element_get_static_pad (sink, "sink");
+ gst_pad_link (pad, sinkpad);
+ gst_object_unref (sinkpad);
+}
+
+GST_START_TEST (test_parser_negotiation)
+{
+ GstStateChangeReturn sret;
+ GstMessage *msg;
+ GstCaps *caps;
+ GstElement *pipe, *src, *filter, *dec;
+
+ gst_element_register (NULL, "fakeh264parse", GST_RANK_PRIMARY + 101,
+ gst_fake_h264_parser_get_type ());
+ gst_element_register (NULL, "fakeh264dec", GST_RANK_PRIMARY + 100,
+ gst_fake_h264_decoder_get_type ());
+
+ pipe = gst_pipeline_new (NULL);
+
+ src = gst_element_factory_make ("fakesrc", NULL);
+ fail_unless (src != NULL);
+ g_object_set (G_OBJECT (src), "num-buffers", 5, "sizetype", 2, "filltype", 2,
+ "can-activate-pull", FALSE, NULL);
+
+ filter = gst_element_factory_make ("capsfilter", NULL);
+ fail_unless (filter != NULL);
+ caps = gst_caps_from_string ("video/x-h264");
+ g_object_set (G_OBJECT (filter), "caps", caps, NULL);
+ gst_caps_unref (caps);
+
+ dec = gst_element_factory_make ("decodebin2", NULL);
+ fail_unless (dec != NULL);
+
+ g_signal_connect (dec, "pad-added",
+ G_CALLBACK (parser_negotiation_pad_added_cb), pipe);
+
+ gst_bin_add_many (GST_BIN (pipe), src, filter, dec, NULL);
+ gst_element_link_many (src, filter, dec, NULL);
+
+ sret = gst_element_set_state (pipe, GST_STATE_PLAYING);
+ fail_unless_equals_int (sret, GST_STATE_CHANGE_ASYNC);
+
+ /* wait for EOS or error */
+ msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipe),
+ GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
+ fail_unless (msg != NULL);
+ fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
+ gst_message_unref (msg);
+
+ gst_element_set_state (pipe, GST_STATE_NULL);
+ gst_object_unref (pipe);
+}
+
+GST_END_TEST;
+
static Suite *
decodebin2_suite (void)
{
suite_add_tcase (s, tc_chain);
tcase_add_test (tc_chain, test_text_plain_streams);
tcase_add_test (tc_chain, test_reuse_without_decoders);
+ tcase_add_test (tc_chain, test_mp3_parser_loop);
+ tcase_add_test (tc_chain, test_parser_negotiation);
return s;
}
guint32 b_mask, guint32 a_mask, guint8 r_expected, guint8 g_expected,
guint8 b_expected, guint endianness, guint bpp, guint depth)
{
- guint32 pixel, red, green, blue, alpha;
+ guint32 pixel, red, green, blue;
switch (bpp) {
case 32:{
red = right_shift_colour (r_mask, pixel);
green = right_shift_colour (g_mask, pixel);
blue = right_shift_colour (b_mask, pixel);
- alpha = right_shift_colour (a_mask, pixel);
+ /* alpha = right_shift_colour (a_mask, pixel); */
/* can't enable this by default, valgrind will complain about accessing
* uninitialised memory for the depth=24,bpp=32 formats ... */
gst_event_new_new_segment (TRUE, 1.0, GST_FORMAT_BYTES, 8800, -1,
0))) {
GST_LOG ("seek ok");
- /* make sure that that new position is reported immediately */
+ /* make sure that new position is reported immediately */
CHECK_QUERY_POSITION (gnomevfssink, GST_FORMAT_BYTES, 8800);
PUSH_BYTES (1);
CHECK_QUERY_POSITION (gnomevfssink, GST_FORMAT_BYTES, 8801);
);
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_static_pad_template (element_class, &src_templ);
gst_element_class_set_details_simple (element_class,
"Red Video Src", "Source/Video", "yep", "me");
}
);
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_static_pad_template (element_class, &src_templ);
gst_element_class_set_details_simple (element_class,
"Codec Src", "Source/Video", "yep", "me");
}
--- /dev/null
+/* GStreamer unit tests for playbin2 compressed stream support
+ *
+ * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2010 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ *
+ * 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 <gst/check/gstcheck.h>
+#include <gst/base/gstpushsrc.h>
+#include <gst/base/gstbasesink.h>
+#include <gst/interfaces/streamvolume.h>
+
+#ifndef GST_DISABLE_REGISTRY
+
+#define NBUFFERS 100
+
+static GType gst_caps_src_get_type (void);
+static GType gst_codec_demuxer_get_type (void);
+static GType gst_codec_sink_get_type (void);
+static GType gst_audio_codec_sink_get_type (void);
+static GType gst_video_codec_sink_get_type (void);
+
+#undef parent_class
+#define parent_class caps_src_parent_class
+typedef struct _GstCapsSrc GstCapsSrc;
+typedef GstPushSrcClass GstCapsSrcClass;
+
+struct _GstCapsSrc
+{
+ GstPushSrc parent;
+
+ GstCaps *caps;
+ gchar *uri;
+ gint nbuffers;
+};
+
+static GstURIType
+gst_caps_src_uri_get_type (void)
+{
+ return GST_URI_SRC;
+}
+
+static gchar **
+gst_caps_src_uri_get_protocols (void)
+{
+ static gchar *protocols[] = { (char *) "caps", NULL };
+
+ return protocols;
+}
+
+static const gchar *
+gst_caps_src_uri_get_uri (GstURIHandler * handler)
+{
+ GstCapsSrc *src = (GstCapsSrc *) handler;
+
+ return src->uri;
+}
+
+static gboolean
+gst_caps_src_uri_set_uri (GstURIHandler * handler, const gchar * uri)
+{
+ GstCapsSrc *src = (GstCapsSrc *) handler;
+
+ if (uri == NULL || !g_str_has_prefix (uri, "caps:"))
+ return FALSE;
+
+ g_free (src->uri);
+ src->uri = g_strdup (uri);
+
+ if (src->caps)
+ gst_caps_unref (src->caps);
+ src->caps = NULL;
+
+ return TRUE;
+}
+
+static void
+gst_caps_src_uri_handler_init (gpointer g_iface, gpointer iface_data)
+{
+ GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface;
+
+ iface->get_type = gst_caps_src_uri_get_type;
+ iface->get_protocols = gst_caps_src_uri_get_protocols;
+ iface->get_uri = gst_caps_src_uri_get_uri;
+ iface->set_uri = gst_caps_src_uri_set_uri;
+}
+
+static void
+gst_caps_src_init_type (GType type)
+{
+ static const GInterfaceInfo uri_hdlr_info = {
+ gst_caps_src_uri_handler_init, NULL, NULL
+ };
+
+ g_type_add_interface_static (type, GST_TYPE_URI_HANDLER, &uri_hdlr_info);
+}
+
+GST_BOILERPLATE_FULL (GstCapsSrc, gst_caps_src, GstPushSrc,
+ GST_TYPE_PUSH_SRC, gst_caps_src_init_type);
+
+static void
+gst_caps_src_base_init (gpointer klass)
+{
+ static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
+ GST_PAD_SRC, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS_ANY);
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+ gst_element_class_add_static_pad_template (element_class, &src_templ);
+ gst_element_class_set_details_simple (element_class,
+ "CapsSource", "Source/Generic", "yep", "me");
+}
+
+static void
+gst_caps_src_finalize (GObject * object)
+{
+ GstCapsSrc *src = (GstCapsSrc *) object;
+
+ if (src->caps)
+ gst_caps_unref (src->caps);
+ src->caps = NULL;
+ g_free (src->uri);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static GstFlowReturn
+gst_caps_src_create (GstPushSrc * psrc, GstBuffer ** p_buf)
+{
+ GstCapsSrc *src = (GstCapsSrc *) psrc;
+ GstBuffer *buf;
+
+ if (src->nbuffers >= NBUFFERS) {
+ return GST_FLOW_UNEXPECTED;
+ }
+
+ if (!src->caps) {
+ if (!src->uri) {
+ return GST_FLOW_ERROR;
+ }
+
+ src->caps = gst_caps_from_string (src->uri + sizeof ("caps"));
+ if (!src->caps) {
+ return GST_FLOW_ERROR;
+ }
+ }
+
+ buf = gst_buffer_new ();
+ gst_buffer_set_caps (buf, src->caps);
+ GST_BUFFER_TIMESTAMP (buf) =
+ gst_util_uint64_scale (src->nbuffers, GST_SECOND, 25);
+ src->nbuffers++;
+
+ *p_buf = buf;
+ return GST_FLOW_OK;
+}
+
+static void
+gst_caps_src_class_init (GstCapsSrcClass * klass)
+{
+ GObjectClass *gobject_class = (GObjectClass *) klass;
+ GstPushSrcClass *pushsrc_class = (GstPushSrcClass *) klass;
+
+ gobject_class->finalize = gst_caps_src_finalize;
+ pushsrc_class->create = gst_caps_src_create;
+}
+
+static void
+gst_caps_src_init (GstCapsSrc * src, GstCapsSrcClass * klass)
+{
+ gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME);
+}
+
+#undef parent_class
+#define parent_class codec_sink_parent_class
+
+typedef struct _GstCodecSink GstCodecSink;
+typedef GstBaseSinkClass GstCodecSinkClass;
+
+struct _GstCodecSink
+{
+ GstBaseSink parent;
+
+ gboolean audio;
+ gboolean raw;
+ gint n_raw, n_compressed;
+};
+
+GST_BOILERPLATE (GstCodecSink, gst_codec_sink, GstBaseSink, GST_TYPE_BASE_SINK);
+
+static void
+gst_codec_sink_base_init (gpointer klass)
+{
+}
+
+static gboolean
+gst_codec_sink_start (GstBaseSink * bsink)
+{
+ GstCodecSink *sink = (GstCodecSink *) bsink;
+
+ sink->n_raw = 0;
+ sink->n_compressed = 0;
+
+ return TRUE;
+}
+
+static GstFlowReturn
+gst_codec_sink_render (GstBaseSink * bsink, GstBuffer * buffer)
+{
+ GstCodecSink *sink = (GstCodecSink *) bsink;
+
+ if (sink->raw)
+ sink->n_raw++;
+ else
+ sink->n_compressed++;
+
+ return GST_FLOW_OK;
+}
+
+static void
+gst_codec_sink_class_init (GstCodecSinkClass * klass)
+{
+ GstBaseSinkClass *basesink_class = (GstBaseSinkClass *) klass;
+
+ basesink_class->start = gst_codec_sink_start;
+ basesink_class->render = gst_codec_sink_render;
+}
+
+static void
+gst_codec_sink_init (GstCodecSink * sink, GstCodecSinkClass * klass)
+{
+}
+
+#undef parent_class
+#define parent_class audio_codec_sink_parent_class
+
+typedef GstCodecSink GstAudioCodecSink;
+typedef GstCodecSinkClass GstAudioCodecSinkClass;
+
+static void
+gst_audio_codec_sink_init_type (GType type)
+{
+ static const GInterfaceInfo svol_iface_info = {
+ NULL, NULL, NULL
+ };
+
+ g_type_add_interface_static (type, GST_TYPE_STREAM_VOLUME, &svol_iface_info);
+}
+
+GST_BOILERPLATE_FULL (GstAudioCodecSink, gst_audio_codec_sink, GstBaseSink,
+ gst_codec_sink_get_type (), gst_audio_codec_sink_init_type);
+
+static void
+gst_audio_codec_sink_base_init (gpointer klass)
+{
+ static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("audio/x-raw-int; audio/x-compressed")
+ );
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+ gst_element_class_add_static_pad_template (element_class, &sink_templ);
+ gst_element_class_set_details_simple (element_class,
+ "AudioCodecSink", "Sink/Audio", "yep", "me");
+}
+
+static void
+gst_audio_codec_sink_set_property (GObject * object,
+ guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+ switch (prop_id) {
+ case 1:
+ case 2:
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+gst_audio_codec_sink_get_property (GObject * object,
+ guint prop_id, GValue * value, GParamSpec * pspec)
+{
+
+ switch (prop_id) {
+ case 1:
+ g_value_set_double (value, 1.0);
+ break;
+ case 2:
+ g_value_set_boolean (value, FALSE);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static gboolean
+gst_audio_codec_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+ GstAudioCodecSink *sink = (GstAudioCodecSink *) bsink;
+ GstStructure *s;
+
+ s = gst_caps_get_structure (caps, 0);
+
+ if (gst_structure_has_name (s, "audio/x-raw-int")) {
+ sink->raw = TRUE;
+ } else if (gst_structure_has_name (s, "audio/x-compressed")) {
+ sink->raw = FALSE;
+ } else {
+ fail_unless (gst_structure_has_name (s, "audio/x-raw-int")
+ || gst_structure_has_name (s, "audio/x-compressed"));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+gst_audio_codec_sink_class_init (GstAudioCodecSinkClass * klass)
+{
+ GObjectClass *gobject_class = (GObjectClass *) klass;
+ GstBaseSinkClass *basesink_class = (GstBaseSinkClass *) klass;
+
+ gobject_class->set_property = gst_audio_codec_sink_set_property;
+ gobject_class->get_property = gst_audio_codec_sink_get_property;
+
+ g_object_class_install_property (gobject_class,
+ 1,
+ g_param_spec_double ("volume", "Volume",
+ "Linear volume of this stream, 1.0=100%", 0.0, 10.0,
+ 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (gobject_class,
+ 2,
+ g_param_spec_boolean ("mute", "Mute",
+ "Mute", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ basesink_class->set_caps = gst_audio_codec_sink_set_caps;
+}
+
+static void
+gst_audio_codec_sink_init (GstAudioCodecSink * sink,
+ GstAudioCodecSinkClass * klass)
+{
+ sink->audio = TRUE;
+}
+
+#undef parent_class
+#define parent_class video_codec_sink_parent_class
+
+typedef GstCodecSink GstVideoCodecSink;
+typedef GstCodecSinkClass GstVideoCodecSinkClass;
+
+GST_BOILERPLATE (GstVideoCodecSink, gst_video_codec_sink, GstBaseSink,
+ gst_codec_sink_get_type ());
+
+static void
+gst_video_codec_sink_base_init (gpointer klass)
+{
+ static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("video/x-raw-yuv; video/x-compressed")
+ );
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+ gst_element_class_add_static_pad_template (element_class, &sink_templ);
+ gst_element_class_set_details_simple (element_class,
+ "VideoCodecSink", "Sink/Video", "yep", "me");
+}
+
+static gboolean
+gst_video_codec_sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
+{
+ GstVideoCodecSink *sink = (GstVideoCodecSink *) bsink;
+ GstStructure *s;
+
+ s = gst_caps_get_structure (caps, 0);
+
+ if (gst_structure_has_name (s, "video/x-raw-yuv")) {
+ sink->raw = TRUE;
+ } else if (gst_structure_has_name (s, "video/x-compressed")) {
+ sink->raw = FALSE;
+ } else {
+ fail_unless (gst_structure_has_name (s, "video/x-raw-yuv")
+ || gst_structure_has_name (s, "video/x-compressed"));
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static void
+gst_video_codec_sink_class_init (GstVideoCodecSinkClass * klass)
+{
+ GstBaseSinkClass *basesink_class = (GstBaseSinkClass *) klass;
+
+ basesink_class->set_caps = gst_video_codec_sink_set_caps;
+}
+
+static void
+gst_video_codec_sink_init (GstVideoCodecSink * sink,
+ GstVideoCodecSinkClass * klass)
+{
+ sink->audio = FALSE;
+}
+
+#undef parent_class
+#define parent_class codec_demuxer_parent_class
+typedef struct _GstCodecDemuxer GstCodecDemuxer;
+typedef GstElementClass GstCodecDemuxerClass;
+
+struct _GstCodecDemuxer
+{
+ GstElement parent;
+
+ GstPad *sinkpad;
+ GstPad *srcpad0, *srcpad1;
+
+ GstEvent *newseg_event;
+};
+
+GST_BOILERPLATE (GstCodecDemuxer, gst_codec_demuxer, GstElement,
+ GST_TYPE_ELEMENT);
+
+#define STREAM_TYPES "{ " \
+ "none, " \
+ "raw-audio, " \
+ "compressed-audio, " \
+ "raw-video, " \
+ "compressed-video " \
+ "}"
+
+static void
+gst_codec_demuxer_base_init (gpointer klass)
+{
+ static GstStaticPadTemplate sink_templ = GST_STATIC_PAD_TEMPLATE ("sink",
+ GST_PAD_SINK, GST_PAD_ALWAYS,
+ GST_STATIC_CAPS ("application/x-container,"
+ " stream0 = (string)" STREAM_TYPES " ,"
+ " stream1 = (string)" STREAM_TYPES)
+ );
+ static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src_%d",
+ GST_PAD_SRC, GST_PAD_SOMETIMES,
+ GST_STATIC_CAPS ("audio/x-raw-int; audio/x-compressed; "
+ "video/x-raw-yuv; video/x-compressed")
+ );
+ GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+
+ gst_element_class_add_static_pad_template (element_class, &sink_templ);
+ gst_element_class_add_static_pad_template (element_class, &src_templ);
+ gst_element_class_set_details_simple (element_class,
+ "CodecDemuxer", "Codec/Demuxer", "yep", "me");
+}
+
+static void
+gst_codec_demuxer_finalize (GObject * object)
+{
+ GstCodecDemuxer *demux = (GstCodecDemuxer *) object;
+
+ if (demux->newseg_event)
+ gst_event_unref (demux->newseg_event);
+ demux->newseg_event = NULL;
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_codec_demuxer_class_init (GstCodecDemuxerClass * klass)
+{
+ GObjectClass *gobject_class = (GObjectClass *) klass;
+
+ gobject_class->finalize = gst_codec_demuxer_finalize;
+}
+
+static GstFlowReturn
+gst_codec_demuxer_chain (GstPad * pad, GstBuffer * buf)
+{
+ GstCodecDemuxer *demux = (GstCodecDemuxer *) GST_PAD_PARENT (pad);
+ GstFlowReturn ret0 = GST_FLOW_OK, ret1 = GST_FLOW_OK;
+
+ if (demux->srcpad0) {
+ GstBuffer *outbuf = gst_buffer_new ();
+
+ GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf);
+ gst_buffer_set_caps (outbuf, GST_PAD_CAPS (demux->srcpad0));
+ ret0 = gst_pad_push (demux->srcpad0, outbuf);
+ }
+ if (demux->srcpad1) {
+ GstBuffer *outbuf = gst_buffer_new ();
+
+ GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf);
+ gst_buffer_set_caps (outbuf, GST_PAD_CAPS (demux->srcpad1));
+ ret1 = gst_pad_push (demux->srcpad1, outbuf);
+ }
+ gst_buffer_unref (buf);
+
+ if (ret0 == GST_FLOW_NOT_LINKED && ret1 == GST_FLOW_NOT_LINKED)
+ return GST_FLOW_NOT_LINKED;
+ if (ret0 == GST_FLOW_OK && ret1 == GST_FLOW_OK)
+ return GST_FLOW_OK;
+
+ return MIN (ret0, ret1);
+}
+
+static gboolean
+gst_codec_demuxer_event (GstPad * pad, GstEvent * event)
+{
+ GstCodecDemuxer *demux = (GstCodecDemuxer *) gst_pad_get_parent (pad);
+ gboolean ret = TRUE;
+
+ /* The single newsegment event is pushed when the pads are created */
+ if (GST_EVENT_TYPE (event) != GST_EVENT_NEWSEGMENT) {
+ if (demux->srcpad0)
+ ret = ret && gst_pad_push_event (demux->srcpad0, gst_event_ref (event));
+ if (demux->srcpad1)
+ ret = ret && gst_pad_push_event (demux->srcpad1, gst_event_ref (event));
+ } else {
+ gst_event_replace (&demux->newseg_event, event);
+ }
+
+ gst_event_unref (event);
+
+ gst_object_unref (demux);
+ return ret;
+}
+
+static void
+gst_codec_demuxer_setup_pad (GstCodecDemuxer * demux, GstPad ** pad,
+ const gchar * streaminfo)
+{
+ if (g_str_equal (streaminfo, "none")) {
+ if (*pad) {
+ gst_pad_set_active (*pad, FALSE);
+ gst_element_remove_pad (GST_ELEMENT (demux), *pad);
+ *pad = NULL;
+ }
+ } else {
+ GstCaps *caps;
+
+ if (!*pad) {
+ GstPadTemplate *templ;
+
+ templ =
+ gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (demux),
+ "src_%d");
+ if (pad == &demux->srcpad0)
+ *pad = gst_pad_new_from_template (templ, "src_0");
+ else
+ *pad = gst_pad_new_from_template (templ, "src_1");
+ gst_pad_set_active (*pad, TRUE);
+ gst_pad_use_fixed_caps (*pad);
+ gst_element_add_pad (GST_ELEMENT (demux), *pad);
+ }
+
+ if (g_str_equal (streaminfo, "raw-video")) {
+ caps = gst_caps_new_simple ("video/x-raw-yuv",
+ "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('I', '4', '2', '0'),
+ "width", G_TYPE_INT, 320,
+ "height", G_TYPE_INT, 240,
+ "framerate", GST_TYPE_FRACTION, 25, 1,
+ "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1, NULL);
+ } else if (g_str_equal (streaminfo, "compressed-video")) {
+ caps = gst_caps_new_simple ("video/x-compressed", NULL);
+ } else if (g_str_equal (streaminfo, "raw-audio")) {
+ caps = gst_caps_new_simple ("audio/x-raw-int",
+ "rate", G_TYPE_INT, 48000,
+ "channels", G_TYPE_INT, 2,
+ "endianness", G_TYPE_INT, G_LITTLE_ENDIAN,
+ "width", G_TYPE_INT, 16,
+ "depth", G_TYPE_INT, 16, "signed", G_TYPE_BOOLEAN, TRUE, NULL);
+ } else {
+ caps = gst_caps_new_simple ("audio/x-compressed", NULL);
+ }
+ gst_pad_set_caps (*pad, caps);
+ gst_caps_unref (caps);
+
+ if (demux->newseg_event)
+ gst_pad_push_event (*pad, gst_event_ref (demux->newseg_event));
+ }
+}
+
+static gboolean
+gst_codec_demuxer_setcaps (GstPad * pad, GstCaps * caps)
+{
+ GstCodecDemuxer *demux = (GstCodecDemuxer *) gst_pad_get_parent (pad);
+ GstStructure *s;
+ const gchar *streaminfo;
+
+ s = gst_caps_get_structure (caps, 0);
+
+ streaminfo = gst_structure_get_string (s, "stream0");
+ gst_codec_demuxer_setup_pad (demux, &demux->srcpad0, streaminfo);
+
+ streaminfo = gst_structure_get_string (s, "stream1");
+ gst_codec_demuxer_setup_pad (demux, &demux->srcpad1, streaminfo);
+
+ gst_object_unref (demux);
+ return TRUE;
+}
+
+static void
+gst_codec_demuxer_init (GstCodecDemuxer * demux, GstCodecDemuxerClass * klass)
+{
+ GstPadTemplate *templ;
+
+ templ = gst_element_class_get_pad_template (klass, "sink");
+ demux->sinkpad = gst_pad_new_from_template (templ, "sink");
+ gst_pad_set_setcaps_function (demux->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_codec_demuxer_setcaps));
+ gst_pad_set_chain_function (demux->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_codec_demuxer_chain));
+ gst_pad_set_event_function (demux->sinkpad,
+ GST_DEBUG_FUNCPTR (gst_codec_demuxer_event));
+ gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad);
+}
+
+/****
+ * Start of the tests
+ ***/
+
+static GstElement *
+create_playbin (const gchar * uri, gboolean set_sink)
+{
+ GstElement *playbin, *sink;
+
+ playbin = gst_element_factory_make ("playbin2", "playbin2");
+ fail_unless (playbin != NULL, "Failed to create playbin element");
+
+ if (set_sink) {
+ sink = gst_element_factory_make ("videocodecsink", NULL);
+ fail_unless (sink != NULL, "Failed to create videocodecsink element");
+
+ /* Set sync to FALSE to prevent buffers from being dropped because
+ * they're too late */
+ g_object_set (sink, "sync", FALSE, NULL);
+
+ g_object_set (playbin, "video-sink", sink, NULL);
+
+ sink = gst_element_factory_make ("audiocodecsink", NULL);
+ fail_unless (sink != NULL, "Failed to create audiocodecsink");
+
+ /* Set sync to FALSE to prevent buffers from being dropped because
+ * they're too late */
+ g_object_set (sink, "sync", FALSE, NULL);
+
+ g_object_set (playbin, "audio-sink", sink, NULL);
+ }
+
+ g_object_set (playbin, "uri", uri, NULL);
+
+ return playbin;
+}
+
+GST_START_TEST (test_raw_single_video_stream_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin =
+ create_playbin
+ ("caps:video/x-raw-yuv, "
+ "format=(fourcc)I420, "
+ "width=(int)320, "
+ "height=(int)240, "
+ "framerate=(fraction)0/1, " "pixel-aspect-ratio=(fraction)1/1", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == TRUE);
+ fail_unless_equals_int (csink->n_raw, NBUFFERS);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_video_stream_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:video/x-compressed", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_single_video_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-video, " "stream1=(string)none", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == TRUE);
+ fail_unless_equals_int (csink->n_raw, NBUFFERS);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_video_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)compressed-video, " "stream1=(string)none", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_single_audio_stream_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin =
+ create_playbin
+ ("caps:audio/x-raw-int,"
+ " rate=(int)48000, "
+ " channels=(int)2, "
+ " endianness=(int)LITTLE_ENDIAN, "
+ " width=(int)16, " " depth=(int)16, " " signed=(bool)TRUE", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == TRUE);
+ fail_unless_equals_int (csink->n_raw, NBUFFERS);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_audio_stream_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:audio/x-compressed", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_single_audio_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-audio, " "stream1=(string)none", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == TRUE);
+ fail_unless_equals_int (csink->n_raw, NBUFFERS);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_single_audio_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)compressed-audio, " "stream1=(string)none", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_audio_video_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-audio, " "stream1=(string)raw-video", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == TRUE);
+ fail_unless_equals_int (csink->n_raw, NBUFFERS);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == TRUE);
+ fail_unless_equals_int (csink->n_raw, NBUFFERS);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_audio_video_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)compressed-audio, " "stream1=(string)compressed-video",
+ TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->raw == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_compressed_video_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-video, " "stream1=(string)compressed-video", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless_equals_int (csink->n_raw + csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_compressed_audio_stream_demuxer_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-audio, " "stream1=(string)compressed-audio", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless_equals_int (csink->n_raw + csink->n_compressed, NBUFFERS);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+#if 0
+typedef struct
+{
+ GstElement *playbin;
+ GstElement *sink;
+} SwitchBufferProbeCtx;
+
+static gboolean
+switch_video_buffer_probe (GstPad * pad, GstBuffer * buffer,
+ SwitchBufferProbeCtx * ctx)
+{
+ GstElement *playbin = ctx->playbin;
+ GstVideoCodecSink *sink = (GstVideoCodecSink *) ctx->sink;
+
+ if (sink->n_raw + sink->n_compressed == NBUFFERS / 2) {
+ gint cur_video;
+
+ g_object_get (G_OBJECT (playbin), "current-video", &cur_video, NULL);
+ cur_video = (cur_video == 0) ? 1 : 0;
+ g_object_set (G_OBJECT (playbin), "current-video", cur_video, NULL);
+ }
+
+ return TRUE;
+}
+
+GST_START_TEST (test_raw_compressed_video_stream_demuxer_switch_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-video, " "stream1=(string)compressed-video", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->n_raw > 0);
+ fail_unless (csink->n_compressed > 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_raw_video_stream_demuxer_switch_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)compressed-video, " "stream1=(string)raw-video", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->n_raw > 0);
+ fail_unless (csink->n_compressed > 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_raw_video_stream_demuxer_switch_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-video, " "stream1=(string)raw-video", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless (csink->n_raw > 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST
+ (test_compressed_compressed_video_stream_demuxer_switch_manual_sink) {
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)compressed-video, " "stream1=(string)compressed-video",
+ TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_video_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless (csink->n_compressed > 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+static gboolean
+switch_audio_buffer_probe (GstPad * pad, GstBuffer * buffer,
+ SwitchBufferProbeCtx * ctx)
+{
+ GstElement *playbin = ctx->playbin;
+ GstAudioCodecSink *sink = (GstAudioCodecSink *) ctx->sink;
+
+ if (sink->n_raw + sink->n_compressed == NBUFFERS / 3) {
+ gint cur_audio;
+
+ g_object_get (G_OBJECT (playbin), "current-audio", &cur_audio, NULL);
+ cur_audio = (cur_audio == 0) ? 1 : 0;
+ g_object_set (G_OBJECT (playbin), "current-audio", cur_audio, NULL);
+ }
+
+ return TRUE;
+}
+
+GST_START_TEST (test_raw_compressed_audio_stream_demuxer_switch_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-audio, " "stream1=(string)compressed-audio", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->n_raw > 0);
+ fail_unless (csink->n_compressed > 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_compressed_raw_audio_stream_demuxer_switch_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)compressed-audio, " "stream1=(string)raw-audio", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->n_raw > 0);
+ fail_unless (csink->n_compressed > 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_raw_raw_audio_stream_demuxer_switch_manual_sink)
+{
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)raw-audio, " "stream1=(string)raw-audio", TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless (csink->n_raw > 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
+GST_START_TEST
+ (test_compressed_compressed_audio_stream_demuxer_switch_manual_sink) {
+ GstMessage *msg;
+ GstElement *playbin;
+ GstElement *sink;
+ GstBus *bus;
+ gboolean done = FALSE;
+ GstPad *pad;
+ SwitchBufferProbeCtx switch_ctx;
+
+ fail_unless (gst_element_register (NULL, "capssrc", GST_RANK_PRIMARY,
+ gst_caps_src_get_type ()));
+ fail_unless (gst_element_register (NULL, "codecdemuxer",
+ GST_RANK_PRIMARY + 100, gst_codec_demuxer_get_type ()));
+ fail_unless (gst_element_register (NULL, "audiocodecsink",
+ GST_RANK_PRIMARY + 100, gst_audio_codec_sink_get_type ()));
+ fail_unless (gst_element_register (NULL, "videocodecsink",
+ GST_RANK_PRIMARY + 100, gst_video_codec_sink_get_type ()));
+
+ playbin = create_playbin ("caps:application/x-container, "
+ "stream0=(string)compressed-audio, " "stream1=(string)compressed-audio",
+ TRUE);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_READY),
+ GST_STATE_CHANGE_SUCCESS);
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ pad = gst_element_get_static_pad (sink, "sink");
+ fail_unless (pad != NULL);
+ switch_ctx.playbin = playbin;
+ switch_ctx.sink = sink;
+ gst_pad_add_buffer_probe (pad, G_CALLBACK (switch_audio_buffer_probe),
+ &switch_ctx);
+ gst_object_unref (pad);
+ gst_object_unref (sink);
+
+ fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PLAYING),
+ GST_STATE_CHANGE_ASYNC);
+
+ bus = gst_element_get_bus (playbin);
+
+ while (!done) {
+ msg = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
+
+ switch (GST_MESSAGE_TYPE (msg)) {
+ case GST_MESSAGE_EOS:
+ done = TRUE;
+ break;
+ case GST_MESSAGE_ERROR:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+ break;
+ case GST_MESSAGE_WARNING:
+ fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_WARNING);
+ break;
+ default:
+ break;
+ }
+ gst_message_unref (msg);
+ }
+ gst_object_unref (bus);
+
+ g_object_get (G_OBJECT (playbin), "video-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstVideoCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_video_codec_sink_get_type ());
+ csink = (GstVideoCodecSink *) sink;
+ fail_unless (csink->audio == FALSE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless_equals_int (csink->n_compressed, 0);
+ gst_object_unref (sink);
+ }
+
+ g_object_get (G_OBJECT (playbin), "audio-sink", &sink, NULL);
+ fail_unless (sink != NULL);
+ {
+ GstAudioCodecSink *csink;
+
+ fail_unless (G_TYPE_FROM_INSTANCE (sink) ==
+ gst_audio_codec_sink_get_type ());
+ csink = (GstAudioCodecSink *) sink;
+ fail_unless (csink->audio == TRUE);
+ fail_unless_equals_int (csink->n_raw, 0);
+ fail_unless (csink->n_compressed > 0);
+ gst_object_unref (sink);
+ }
+
+ gst_element_set_state (playbin, GST_STATE_NULL);
+ gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+#endif
+#endif
+
+static Suite *
+playbin2_compressed_suite (void)
+{
+ Suite *s = suite_create ("playbin2-compressed");
+ TCase *tc_chain = tcase_create ("general");
+
+ suite_add_tcase (s, tc_chain);
+
+#ifndef GST_DISABLE_REGISTRY
+ tcase_add_test (tc_chain, test_raw_single_video_stream_manual_sink);
+ tcase_add_test (tc_chain, test_raw_single_audio_stream_manual_sink);
+ tcase_add_test (tc_chain, test_compressed_single_video_stream_manual_sink);
+ tcase_add_test (tc_chain, test_compressed_single_audio_stream_manual_sink);
+
+ tcase_add_test (tc_chain, test_raw_single_video_stream_demuxer_manual_sink);
+ tcase_add_test (tc_chain, test_raw_single_audio_stream_demuxer_manual_sink);
+ tcase_add_test (tc_chain,
+ test_compressed_single_video_stream_demuxer_manual_sink);
+ tcase_add_test (tc_chain,
+ test_compressed_single_audio_stream_demuxer_manual_sink);
+
+ tcase_add_test (tc_chain, test_raw_audio_video_stream_demuxer_manual_sink);
+ tcase_add_test (tc_chain,
+ test_compressed_audio_video_stream_demuxer_manual_sink);
+
+ tcase_add_test (tc_chain,
+ test_raw_compressed_audio_stream_demuxer_manual_sink);
+ tcase_add_test (tc_chain,
+ test_raw_compressed_video_stream_demuxer_manual_sink);
+
+ /* These tests need something like the stream-activate event
+ * and are racy otherwise */
+#if 0
+ tcase_add_test (tc_chain,
+ test_raw_raw_audio_stream_demuxer_switch_manual_sink);
+ tcase_add_test (tc_chain,
+ test_raw_compressed_audio_stream_demuxer_switch_manual_sink);
+ tcase_add_test (tc_chain,
+ test_compressed_raw_audio_stream_demuxer_switch_manual_sink);
+ tcase_add_test (tc_chain,
+ test_compressed_compressed_audio_stream_demuxer_switch_manual_sink);
+ tcase_add_test (tc_chain,
+ test_raw_raw_video_stream_demuxer_switch_manual_sink);
+ tcase_add_test (tc_chain,
+ test_raw_compressed_video_stream_demuxer_switch_manual_sink);
+ tcase_add_test (tc_chain,
+ test_compressed_raw_video_stream_demuxer_switch_manual_sink);
+ tcase_add_test (tc_chain,
+ test_compressed_compressed_video_stream_demuxer_switch_manual_sink);
+#endif
+#endif
+
+ return s;
+}
+
+GST_CHECK_MAIN (playbin2_compressed);
);
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_static_pad_template (element_class, &src_templ);
gst_element_class_set_details_simple (element_class,
"Red Video Src", "Source/Video", "yep", "me");
}
);
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_static_pad_template (element_class, &src_templ);
gst_element_class_set_details_simple (element_class,
"Codec Src", "Source/Video", "yep", "me");
}
/* pushing gives away one of the two references we have ... */
fail_unless (gst_pad_push (myvideosrcpad, inbuffer) == GST_FLOW_OK);
- /* should have been discareded as out-of-segment since it has no timestamp */
+ /* should have been discarded as out-of-segment since it has no timestamp */
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
fail_unless_equals_int (g_list_length (buffers), 0);
GST_END_TEST;
+
+/* Caps negotiation tests */
+typedef struct
+{
+ const gchar *caps;
+ gboolean drop_only;
+ int max_rate;
+ /* Result of the videomaxrate caps after transforming */
+ const gchar *expected_sink_caps;
+ const gchar *expected_src_caps;
+} TestInfo;
+
+static TestInfo caps_negotiation_tests[] = {
+ {
+ .caps = "video/x-raw-yuv",
+ .drop_only = FALSE,
+ .expected_sink_caps = "video/x-raw-yuv",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+ {
+ .caps = "video/x-raw-yuv",
+ .drop_only = FALSE,
+ .max_rate = 15,
+ .expected_sink_caps = "video/x-raw-yuv",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+ {
+ .caps = "video/x-raw-yuv",
+ .drop_only = TRUE,
+ .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+ {
+ .caps = "video/x-raw-yuv",
+ .drop_only = TRUE,
+ .max_rate = 15,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 15];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+
+
+ {
+ .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .drop_only = FALSE,
+ .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .drop_only = FALSE,
+ .max_rate = 15,
+ .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .drop_only = TRUE,
+ .expected_sink_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .drop_only = TRUE,
+ .max_rate = 15,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 15];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps = "video/x-raw-yuv, framerate=(fraction)[0/1, 15]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=15/1",
+ .drop_only = FALSE,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=15/1",
+ .drop_only = FALSE,
+ .max_rate = 20,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=15/1",
+ .drop_only = TRUE,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+ "video/x-raw-yuv, framerate=(fraction)0/1",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 15/1]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=15/1",
+ .drop_only = TRUE,
+ .max_rate = 20,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+ "video/x-raw-yuv, framerate=(fraction)0/1",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 15/1];"},
+ {
+ .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+ .drop_only = FALSE,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];"},
+ {
+ .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+ .drop_only = FALSE,
+ .max_rate = 20,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 20/1];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1];"},
+ {
+ .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+ .drop_only = TRUE,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+ "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+ "video/x-raw-yuv, framerate=(fraction)0/1",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 30/1]"},
+ {
+ .caps = "video/x-raw-yuv, framerate=[15/1, 30/1]",
+ .drop_only = TRUE,
+ .max_rate = 20,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 20/1];"
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 30/1];"
+ "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+ "video/x-raw-yuv, framerate=(fraction)0/1",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)[15/1, 20/1];"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1]"},
+ {
+ .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+ .drop_only = FALSE,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX]"},
+ {
+ .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+ .drop_only = FALSE,
+ .max_rate = 20,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, MAX];",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1];"},
+ {
+ .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+ .drop_only = TRUE,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+ "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+ "video/x-raw-yuv, framerate=(fraction)0/1",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 30/1];"},
+ {
+ .caps = "video/x-raw-yuv, framerate={15/1, 30/1}",
+ .drop_only = TRUE,
+ .max_rate = 20,
+ .expected_sink_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction){15/1, 30/1};"
+ "video/x-raw-yuv, framerate=(fraction)[15/1, MAX];"
+ "video/x-raw-yuv, framerate=(fraction)0/1",
+ .expected_src_caps =
+ "video/x-raw-yuv, framerate=(fraction)15/1;"
+ "video/x-raw-yuv, framerate=(fraction)[0/1, 20/1]"},
+};
+
+static GstCaps *
+_getcaps_function (GstPad * pad)
+{
+ GstCaps *caps = g_object_get_data (G_OBJECT (pad), "caps");
+
+ fail_unless (caps != NULL);
+
+ return gst_caps_copy (caps);
+}
+
+static void
+check_caps_identical (GstCaps * a, GstCaps * b, const char *name)
+{
+ int i;
+
+ if (gst_caps_get_size (a) != gst_caps_get_size (b))
+ goto fail;
+
+ for (i = 0; i < gst_caps_get_size (a); i++) {
+ GstStructure *sa, *sb;
+
+ sa = gst_caps_get_structure (a, i);
+ sb = gst_caps_get_structure (b, i);
+
+ if (!gst_structure_is_equal (sa, sb))
+ goto fail;
+ }
+
+ return;
+
+fail:
+ fail ("%s caps (%s) is not equal to caps (%s)",
+ name, gst_caps_to_string (a), gst_caps_to_string (b));
+}
+
+static void
+check_peer_caps (GstPad * pad, const char *expected, const char *name)
+{
+ GstCaps *caps;
+ GstCaps *expected_caps;
+
+ caps = gst_pad_peer_get_caps (pad);
+ fail_unless (caps != NULL);
+
+ expected_caps = gst_caps_from_string (expected);
+ fail_unless (expected_caps != NULL);
+
+ check_caps_identical (caps, expected_caps, name);
+
+ gst_caps_unref (caps);
+ gst_caps_unref (expected_caps);
+}
+
+GST_START_TEST (test_caps_negotiation)
+{
+ GstElement *videorate;
+ GstCaps *caps;
+ TestInfo *test = &caps_negotiation_tests[__i__];
+
+ videorate = setup_videorate_full (&srctemplate, &sinktemplate);
+
+ caps = gst_caps_from_string (test->caps);
+ g_object_set_data_full (G_OBJECT (mysrcpad), "caps",
+ gst_caps_ref (caps), (GDestroyNotify) gst_caps_unref);
+ g_object_set_data_full (G_OBJECT (mysinkpad), "caps",
+ gst_caps_ref (caps), (GDestroyNotify) gst_caps_unref);
+ gst_caps_unref (caps);
+
+ g_object_set (videorate, "drop-only", test->drop_only, NULL);
+ if (test->max_rate != 0)
+ g_object_set (videorate, "max-rate", test->max_rate, NULL);
+
+ gst_pad_set_getcaps_function (mysrcpad, _getcaps_function);
+ gst_pad_set_getcaps_function (mysinkpad, _getcaps_function);
+
+ check_peer_caps (mysrcpad, test->expected_sink_caps, "sink");
+ check_peer_caps (mysinkpad, test->expected_src_caps, "src");
+
+ gst_object_unref (videorate);
+}
+
+GST_END_TEST;
+
static Suite *
videorate_suite (void)
{
tcase_add_test (tc_chain, test_non_ok_flow);
tcase_add_test (tc_chain, test_upstream_caps_nego);
tcase_add_test (tc_chain, test_selected_caps);
+ tcase_add_loop_test (tc_chain, test_caps_negotiation,
+ 0, G_N_ELEMENTS (caps_negotiation_tests));
return s;
}
"Test Reverse Negotiation Sink",
"Sink",
"Some test sink", "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
- gst_element_class_add_pad_template (gstelement_class,
- gst_static_pad_template_get (&sinktemplate));
+ gst_element_class_add_static_pad_template (gstelement_class,
+ &sinktemplate);
}
static void
GST_END_TEST;
+GST_START_TEST (test_ten_s8)
+{
+ GstElement *volume;
+ GstBuffer *inbuffer;
+ GstBuffer *outbuffer;
+ GstCaps *caps;
+ gint8 in[2] = { 64, -10 };
+ gint8 out[2] = { 127, -100 }; /* notice the clamped sample */
+ gint8 *res;
+
+ volume = setup_volume ();
+ g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+ fail_unless (gst_element_set_state (volume,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ inbuffer = gst_buffer_new_and_alloc (2);
+ memcpy (GST_BUFFER_DATA (inbuffer), in, 2);
+ fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 2) == 0);
+ caps = gst_caps_from_string (VOLUME_CAPS_STRING_S8);
+ gst_buffer_set_caps (inbuffer, caps);
+ gst_caps_unref (caps);
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ /* FIXME: reffing the inbuffer should make the transformation not be
+ * inplace
+ gst_buffer_ref (inbuffer);
+ */
+
+ /* pushing gives away my reference ... */
+ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+ /* ... but it ends up being modified inplace and
+ * collected on the global buffer list */
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ fail_unless_equals_int (g_list_length (buffers), 1);
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+ fail_unless (inbuffer == outbuffer);
+ res = (gint8 *) GST_BUFFER_DATA (outbuffer);
+ GST_INFO ("expected %+5d %+5d real %+5d %+5d", out[0], out[1], res[0],
+ res[1]);
+ fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), out, 2) == 0);
+
+ /* cleanup */
+ cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
GST_START_TEST (test_mute_s8)
{
GstElement *volume;
GST_END_TEST;
+GST_START_TEST (test_ten_s16)
+{
+ GstElement *volume;
+ GstBuffer *inbuffer;
+ GstBuffer *outbuffer;
+ GstCaps *caps;
+ gint16 in[2] = { 16384, -10 };
+ gint16 out[2] = { 32767, -100 }; /* notice the clamped sample */
+ gint16 *res;
+
+ volume = setup_volume ();
+ g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+ fail_unless (gst_element_set_state (volume,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ inbuffer = gst_buffer_new_and_alloc (4);
+ memcpy (GST_BUFFER_DATA (inbuffer), in, 4);
+ fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 4) == 0);
+ caps = gst_caps_from_string (VOLUME_CAPS_STRING_S16);
+ gst_buffer_set_caps (inbuffer, caps);
+ gst_caps_unref (caps);
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ /* FIXME: reffing the inbuffer should make the transformation not be
+ * inplace
+ gst_buffer_ref (inbuffer);
+ */
+
+ /* pushing gives away my reference ... */
+ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+ /* ... but it ends up being modified inplace and
+ * collected on the global buffer list */
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ fail_unless_equals_int (g_list_length (buffers), 1);
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+ fail_unless (inbuffer == outbuffer);
+ res = (gint16 *) GST_BUFFER_DATA (outbuffer);
+ GST_INFO ("expected %+5d %+5d real %+5d %+5d", out[0], out[1], res[0],
+ res[1]);
+ fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), out, 4) == 0);
+
+ /* cleanup */
+ cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
GST_START_TEST (test_mute_s16)
{
GST_END_TEST;
+GST_START_TEST (test_ten_s24)
+{
+ GstElement *volume;
+ GstBuffer *inbuffer;
+ GstBuffer *outbuffer;
+ GstCaps *caps;
+ gint32 in_32[2] = { 4194304, -10 };
+ guint8 in[6];
+ guint8 *res;
+ gint32 res_32[2];
+ gint32 out_32[2] = { 8388607, -100 }; /* notice the clamped sample */
+
+ write_unaligned_u24 (in, in_32[0]);
+ write_unaligned_u24 (in + 3, in_32[1]);
+
+ volume = setup_volume ();
+ g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+ fail_unless (gst_element_set_state (volume,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ inbuffer = gst_buffer_new_and_alloc (6);
+ memcpy (GST_BUFFER_DATA (inbuffer), in, 6);
+ fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 6) == 0);
+ caps = gst_caps_from_string (VOLUME_CAPS_STRING_S24);
+ gst_buffer_set_caps (inbuffer, caps);
+ gst_caps_unref (caps);
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ /* FIXME: reffing the inbuffer should make the transformation not be
+ * inplace
+ gst_buffer_ref (inbuffer);
+ */
+
+ /* pushing gives away my reference ... */
+ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+ /* ... but it ends up being modified inplace and
+ * collected on the global buffer list */
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ fail_unless_equals_int (g_list_length (buffers), 1);
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+ fail_unless (inbuffer == outbuffer);
+ res = GST_BUFFER_DATA (outbuffer);
+
+ res_32[0] = get_unaligned_i24 (res);
+ res_32[1] = get_unaligned_i24 ((res + 3));
+
+ GST_INFO ("expected %+5d %+5d real %+5d %+5d", out_32[0], out_32[1],
+ res_32[0], res_32[1]);
+ fail_unless (memcmp (res_32, out_32, 8) == 0);
+
+ /* cleanup */
+ cleanup_volume (volume);
+}
+
+GST_END_TEST;
GST_START_TEST (test_mute_s24)
{
GST_END_TEST;
+GST_START_TEST (test_ten_s32)
+{
+ GstElement *volume;
+ GstBuffer *inbuffer;
+ GstBuffer *outbuffer;
+ GstCaps *caps;
+ gint32 in[2] = { 1073741824, -10 };
+ gint32 out[2] = { 2147483647, -100 }; /* notice the clamped sample */
+ gint32 *res;
+
+ volume = setup_volume ();
+ g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+ fail_unless (gst_element_set_state (volume,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ inbuffer = gst_buffer_new_and_alloc (8);
+ memcpy (GST_BUFFER_DATA (inbuffer), in, 8);
+ fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 8) == 0);
+ caps = gst_caps_from_string (VOLUME_CAPS_STRING_S32);
+ gst_buffer_set_caps (inbuffer, caps);
+ gst_caps_unref (caps);
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ /* FIXME: reffing the inbuffer should make the transformation not be
+ * inplace
+ gst_buffer_ref (inbuffer);
+ */
+
+ /* pushing gives away my reference ... */
+ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+ /* ... but it ends up being modified inplace and
+ * collected on the global buffer list */
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ fail_unless_equals_int (g_list_length (buffers), 1);
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+ fail_unless (inbuffer == outbuffer);
+ res = (gint32 *) GST_BUFFER_DATA (outbuffer);
+ GST_INFO ("expected %+5d %+5d real %+5d %+5d", out[0], out[1], res[0],
+ res[1]);
+ fail_unless (memcmp (GST_BUFFER_DATA (outbuffer), out, 8) == 0);
+
+ /* cleanup */
+ cleanup_volume (volume);
+}
+
+GST_END_TEST;
GST_START_TEST (test_mute_s32)
{
GST_END_TEST;
+GST_START_TEST (test_ten_f32)
+{
+ GstElement *volume;
+ GstBuffer *inbuffer;
+ GstBuffer *outbuffer;
+ GstCaps *caps;
+ gfloat in[2] = { 0.75, -0.25 };
+ gfloat out[2] = { 7.5, -2.5 }; /* nothing is clamped */
+ gfloat *res;
+
+ volume = setup_volume ();
+ g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+ fail_unless (gst_element_set_state (volume,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ inbuffer = gst_buffer_new_and_alloc (8);
+ memcpy (GST_BUFFER_DATA (inbuffer), in, 8);
+ fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 8) == 0);
+ caps = gst_caps_from_string (VOLUME_CAPS_STRING_F32);
+ gst_buffer_set_caps (inbuffer, caps);
+ gst_caps_unref (caps);
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ /* FIXME: reffing the inbuffer should make the transformation not be
+ * inplace
+ gst_buffer_ref (inbuffer);
+ */
+
+ /* pushing gives away my reference ... */
+ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+ /* ... but it ends up being modified inplace and
+ * collected on the global buffer list */
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ fail_unless_equals_int (g_list_length (buffers), 1);
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+ fail_unless (inbuffer == outbuffer);
+ res = (gfloat *) GST_BUFFER_DATA (outbuffer);
+ GST_INFO ("expected %+1.4f %+1.4f real %+1.4f %+1.4f", out[0], out[1],
+ res[0], res[1]);
+ fail_unless_equals_float (res[0], out[0]);
+ fail_unless_equals_float (res[1], out[1]);
+
+ /* cleanup */
+ cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
GST_START_TEST (test_mute_f32)
{
GST_END_TEST;
+GST_START_TEST (test_ten_f64)
+{
+ GstElement *volume;
+ GstBuffer *inbuffer;
+ GstBuffer *outbuffer;
+ GstCaps *caps;
+ gdouble in[2] = { 0.75, -0.25 };
+ gdouble out[2] = { 7.5, -2.5 }; /* nothing is clamped */
+ gdouble *res;
+
+ volume = setup_volume ();
+ g_object_set (G_OBJECT (volume), "volume", 10.0, NULL);
+ fail_unless (gst_element_set_state (volume,
+ GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
+ "could not set to playing");
+
+ inbuffer = gst_buffer_new_and_alloc (16);
+ memcpy (GST_BUFFER_DATA (inbuffer), in, 16);
+ fail_unless (memcmp (GST_BUFFER_DATA (inbuffer), in, 16) == 0);
+ caps = gst_caps_from_string (VOLUME_CAPS_STRING_F64);
+ gst_buffer_set_caps (inbuffer, caps);
+ gst_caps_unref (caps);
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ /* FIXME: reffing the inbuffer should make the transformation not be
+ * inplace
+ gst_buffer_ref (inbuffer);
+ */
+
+ /* pushing gives away my reference ... */
+ fail_unless (gst_pad_push (mysrcpad, inbuffer) == GST_FLOW_OK);
+ /* ... but it ends up being modified inplace and
+ * collected on the global buffer list */
+ ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
+ fail_unless_equals_int (g_list_length (buffers), 1);
+ fail_if ((outbuffer = (GstBuffer *) buffers->data) == NULL);
+ fail_unless (inbuffer == outbuffer);
+ res = (gdouble *) GST_BUFFER_DATA (outbuffer);
+ GST_INFO ("expected %+1.4f %+1.4f real %+1.4f %+1.4f", out[0], out[1],
+ res[0], res[1]);
+ fail_unless_equals_float (res[0], out[0]);
+ fail_unless_equals_float (res[1], out[1]);
+
+ /* cleanup */
+ cleanup_volume (volume);
+}
+
+GST_END_TEST;
+
GST_START_TEST (test_mute_f64)
{
tcase_add_test (tc_chain, test_unity_s8);
tcase_add_test (tc_chain, test_half_s8);
tcase_add_test (tc_chain, test_double_s8);
+ tcase_add_test (tc_chain, test_ten_s8);
tcase_add_test (tc_chain, test_mute_s8);
tcase_add_test (tc_chain, test_unity_s16);
tcase_add_test (tc_chain, test_half_s16);
tcase_add_test (tc_chain, test_double_s16);
+ tcase_add_test (tc_chain, test_ten_s16);
tcase_add_test (tc_chain, test_mute_s16);
tcase_add_test (tc_chain, test_unity_s24);
tcase_add_test (tc_chain, test_half_s24);
tcase_add_test (tc_chain, test_double_s24);
+ tcase_add_test (tc_chain, test_ten_s24);
tcase_add_test (tc_chain, test_mute_s24);
tcase_add_test (tc_chain, test_unity_s32);
tcase_add_test (tc_chain, test_half_s32);
tcase_add_test (tc_chain, test_double_s32);
+ tcase_add_test (tc_chain, test_ten_s32);
tcase_add_test (tc_chain, test_mute_s32);
tcase_add_test (tc_chain, test_unity_f32);
tcase_add_test (tc_chain, test_half_f32);
tcase_add_test (tc_chain, test_double_f32);
+ tcase_add_test (tc_chain, test_ten_f32);
tcase_add_test (tc_chain, test_mute_f32);
tcase_add_test (tc_chain, test_unity_f64);
tcase_add_test (tc_chain, test_half_f64);
tcase_add_test (tc_chain, test_double_f64);
+ tcase_add_test (tc_chain, test_ten_f64);
tcase_add_test (tc_chain, test_mute_f64);
tcase_add_test (tc_chain, test_wrong_caps);
tcase_add_test (tc_chain, test_passthrough);
gst_check_teardown_element (vorbisdec);
}
-GST_START_TEST (test_empty_identification_header)
-{
- GstElement *vorbisdec;
- GstBuffer *inbuffer;
- GstBus *bus;
- GstMessage *message;
-
- vorbisdec = setup_vorbisdec ();
- bus = gst_bus_new ();
-
- fail_unless (gst_element_set_state (vorbisdec,
- GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS,
- "could not set to playing");
-
- inbuffer = gst_buffer_new_and_alloc (0);
- ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
-
- /* set a bus here so we avoid getting state change messages */
- gst_element_set_bus (vorbisdec, bus);
-
- fail_unless_equals_int (gst_pad_push (mysrcpad, inbuffer), GST_FLOW_ERROR);
- /* ... but it ends up being collected on the global buffer list */
- fail_unless_equals_int (g_list_length (buffers), 0);
-
- fail_if ((message = gst_bus_pop (bus)) == NULL);
- fail_unless_message_error (message, STREAM, DECODE);
- gst_message_unref (message);
- gst_element_set_bus (vorbisdec, NULL);
-
- /* cleanup */
- gst_object_unref (GST_OBJECT (bus));
- cleanup_vorbisdec (vorbisdec);
-}
-
-GST_END_TEST;
-
/* FIXME: also tests comment header */
GST_START_TEST (test_identification_header)
{
TCase *tc_chain = tcase_create ("general");
suite_add_tcase (s, tc_chain);
- tcase_add_test (tc_chain, test_empty_identification_header);
tcase_add_test (tc_chain, test_identification_header);
tcase_add_test (tc_chain, test_empty_vorbis_packet);
{
GstBuffer *buffer;
ogg_packet packet;
- float **vorbis_buffer;
+ float **vorbis_buffer G_GNUC_UNUSED;
vorbis_buffer = vorbis_analysis_buffer (&vd, 0);
vorbis_analysis_wrote (&vd, 0);
obj:/usr/lib/libfontconfig.so.*
fun:FcFontRenderPrepare
}
+# ALSA leaks which are fixed by calling snd_config_update_free_global
+{
+ <ALSA cached config data>
+ Memcheck:Leak
+ fun:malloc
+ fun:strdup
+ obj:/usr/lib/libasound.so.2.0.0
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:gst_alsa_get_device_list
+ fun:gst_alsa_device_property_probe_get_values
+ fun:gst_property_probe_get_values
+ fun:gst_property_probe_probe_and_get_values
+ fun:gst_property_probe_probe_and_get_values_name
+ fun:test_device_property_probe
+ fun:srunner_run_all
+ fun:gst_check_run_suite
+ fun:main
+}
+{
+ <ALSA cached config data>
+ Memcheck:Leak
+ fun:malloc
+ obj:/usr/lib/libasound.so.2.0.0
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:gst_alsa_get_device_list
+ fun:gst_alsa_device_property_probe_get_values
+ fun:gst_property_probe_get_values
+ fun:gst_property_probe_probe_and_get_values
+ fun:gst_property_probe_probe_and_get_values_name
+ fun:test_device_property_probe
+ fun:srunner_run_all
+ fun:gst_check_run_suite
+ fun:main
+}
+{
+ <ALSA cached config data>
+ Memcheck:Leak
+ fun:malloc
+ fun:_dl_close_worker
+ fun:_dl_close
+ fun:_dl_catch_error
+ fun:_dlerror_run
+ fun:dlclose
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:snd_config_searcha_hooks
+ fun:snd_config_searchva_hooks
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:snd_config_search_definition
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:gst_alsa_get_device_list
+ fun:gst_alsa_device_property_probe_get_values
+ fun:gst_property_probe_get_values
+ fun:gst_property_probe_probe_and_get_values
+ fun:gst_property_probe_probe_and_get_values_name
+ fun:test_device_property_probe
+ fun:srunner_run_all
+ fun:gst_check_run_suite
+}
+{
+ <ALSA cached config data>
+ Memcheck:Leak
+ fun:malloc
+ fun:strdup
+ obj:/usr/lib/libasound.so.2.0.0
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:snd_hctl_open
+ fun:snd_mixer_attach
+ fun:gst_alsa_mixer_open
+ fun:gst_alsa_mixer_new
+ fun:gst_alsa_mixer_element_change_state
+ fun:gst_element_change_state
+ fun:gst_element_set_state_func
+ fun:test_alsa_mixer_track
+ fun:srunner_run_all
+ fun:gst_check_run_suite
+ fun:main
+}
+{
+ <ALSA cached config data>
+ Memcheck:Leak
+ fun:malloc
+ fun:strdup
+ obj:/usr/lib/libasound.so.2.0.0
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:snd_hctl_open
+ fun:snd_mixer_attach
+ fun:gst_alsa_mixer_open
+ fun:gst_alsa_mixer_new
+ fun:gst_alsa_mixer_element_change_state
+ fun:gst_element_change_state
+ fun:gst_element_set_state_func
+ fun:test_alsa_mixer_track
+ fun:srunner_run_all
+ fun:gst_check_run_suite
+ fun:main
+}
+{
+ <ALSA cached config data>
+ Memcheck:Leak
+ fun:malloc
+ fun:_dl_close_worker
+ fun:_dl_close
+ fun:_dl_catch_error
+ fun:_dlerror_run
+ fun:dlclose
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:snd_config_searcha_hooks
+ fun:snd_config_searchva_hooks
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:snd_config_search_definition
+ obj:/usr/lib/libasound.so.2.0.0
+ fun:snd_hctl_open
+ fun:snd_mixer_attach
+ fun:gst_alsa_mixer_open
+ fun:gst_alsa_mixer_new
+ fun:gst_alsa_mixer_element_change_state
+ fun:gst_element_change_state
+ fun:gst_element_set_state_func
+ fun:test_alsa_mixer_track
+}
#include "struct_x86_64.h"
#define HAVE_ABI_SIZES TRUE
#else
+#ifdef HAVE_CPU_ARM
+#include "struct_arm.h"
+#define HAVE_ABI_SIZES TRUE
+#else
/* in case someone wants to generate a new arch */
#include "struct_i386.h"
#define HAVE_ABI_SIZES FALSE
#endif
#endif
+#endif
GST_START_TEST (test_ABI)
{
GType test_element_get_type (void);
static void init_interface (GType type);
-static void gst_implements_interface_init (GstImplementsInterfaceClass * klass);
static void nav_send_event (GstNavigation * navigation,
GstStructure * structure);
NULL,
NULL,
};
- static const GInterfaceInfo implements_iface_info = {
- (GInterfaceInitFunc) gst_implements_interface_init,
- NULL,
- NULL,
- };
- g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE,
- &implements_iface_info);
g_type_add_interface_static (type, GST_TYPE_NAVIGATION,
&navigation_iface_info);
}
{
}
-static gboolean
-test_element_interface_supported (GstImplementsInterface * ifacE,
- GType interface_type)
-{
- if (interface_type == GST_TYPE_NAVIGATION)
- return TRUE;
-
- return FALSE;
-}
-
-static void
-gst_implements_interface_init (GstImplementsInterfaceClass * klass)
-{
- klass->supported = test_element_interface_supported;
-}
-
static void
test_element_init (TestElement * this, TestElementClass * klass)
{
{
GstEncodingTarget *target;
+ gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
/* NULL values */
ASSERT_CRITICAL (target = gst_encoding_target_new (NULL, NULL, NULL, NULL));
fail_if (target != NULL);
GValue strvalue = { 0, };
GValue miniobjectvalue = { 0, };
+ gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
/* Test loading using short method and all arguments */
target = gst_encoding_target_load ("myponytarget", "herding", NULL);
fail_unless (target != NULL);
{
GstBuffer *buf;
GstRTCPPacket packet;
- guint8 *data;
buf = gst_rtcp_buffer_new (1400);
fail_unless (buf != NULL);
fail_unless_equals_int (GST_BUFFER_SIZE (buf), 1400);
- data = GST_BUFFER_DATA (buf);
fail_unless (gst_rtcp_buffer_get_first_packet (buf, &packet) == FALSE);
fail_unless (gst_rtcp_buffer_get_packet_count (buf) == 0);
--- /dev/null
+
+GstCheckABIStruct list[] = {
+ {"GstAppBufferClass", sizeof (GstAppBufferClass), 16},
+ {"GstAppBuffer", sizeof (GstAppBuffer), 96},
+ {"GstAppSinkCallbacks", sizeof (GstAppSinkCallbacks), 28},
+ {"GstAppSinkClass", sizeof (GstAppSinkClass), 404},
+ {"GstAppSink", sizeof (GstAppSink), 432},
+ {"GstAppSrcCallbacks", sizeof (GstAppSrcCallbacks), 28},
+ {"GstAppSrcClass", sizeof (GstAppSrcClass), 412},
+ {"GstAppSrc", sizeof (GstAppSrc), 416},
+ {"GstAudioClockClass", sizeof (GstAudioClockClass), 192},
+ {"GstAudioClock", sizeof (GstAudioClock), 232},
+ {"GstAudioFilterClass", sizeof (GstAudioFilterClass), 396},
+ {"GstAudioFilter", sizeof (GstAudioFilter), 504},
+ {"GstAudioSinkClass", sizeof (GstAudioSinkClass), 432},
+ {"GstAudioSink", sizeof (GstAudioSink), 488},
+ {"GstAudioSrcClass", sizeof (GstAudioSrcClass), 460},
+ {"GstAudioSrc", sizeof (GstAudioSrc), 488},
+ {"GstBaseAudioSinkClass", sizeof (GstBaseAudioSinkClass), 388},
+ {"GstBaseAudioSink", sizeof (GstBaseAudioSink), 464},
+ {"GstBaseAudioSrcClass", sizeof (GstBaseAudioSrcClass), 416},
+ {"GstBaseAudioSrc", sizeof (GstBaseAudioSrc), 464},
+ {"GstBaseRTPAudioPayloadClass", sizeof (GstBaseRTPAudioPayloadClass), 288},
+ {"GstBaseRTPAudioPayload", sizeof (GstBaseRTPAudioPayload), 384},
+ {"GstBaseRTPDepayloadClass", sizeof (GstBaseRTPDepayloadClass), 280},
+ {"GstBaseRTPDepayload", sizeof (GstBaseRTPDepayload), 328},
+ {"GstBaseRTPPayloadClass", sizeof (GstBaseRTPPayloadClass), 272},
+ {"GstBaseRTPPayload", sizeof (GstBaseRTPPayload), 336},
+ {"GstCddaBaseSrcClass", sizeof (GstCddaBaseSrcClass), 432},
+ {"GstCddaBaseSrc", sizeof (GstCddaBaseSrc), 528},
+ {"GstCddaBaseSrcTrack", sizeof (GstCddaBaseSrcTrack), 36},
+ {"GstColorBalanceChannelClass", sizeof (GstColorBalanceChannelClass), 88},
+ {"GstColorBalanceChannel", sizeof (GstColorBalanceChannel), 24},
+ {"GstColorBalanceClass", sizeof (GstColorBalanceClass), 44},
+ {"GstDiscovererClass", sizeof (GstDiscovererClass), 96},
+ {"GstDiscoverer", sizeof (GstDiscoverer), 32},
+ {"GstFFTF32Complex", sizeof (GstFFTF32Complex), 8},
+ {"GstFFTF32", sizeof (GstFFTF32), 28},
+ {"GstFFTF64Complex", sizeof (GstFFTF64Complex), 16},
+ {"GstFFTF64", sizeof (GstFFTF64), 28},
+ {"GstFFTS16Complex", sizeof (GstFFTS16Complex), 4},
+ {"GstFFTS16", sizeof (GstFFTS16), 28},
+ {"GstFFTS32Complex", sizeof (GstFFTS32Complex), 8},
+ {"GstFFTS32", sizeof (GstFFTS32), 28},
+ {"GstMixerClass", sizeof (GstMixerClass), 72},
+ {"GstMixerOptionsClass", sizeof (GstMixerOptionsClass), 100},
+ {"GstMixerOptions", sizeof (GstMixerOptions), 52},
+ {"GstMixerTrackClass", sizeof (GstMixerTrackClass), 84},
+ {"GstMixerTrack", sizeof (GstMixerTrack), 32},
+ {"GstNavigationInterface", sizeof (GstNavigationInterface), 28},
+ {"GstNetAddress", sizeof (GstNetAddress), 40},
+ {"GstNetBufferClass", sizeof (GstNetBufferClass), 32},
+ {"GstNetBuffer", sizeof (GstNetBuffer), 184},
+ {"GstPropertyProbeInterface", sizeof (GstPropertyProbeInterface), 44},
+ {"gst_riff_acid", sizeof (gst_riff_acid), 24},
+ {"gst_riff_dmlh", sizeof (gst_riff_dmlh), 4},
+ {"gst_riff_index_entry", sizeof (gst_riff_index_entry), 16},
+ {"gst_riff_strf_auds", sizeof (gst_riff_strf_auds), 16},
+ {"gst_riff_strf_iavs", sizeof (gst_riff_strf_iavs), 32},
+ {"gst_riff_strf_vids", sizeof (gst_riff_strf_vids), 40},
+ {"gst_riff_strh", sizeof (gst_riff_strh), 48},
+ {"GstRingBufferClass", sizeof (GstRingBufferClass), 172},
+ {"GstRingBuffer", sizeof (GstRingBuffer), 232},
+ {"GstRingBufferSpec", sizeof (GstRingBufferSpec), 120},
+ {"GstRTCPPacket", sizeof (GstRTCPPacket), 36},
+ {"GstRTPPayloadInfo", sizeof (GstRTPPayloadInfo), 24},
+ {"GstRTSPExtensionInterface", sizeof (GstRTSPExtensionInterface), 60},
+ {"GstRTSPMessage", sizeof (GstRTSPMessage), 28},
+ {"GstRTSPRange", sizeof (GstRTSPRange), 8},
+ {"GstRTSPTime", sizeof (GstRTSPTime), 16},
+ {"GstRTSPTimeRange", sizeof (GstRTSPTimeRange), 40},
+ {"GstRTSPTransport", sizeof (GstRTSPTransport), 76},
+ {"GstRTSPUrl", sizeof (GstRTSPUrl), 32},
+ {"GstRTSPWatchFuncs", sizeof (GstRTSPWatchFuncs), 40},
+ {"GstSDPAttribute", sizeof (GstSDPAttribute), 8},
+ {"GstSDPBandwidth", sizeof (GstSDPBandwidth), 8},
+ {"GstSDPConnection", sizeof (GstSDPConnection), 20},
+ {"GstSDPKey", sizeof (GstSDPKey), 8},
+ {"GstSDPMedia", sizeof (GstSDPMedia), 44},
+ {"GstSDPMessage", sizeof (GstSDPMessage), 96},
+ {"GstSDPOrigin", sizeof (GstSDPOrigin), 24},
+ {"GstSDPTime", sizeof (GstSDPTime), 12},
+ {"GstSDPZone", sizeof (GstSDPZone), 8},
+ {"GstStreamVolumeInterface", sizeof (GstStreamVolumeInterface), 24},
+ {"GstTagDemuxClass", sizeof (GstTagDemuxClass), 284},
+ {"GstTagDemux", sizeof (GstTagDemux), 160},
+ {"GstTunerChannelClass", sizeof (GstTunerChannelClass), 92},
+ {"GstTunerChannel", sizeof (GstTunerChannel), 40},
+ {"GstTunerClass", sizeof (GstTunerClass), 76},
+ {"GstTunerNormClass", sizeof (GstTunerNormClass), 84},
+ {"GstTunerNorm", sizeof (GstTunerNorm), 40},
+ {"GstVideoFilterClass", sizeof (GstVideoFilterClass), 376},
+ {"GstVideoFilter", sizeof (GstVideoFilter), 376},
+ {"GstVideoOrientationInterface", sizeof (GstVideoOrientationInterface), 56},
+ {"GstVideoRectangle", sizeof (GstVideoRectangle), 16},
+ {"GstVideoSinkClass", sizeof (GstVideoSinkClass), 384},
+ {"GstVideoSink", sizeof (GstVideoSink), 432},
+ {"GstXOverlayClass", sizeof (GstXOverlayClass), 32},
+ {NULL, 0, 0}
+};
*
* unit tests for the tag support library
*
- * Copyright (C) 2006-2009 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2006-2011 Tim-Philipp Müller <tim centricular net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#include <gst/tag/tag.h>
#include <gst/base/gstbytewriter.h>
#include <string.h>
+#include <locale.h>
GST_START_TEST (test_parse_extended_comment)
{
const gchar *genre;
genre = gst_tag_id3_genre_get (i);
+ GST_LOG ("genre: %s", genre);
fail_unless (genre != NULL);
}
GST_END_TEST;
+#define SPECIFIC_L "http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/"
+#define GENERIC_L "http://creativecommons.org/licenses/by/1.0/"
+#define DERIVED_L "http://creativecommons.org/licenses/sampling+/1.0/tw/"
+
+GST_START_TEST (test_license_utils)
+{
+ GHashTable *ht;
+ GError *err = NULL;
+ gchar **liblicense_refs, **r;
+ gchar **lrefs, **l;
+ gchar *path, *data = NULL;
+ gsize data_len;
+
+ gst_debug_set_threshold_for_name ("tag-licenses", GST_LEVEL_NONE);
+
+ /* test jurisdiction-specific license */
+ fail_unless_equals_int (gst_tag_get_license_flags (SPECIFIC_L), 0x01010703);
+ fail_unless_equals_string (gst_tag_get_license_nick (SPECIFIC_L),
+ "CC BY-NC-SA 2.5 SCOTLAND");
+ fail_unless_equals_string (gst_tag_get_license_version (SPECIFIC_L), "2.5");
+ fail_unless_equals_string (gst_tag_get_license_jurisdiction (SPECIFIC_L),
+ "scotland");
+
+ g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "C", TRUE);
+ fail_unless_equals_string (gst_tag_get_license_title (SPECIFIC_L),
+ "Attribution-NonCommercial-ShareAlike");
+ fail_unless (gst_tag_get_license_description (SPECIFIC_L) == NULL);
+
+ /* test generic license */
+ fail_unless_equals_int (gst_tag_get_license_flags (GENERIC_L), 0x01000307);
+ fail_unless_equals_string (gst_tag_get_license_nick (GENERIC_L), "CC BY 1.0");
+ fail_unless_equals_string (gst_tag_get_license_version (GENERIC_L), "1.0");
+ fail_unless (gst_tag_get_license_jurisdiction (GENERIC_L) == NULL);
+
+ g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "C", TRUE);
+ fail_unless_equals_string (gst_tag_get_license_title (GENERIC_L),
+ "Attribution");
+ fail_unless_equals_string (gst_tag_get_license_description (GENERIC_L),
+ "You must attribute the work in the manner specified by the author or licensor.");
+
+#ifdef ENABLE_NLS
+ g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "fr", TRUE);
+ fail_unless_equals_string (gst_tag_get_license_title (GENERIC_L),
+ "Paternité");
+ fail_unless_equals_string (gst_tag_get_license_description (GENERIC_L),
+ "L'offrant autorise les autres à reproduire, distribuer et communiquer cette création au public. En échange, les personnes qui acceptent ce contrat doivent citer le nom de l'auteur original.");
+#endif
+
+ /* test derived (for a certain jurisdiction) license */
+ fail_unless_equals_int (gst_tag_get_license_flags (DERIVED_L), 0x0100030d);
+ fail_unless_equals_string (gst_tag_get_license_nick (DERIVED_L),
+ "CC SAMPLING+ 1.0 TW");
+ fail_unless_equals_string (gst_tag_get_license_version (DERIVED_L), "1.0");
+ fail_unless_equals_string (gst_tag_get_license_jurisdiction (DERIVED_L),
+ "tw");
+
+ g_setenv ("GST_TAG_LICENSE_TRANSLATIONS_LANG", "C", TRUE);
+ fail_unless_equals_string (gst_tag_get_license_title (DERIVED_L),
+ "Sampling Plus");
+ fail_unless_equals_string (gst_tag_get_license_description (GENERIC_L),
+ "You must attribute the work in the manner specified by the author or licensor.");
+
+ /* test all we know about */
+ lrefs = gst_tag_get_licenses ();
+ fail_unless (lrefs != NULL);
+ fail_unless (*lrefs != NULL);
+
+ GST_INFO ("%d licenses", g_strv_length (lrefs));
+ fail_unless (g_strv_length (lrefs) >= 376);
+
+ ht = g_hash_table_new (g_str_hash, g_str_equal);
+
+ for (l = lrefs; l != NULL && *l != NULL; ++l) {
+ const gchar *ref, *nick, *title, *desc G_GNUC_UNUSED;
+
+ ref = (const gchar *) *l;
+ nick = gst_tag_get_license_nick (ref);
+ title = gst_tag_get_license_title (ref);
+ desc = gst_tag_get_license_description (ref);
+ fail_unless (nick != NULL, "no nick for license '%s'", ref);
+ fail_unless (title != NULL, "no title for license '%s'", ref);
+ GST_LOG ("ref: %s [nick %s]", ref, (nick) ? nick : "none");
+ GST_TRACE (" %s : %s", title, (desc) ? desc : "(no description)");
+
+ /* make sure the list contains no duplicates */
+ fail_if (g_hash_table_lookup (ht, (gpointer) ref) != NULL);
+ g_hash_table_insert (ht, (gpointer) ref, (gpointer) "meep");
+ }
+ g_hash_table_destroy (ht);
+
+ /* trailing slash shouldn't make a difference */
+ fail_unless_equals_int (gst_tag_get_license_flags
+ ("http://creativecommons.org/licenses/by-nd/1.0/"),
+ gst_tag_get_license_flags
+ ("http://creativecommons.org/licenses/by-nd/1.0"));
+ fail_unless_equals_string (gst_tag_get_license_nick
+ ("http://creativecommons.org/licenses/by-nd/1.0/"),
+ gst_tag_get_license_nick
+ ("http://creativecommons.org/licenses/by-nd/1.0"));
+ fail_unless_equals_int (gst_tag_get_license_flags
+ ("http://creativecommons.org/licenses/by-nd/2.5/ca/"),
+ gst_tag_get_license_flags
+ ("http://creativecommons.org/licenses/by-nd/2.5/ca"));
+ fail_unless_equals_string (gst_tag_get_license_nick
+ ("http://creativecommons.org/licenses/by-nd/2.5/ca/"),
+ gst_tag_get_license_nick
+ ("http://creativecommons.org/licenses/by-nd/2.5/ca"));
+
+ /* unknown licenses */
+ fail_unless (gst_tag_get_license_nick
+ ("http://creativecommons.org/licenses/by-nd/25/ca/") == NULL);
+ fail_unless (gst_tag_get_license_flags
+ ("http://creativecommons.org/licenses/by-nd/25/ca") == 0);
+ fail_unless (gst_tag_get_license_jurisdiction
+ ("http://creativecommons.org/licenses/by-nd/25/ca/") == NULL);
+ fail_unless (gst_tag_get_license_jurisdiction
+ ("http://creativecommons.org/licenses/by-nd/25/ca") == NULL);
+ fail_unless (gst_tag_get_license_title
+ ("http://creativecommons.org/licenses/by-nd/25/ca") == NULL);
+ fail_unless (gst_tag_get_license_jurisdiction
+ ("http://creativecommons.org/licenses/by-nd/25/ca") == NULL);
+
+ /* unknown prefixes even */
+ fail_unless (gst_tag_get_license_nick
+ ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+ fail_unless (gst_tag_get_license_flags
+ ("http://copycats.org/licenses/by-nd/2.5/ca") == 0);
+ fail_unless (gst_tag_get_license_jurisdiction
+ ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+ fail_unless (gst_tag_get_license_title
+ ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+ fail_unless (gst_tag_get_license_description
+ ("http://copycats.org/licenses/by-nd/2.5/ca/") == NULL);
+
+ /* read list of liblicense refs from file */
+ path = g_build_filename (GST_TEST_FILES_PATH, "license-uris", NULL);
+ GST_LOG ("reading file '%s'", path);
+ if (!g_file_get_contents (path, &data, &data_len, &err)) {
+ g_error ("error loading test file: %s", err->message);
+ }
+
+ while (data_len > 0 && data[data_len - 1] == '\n') {
+ data[--data_len] = '\0';
+ }
+
+ liblicense_refs = g_strsplit (data, "\n", -1);
+ g_free (data);
+ g_free (path);
+
+ fail_unless (g_strv_length (lrefs) >= g_strv_length (liblicense_refs));
+
+ for (r = liblicense_refs; r != NULL && *r != NULL; ++r) {
+ GstTagLicenseFlags flags;
+ const gchar *version, *nick, *jur;
+ const gchar *ref = *r;
+
+ GST_LOG ("liblicense ref: %s", ref);
+
+ version = gst_tag_get_license_version (ref);
+ if (strstr (ref, "publicdomain") != NULL)
+ fail_unless (version == NULL);
+ else
+ fail_unless (version != NULL, "expected version for license %s", ref);
+
+ flags = gst_tag_get_license_flags (ref);
+ fail_unless (flags != 0, "expected non-zero flags for license %s", ref);
+
+ nick = gst_tag_get_license_nick (ref);
+ fail_unless (nick != NULL, "expected nick for license %s", ref);
+
+ jur = gst_tag_get_license_jurisdiction (ref);
+ if (g_str_has_suffix (ref, "de/")) {
+ fail_unless_equals_string (jur, "de");
+ } else if (g_str_has_suffix (ref, "scotland")) {
+ fail_unless_equals_string (jur, "scotland");
+ } else if (g_str_has_suffix (ref, ".0") || g_str_has_suffix (ref, ".1")) {
+ fail_unless (jur == NULL);
+ }
+ }
+
+ g_strfreev (liblicense_refs);
+ g_strfreev (lrefs);
+}
+
+GST_END_TEST;
+
GST_START_TEST (test_xmp_formatting)
{
GstTagList *list;
{
GstTagList *list;
GstBuffer *buf;
- guint i, result_size;
+ guint i, j, result_size;
gchar *text;
const gchar *xmp_header =
"<?xpacket begin=\"\xEF\xBB\xBF\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?>"
"<x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"GStreamer\">"
"<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">";
- const gchar *xmp_footer =
- "</rdf:RDF>" "</x:xmpmeta>" "<?xpacket end=\"r\"?>\n";
+
+ /* We used to write an extra trailing \n after the footer, keep compatibility
+ * with our old generated media by checking that it still can be parsed */
+ const gchar *xmp_footers[] = {
+ "</rdf:RDF>" "</x:xmpmeta>" "<?xpacket end=\"r\"?>",
+ "</rdf:RDF>" "</x:xmpmeta>" "<?xpacket end=\"r\"?>\n",
+ NULL
+ };
+
struct
{
const gchar *xmp_data;
/* test data */
buf = gst_buffer_new ();
+ j = 0;
i = 0;
- while (test_data[i].xmp_data) {
- GST_DEBUG ("trying test-data %u", i);
-
- text = g_strconcat (xmp_header, test_data[i].xmp_data, xmp_footer, NULL);
- GST_BUFFER_DATA (buf) = (guint8 *) text;
- GST_BUFFER_SIZE (buf) = strlen (text) + 1;
-
-
- list = gst_tag_list_from_xmp_buffer (buf);
- if (test_data[i].result_size >= 0) {
- fail_unless (list != NULL);
-
- result_size = gst_structure_n_fields ((GstStructure *) list);
- fail_unless (result_size == test_data[i].result_size);
-
- /* check the taglist content */
- switch (test_data[i].result_test) {
- case 0:
- ASSERT_TAG_LIST_HAS_STRING (list, "description", "test");
- break;
- default:
- break;
+ while (xmp_footers[j]) {
+ while (test_data[i].xmp_data) {
+ GST_DEBUG ("trying test-data %u", i);
+
+ text =
+ g_strconcat (xmp_header, test_data[i].xmp_data, xmp_footers[j], NULL);
+ GST_BUFFER_DATA (buf) = (guint8 *) text;
+ GST_BUFFER_SIZE (buf) = strlen (text) + 1;
+
+ list = gst_tag_list_from_xmp_buffer (buf);
+ if (test_data[i].result_size >= 0) {
+ fail_unless (list != NULL);
+
+ result_size = gst_structure_n_fields ((GstStructure *) list);
+ fail_unless (result_size == test_data[i].result_size);
+
+ /* check the taglist content */
+ switch (test_data[i].result_test) {
+ case 0:
+ ASSERT_TAG_LIST_HAS_STRING (list, "description", "test");
+ break;
+ default:
+ break;
+ }
}
- }
- if (list)
- gst_tag_list_free (list);
+ if (list)
+ gst_tag_list_free (list);
- g_free (text);
- i++;
+ g_free (text);
+ i++;
+ }
+ j++;
}
gst_buffer_unref (buf);
}
static void
-do_xmp_tag_serialization_deserialization (GstTagList * taglist)
+do_xmp_tag_serialization_deserialization (GstTagList * taglist,
+ const gchar ** schemas)
{
GstTagList *taglist2;
GstBuffer *buf;
- buf = gst_tag_list_to_xmp_buffer (taglist, TRUE);
+ buf = gst_tag_list_to_xmp_buffer_full (taglist, TRUE, schemas);
taglist2 = gst_tag_list_from_xmp_buffer (buf);
tag_list_equals (taglist, taglist2);
gst_tag_list_add_value (taglist, GST_TAG_MERGE_REPLACE, gsttag, value);
- do_xmp_tag_serialization_deserialization (taglist);
+ do_xmp_tag_serialization_deserialization (taglist, NULL);
gst_tag_list_free (taglist);
}
GST_START_TEST (test_xmp_compound_tags)
{
+ const gchar *schemas[] = { "Iptc4xmpExt", NULL };
GstTagList *taglist = gst_tag_list_new ();
gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_KEYWORDS, "k1",
GST_TAG_KEYWORDS, "k2", GST_TAG_TITLE, "title", GST_TAG_KEYWORDS, "k3",
NULL);
+ do_xmp_tag_serialization_deserialization (taglist, NULL);
+ gst_tag_list_free (taglist);
- do_xmp_tag_serialization_deserialization (taglist);
+ taglist = gst_tag_list_new ();
+ gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_GEO_LOCATION_COUNTRY,
+ "Brazil", GST_TAG_GEO_LOCATION_CITY, "Campina Grande", NULL);
+ do_xmp_tag_serialization_deserialization (taglist, schemas);
gst_tag_list_free (taglist);
}
/* LE */
buf = gst_tag_list_to_exif_buffer (taglist, G_LITTLE_ENDIAN, 0);
+ GST_MEMDUMP ("Exif tag", GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf));
taglist2 = gst_tag_list_from_exif_buffer (buf, G_LITTLE_ENDIAN, 0);
gst_buffer_unref (buf);
/* BE */
buf = gst_tag_list_to_exif_buffer (taglist, G_BIG_ENDIAN, 0);
+ GST_MEMDUMP ("Exif tag", GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf));
taglist2 = gst_tag_list_from_exif_buffer (buf, G_BIG_ENDIAN, 0);
gst_buffer_unref (buf);
GstTagList *taglist = gst_tag_list_new ();
gst_tag_list_add_value (taglist, GST_TAG_MERGE_REPLACE, gsttag, value);
-
do_exif_tag_serialization_deserialization (taglist);
gst_tag_list_free (taglist);
do_simple_exif_tag_serialization_deserialization (GST_TAG_APPLICATION_NAME,
&value);
+ /* non ascii chars */
+ g_value_set_static_string (&value, "AaÄäEeËëIiÏïOoÖöUuÜü");
+ do_simple_exif_tag_serialization_deserialization (GST_TAG_ARTIST, &value);
+ g_value_set_static_string (&value, "Äë");
+ do_simple_exif_tag_serialization_deserialization (GST_TAG_ARTIST, &value);
+
/* image orientation tests */
g_value_set_static_string (&value, "rotate-0");
do_simple_exif_tag_serialization_deserialization (GST_TAG_IMAGE_ORIENTATION,
tcase_add_test (tc_chain, test_id3_tags);
tcase_add_test (tc_chain, test_id3v1_utf8_tag);
tcase_add_test (tc_chain, test_language_utils);
+ tcase_add_test (tc_chain, test_license_utils);
tcase_add_test (tc_chain, test_xmp_formatting);
tcase_add_test (tc_chain, test_xmp_parsing);
tcase_add_test (tc_chain, test_xmp_tags_serialization_deserialization);
*
* Copyright (C) <2003> David A. Schleef <ds@schleef.org>
* Copyright (C) <2006> Jan Schmidt <thaytan@mad.scientist.com>
- * Copyright (C) <2008> Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) <2008,2011> Tim-Philipp Müller <tim centricular net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
#include <gst/check/gstcheck.h>
#include <gst/video/video.h>
+#include <gst/video/video-overlay-composition.h>
#include <string.h>
/* These are from the current/old videotestsrc; we check our new public API
gint i;
guint8 *data;
+ gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
from_buffer = gst_buffer_new_and_alloc (640 * 480 * 4);
data = GST_BUFFER_DATA (from_buffer);
GMainLoop *loop;
ConvertFrameContext cf_data = { NULL, NULL, NULL };
+ gst_debug_set_threshold_for_name ("default", GST_LEVEL_NONE);
+
from_buffer = gst_buffer_new_and_alloc (640 * 480 * 4);
data = GST_BUFFER_DATA (from_buffer);
GST_END_TEST;
+GST_START_TEST (test_video_size_from_caps)
+{
+ gint size;
+ guint32 fourcc = GST_MAKE_FOURCC ('Y', 'V', '1', '2');
+ GstCaps *caps = gst_caps_new_simple ("video/x-raw-yuv",
+ "format", GST_TYPE_FOURCC, fourcc,
+ "width", G_TYPE_INT, 640,
+ "height", G_TYPE_INT, 480,
+ "framerate", GST_TYPE_FRACTION, 25, 1,
+ NULL);
+
+ fail_unless (gst_video_get_size_from_caps (caps, &size));
+ fail_unless (size ==
+ gst_video_format_get_size (gst_video_format_from_fourcc (fourcc), 640,
+ 480));
+ fail_unless (size == (640 * 480 * 12 / 8));
+
+ gst_caps_unref (caps);
+}
+
+GST_END_TEST;
+
+#undef ASSERT_CRITICAL
+#define ASSERT_CRITICAL(code) while(0){} /* nothing */
+
+GST_START_TEST (test_overlay_composition)
+{
+ GstVideoOverlayComposition *comp1, *comp2;
+ GstVideoOverlayRectangle *rect1, *rect2;
+ GstBuffer *pix1, *pix2, *buf;
+ guint seq1, seq2;
+ guint w, h, stride;
+ gint x, y;
+
+ pix1 = gst_buffer_new_and_alloc (200 * sizeof (guint32) * 50);
+ memset (GST_BUFFER_DATA (pix1), 0, GST_BUFFER_SIZE (pix1));
+
+ rect1 = gst_video_overlay_rectangle_new_argb (pix1, 200, 50, 200 * 4,
+ 600, 50, 300, 50, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+
+ gst_buffer_unref (pix1);
+ pix1 = NULL;
+
+ comp1 = gst_video_overlay_composition_new (rect1);
+ fail_unless (gst_video_overlay_composition_n_rectangles (comp1) == 1);
+ fail_unless (gst_video_overlay_composition_get_rectangle (comp1, 0) == rect1);
+ fail_unless (gst_video_overlay_composition_get_rectangle (comp1, 1) == NULL);
+
+ /* rectangle was created first, sequence number should be smaller */
+ seq1 = gst_video_overlay_rectangle_get_seqnum (rect1);
+ seq2 = gst_video_overlay_composition_get_seqnum (comp1);
+ fail_unless (seq1 < seq2);
+
+ /* composition took own ref, so refcount is 2 now, so this should fail */
+ ASSERT_CRITICAL (gst_video_overlay_rectangle_set_render_rectangle (rect1, 50,
+ 600, 300, 50));
+
+ /* drop our ref, so refcount is 1 (we know it will continue to be valid) */
+ gst_video_overlay_rectangle_unref (rect1);
+ gst_video_overlay_rectangle_set_render_rectangle (rect1, 50, 600, 300, 50);
+
+ comp2 = gst_video_overlay_composition_new (rect1);
+ fail_unless (gst_video_overlay_composition_n_rectangles (comp2) == 1);
+ fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 0) == rect1);
+ fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 1) == NULL);
+
+ fail_unless (seq1 < gst_video_overlay_composition_get_seqnum (comp2));
+ fail_unless (seq2 < gst_video_overlay_composition_get_seqnum (comp2));
+
+ /* now refcount is 2 again because comp2 has also taken a ref, so must fail */
+ ASSERT_CRITICAL (gst_video_overlay_rectangle_set_render_rectangle (rect1, 0,
+ 0, 1, 1));
+
+ /* this should make a copy of the rectangles so drop the original
+ * second ref on rect1 */
+ comp2 = gst_video_overlay_composition_make_writable (comp2);
+ gst_video_overlay_rectangle_set_render_rectangle (rect1, 51, 601, 301, 51);
+
+ rect2 = gst_video_overlay_composition_get_rectangle (comp2, 0);
+ fail_unless (gst_video_overlay_composition_n_rectangles (comp2) == 1);
+ fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 0) == rect2);
+ fail_unless (gst_video_overlay_composition_get_rectangle (comp2, 1) == NULL);
+ fail_unless (rect1 != rect2);
+
+ gst_video_overlay_composition_add_rectangle (comp1, rect2);
+ gst_video_overlay_composition_ref (comp1);
+ ASSERT_CRITICAL (gst_video_overlay_composition_add_rectangle (comp1, rect2));
+ gst_video_overlay_composition_unref (comp1);
+
+ /* make sure the copy really worked */
+ gst_video_overlay_rectangle_get_render_rectangle (rect1, &x, &y, &w, &h);
+ fail_unless_equals_int (x, 51);
+ fail_unless_equals_int (y, 601);
+ fail_unless_equals_int (w, 301);
+ fail_unless_equals_int (h, 51);
+
+ /* get scaled pixbuf and touch last byte */
+ pix1 = gst_video_overlay_rectangle_get_pixels_argb (rect1, &stride,
+ GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+ fail_unless (GST_BUFFER_SIZE (pix1) > ((h - 1) * stride + (w * 4) - 1),
+ "size %u vs. last pixel offset %u", GST_BUFFER_SIZE (pix1),
+ ((h - 1) * stride + (w * 4) - 1));
+ fail_unless_equals_int (*(GST_BUFFER_DATA (pix1) + ((h - 1) * stride +
+ (w * 4) - 1)), 0);
+
+ gst_video_overlay_rectangle_get_render_rectangle (rect2, &x, &y, &w, &h);
+ fail_unless_equals_int (x, 50);
+ fail_unless_equals_int (y, 600);
+ fail_unless_equals_int (w, 300);
+ fail_unless_equals_int (h, 50);
+
+ /* get scaled pixbuf and touch last byte */
+ pix2 = gst_video_overlay_rectangle_get_pixels_argb (rect2, &stride,
+ GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+ fail_unless (GST_BUFFER_SIZE (pix2) > ((h - 1) * stride + (w * 4) - 1),
+ "size %u vs. last pixel offset %u", GST_BUFFER_SIZE (pix1),
+ ((h - 1) * stride + (w * 4) - 1));
+ fail_unless_equals_int (*(GST_BUFFER_DATA (pix2) + ((h - 1) * stride +
+ (w * 4) - 1)), 0);
+
+ /* get scaled pixbuf again, should be the same buffer as before (caching) */
+ pix1 = gst_video_overlay_rectangle_get_pixels_argb (rect2, &stride,
+ GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+ fail_unless (pix1 == pix2);
+
+ /* now compare the original unscaled ones */
+ pix1 = gst_video_overlay_rectangle_get_pixels_unscaled_argb (rect1, &w, &h,
+ &stride, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+ pix2 = gst_video_overlay_rectangle_get_pixels_unscaled_argb (rect2, &w, &h,
+ &stride, GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE);
+
+ /* the original pixel buffers should be identical */
+ fail_unless (pix1 == pix2);
+ fail_unless_equals_int (w, 200);
+ fail_unless_equals_int (h, 50);
+
+ /* touch last byte */
+ fail_unless (GST_BUFFER_SIZE (pix1) > ((h - 1) * stride + (w * 4) - 1),
+ "size %u vs. last pixel offset %u", GST_BUFFER_SIZE (pix1),
+ ((h - 1) * stride + (w * 4) - 1));
+ fail_unless_equals_int (*(GST_BUFFER_DATA (pix1) + ((h - 1) * stride +
+ (w * 4) - 1)), 0);
+
+ /* test attaching and retrieving of compositions to/from buffers */
+ buf = gst_buffer_new ();
+ fail_unless (gst_video_buffer_get_overlay_composition (buf) == NULL);
+
+ gst_buffer_ref (buf);
+ ASSERT_CRITICAL (gst_video_buffer_set_overlay_composition (buf, comp1));
+ gst_buffer_unref (buf);
+ gst_video_buffer_set_overlay_composition (buf, comp1);
+ fail_unless (gst_video_buffer_get_overlay_composition (buf) == comp1);
+ gst_video_buffer_set_overlay_composition (buf, comp2);
+ fail_unless (gst_video_buffer_get_overlay_composition (buf) == comp2);
+ gst_video_buffer_set_overlay_composition (buf, NULL);
+ fail_unless (gst_video_buffer_get_overlay_composition (buf) == NULL);
+
+ /* make sure the buffer cleans up its composition ref when unreffed */
+ gst_video_buffer_set_overlay_composition (buf, comp2);
+ gst_buffer_unref (buf);
+
+ gst_video_overlay_composition_unref (comp2);
+ gst_video_overlay_composition_unref (comp1);
+}
+
+GST_END_TEST;
+
static Suite *
video_suite (void)
{
tcase_add_test (tc_chain, test_events);
tcase_add_test (tc_chain, test_convert_frame);
tcase_add_test (tc_chain, test_convert_frame_async);
+ tcase_add_test (tc_chain, test_video_size_from_caps);
+ tcase_add_test (tc_chain, test_overlay_composition);
return s;
}
static gboolean
buffer_probe_cb (GstPad * pad, GstBuffer * buffer)
{
+ GstClockTime new_ts = GST_BUFFER_TIMESTAMP (buffer);
+
+ GST_LOG ("ts = %" GST_TIME_FORMAT, GST_TIME_ARGS (new_ts));
if (old_ts != GST_CLOCK_TIME_NONE) {
- fail_unless (GST_BUFFER_TIMESTAMP (buffer) != old_ts,
- "Two buffers had same timestamp");
+ fail_unless (new_ts != old_ts,
+ "Two buffers had same timestamp: %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (old_ts));
}
- old_ts = GST_BUFFER_TIMESTAMP (buffer);
+ old_ts = new_ts;
return TRUE;
}
GstPad *pad;
GMainLoop *loop;
- /* Don't run with osxaudiosrc . This is because libcheck runs the actual
- * test in a forked process and causes havoc with osx's API. */
- if (G_UNLIKELY (!g_ascii_strcasecmp (DEFAULT_AUDIOSRC, "osxaudiosrc")))
- return;
-
loop = g_main_loop_new (NULL, FALSE);
/* The "main" pipeline */
fail_if (p1 == NULL);
/* Create a sub-bin that is activated only in "certain situations" */
- asrc = gst_element_factory_make (DEFAULT_AUDIOSRC, NULL);
+ asrc = gst_element_factory_make ("audiotestsrc", NULL);
if (asrc == NULL) {
- GST_WARNING ("Cannot run test. test audio source %s not available",
- DEFAULT_AUDIOSRC);
+ GST_WARNING ("Cannot run test. 'audiotestsrc' not available");
gst_element_set_state (p1, GST_STATE_NULL);
gst_object_unref (p1);
return;
gst_object_unref (pad);
gst_element_set_state (p1, GST_STATE_NULL);
gst_object_unref (p1);
+
+ g_main_loop_unref (loop);
}
GST_END_TEST;
{
GstClockTime next_timestamp;
- gint64 last_granulepos;
/* first buffer should have timestamp of TIMESTAMP_OFFSET, granulepos to
* match the timestamp of the end of the last sample in the output buffer.
* take care to timestamp correctly based on the offset of the input data
* however, so it does do sub-granulepos timestamping. */
buffer = gst_buffer_straw_get_buffer (bin, pad);
- last_granulepos = GST_BUFFER_OFFSET_END (buffer);
check_buffer_timestamp (buffer, 0);
/* plain division because I know the answer is exact */
check_buffer_duration (buffer, GST_SECOND / 10);
GstBus *bus;
GError *error = NULL;
+ /* allowing some tolerance permits audiodecoder to come up with
+ * perfect timestamps rather than sticking to upstream ts */
pipe_str = g_strdup_printf ("audiotestsrc num-buffers=100"
- " ! audio/x-raw-int,rate=44100 ! audioconvert ! vorbisenc ! vorbisdec"
+ " ! audio/x-raw-int,rate=44100 ! audioconvert ! vorbisenc "
+ " ! vorbisdec tolerance=10000000 "
" ! identity check-imperfect-timestamp=TRUE ! fakesink");
pipeline = gst_parse_launch (pipe_str, &error);
static gboolean
drop_second_data_buffer (GstPad * droppad, GstBuffer * buffer, gpointer unused)
{
- return !(GST_BUFFER_OFFSET (buffer) == 1024);
+ return !(GST_BUFFER_OFFSET (buffer) == 4096);
}
GST_START_TEST (test_discontinuity)
GError *error = NULL;
guint drop_id;
+ /* make audioencoder act sufficiently pedantic */
pipe_str = g_strdup_printf ("audiotestsrc samplesperbuffer=1024"
- " ! audio/x-raw-int,rate=44100" " ! audioconvert ! vorbisenc ! fakesink");
+ " ! audio/x-raw-int,rate=44100" " ! audioconvert "
+ " ! vorbisenc tolerance=10000000 ! fakesink");
bin = gst_parse_launch (pipe_str, &error);
fail_unless (bin != NULL, "Error parsing pipeline: %s",
check_buffer_granulepos (buffer, 0);
gst_buffer_unref (buffer);
- /* two phases: continuous granulepos values up to 1024, then a first
- discontinuous granulepos whose granulepos corresponds to a gap ending at
- 2048. */
{
GstClockTime next_timestamp = 0;
- gint64 last_granulepos = 0;
+ gint64 last_granulepos = 0, granulepos;
+ gint i;
- while (last_granulepos < 1024) {
+ for (i = 0; i < 10; i++) {
buffer = gst_buffer_straw_get_buffer (bin, pad);
- last_granulepos = GST_BUFFER_OFFSET_END (buffer);
+ granulepos = GST_BUFFER_OFFSET_END (buffer);
+ /* discont is either at start, or following gap */
+ if (GST_BUFFER_IS_DISCONT (buffer)) {
+ if (next_timestamp) {
+ fail_unless (granulepos - last_granulepos > 1024,
+ "expected discont of at least 1024 samples");
+ next_timestamp = GST_BUFFER_TIMESTAMP (buffer);
+ }
+ }
check_buffer_timestamp (buffer, next_timestamp);
- fail_if (GST_BUFFER_IS_DISCONT (buffer), "expected continuous buffer");
next_timestamp += GST_BUFFER_DURATION (buffer);
+ last_granulepos = granulepos;
gst_buffer_unref (buffer);
}
-
- fail_unless (last_granulepos == 1024,
- "unexpected granulepos: %" G_GUINT64_FORMAT, last_granulepos);
- }
-
- {
- buffer = gst_buffer_straw_get_buffer (bin, pad);
- /* The first buffer after the discontinuity will produce zero output
- * samples (because of the overlap/add), so it won't increment the
- * granulepos, which should be 2048 after the discontinuity.
- */
- fail_unless (GST_BUFFER_OFFSET_END (buffer) == 2048,
- "expected granulepos after gap: %" G_GUINT64_FORMAT,
- GST_BUFFER_OFFSET_END (buffer));
- fail_unless (GST_BUFFER_IS_DISCONT (buffer),
- "expected discontinuous buffer");
- gst_buffer_unref (buffer);
}
gst_buffer_straw_stop_pipeline (bin, pad);
GIO_SUBDIRS = gio
endif
-SUBDIRS = app dynamic $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec volume v4l encoding
+SUBDIRS = app audio dynamic fft $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec v4l encoding
-DIST_SUBDIRS = app dynamic gio overlay seek snapshot playrec volume v4l encoding
+DIST_SUBDIRS = app audio dynamic fft gio overlay seek snapshot playrec v4l encoding
include $(top_srcdir)/common/parallel-subdirs.mak
+
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
@HAVE_FT2_FALSE@FT2_SUBDIRS =
@HAVE_FT2_TRUE@FT2_SUBDIRS = seek snapshot
@USE_GIO_TRUE@GIO_SUBDIRS = gio
-SUBDIRS = app dynamic $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec volume v4l encoding
-DIST_SUBDIRS = app dynamic gio overlay seek snapshot playrec volume v4l encoding
+SUBDIRS = app audio dynamic fft $(FT2_SUBDIRS) $(GIO_SUBDIRS) overlay playrec v4l encoding
+DIST_SUBDIRS = app audio dynamic fft gio overlay seek snapshot playrec v4l encoding
all: all-recursive
.SUFFIXES:
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
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
am__DEPENDENCIES_1 =
appsink_src_DEPENDENCIES = $(top_builddir)/gst-libs/gst/app/libgstapp-@GST_MAJORMINOR@.la \
$(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
appsink_src_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(appsink_src_CFLAGS) \
$(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 = $(appsink_src_SOURCES) $(appsrc_ra_SOURCES) \
$(appsrc_seekable_SOURCES) $(appsrc_stream_SOURCES) \
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-appsink-src$(EXEEXT): $(appsink_src_OBJECTS) $(appsink_src_DEPENDENCIES)
+appsink-src$(EXEEXT): $(appsink_src_OBJECTS) $(appsink_src_DEPENDENCIES) $(EXTRA_appsink_src_DEPENDENCIES)
@rm -f appsink-src$(EXEEXT)
$(AM_V_CCLD)$(appsink_src_LINK) $(appsink_src_OBJECTS) $(appsink_src_LDADD) $(LIBS)
-appsrc-ra$(EXEEXT): $(appsrc_ra_OBJECTS) $(appsrc_ra_DEPENDENCIES)
+appsrc-ra$(EXEEXT): $(appsrc_ra_OBJECTS) $(appsrc_ra_DEPENDENCIES) $(EXTRA_appsrc_ra_DEPENDENCIES)
@rm -f appsrc-ra$(EXEEXT)
$(AM_V_CCLD)$(appsrc_ra_LINK) $(appsrc_ra_OBJECTS) $(appsrc_ra_LDADD) $(LIBS)
-appsrc-seekable$(EXEEXT): $(appsrc_seekable_OBJECTS) $(appsrc_seekable_DEPENDENCIES)
+appsrc-seekable$(EXEEXT): $(appsrc_seekable_OBJECTS) $(appsrc_seekable_DEPENDENCIES) $(EXTRA_appsrc_seekable_DEPENDENCIES)
@rm -f appsrc-seekable$(EXEEXT)
$(AM_V_CCLD)$(appsrc_seekable_LINK) $(appsrc_seekable_OBJECTS) $(appsrc_seekable_LDADD) $(LIBS)
-appsrc-stream$(EXEEXT): $(appsrc_stream_OBJECTS) $(appsrc_stream_DEPENDENCIES)
+appsrc-stream$(EXEEXT): $(appsrc_stream_OBJECTS) $(appsrc_stream_DEPENDENCIES) $(EXTRA_appsrc_stream_DEPENDENCIES)
@rm -f appsrc-stream$(EXEEXT)
$(AM_V_CCLD)$(appsrc_stream_LINK) $(appsrc_stream_OBJECTS) $(appsrc_stream_LDADD) $(LIBS)
-appsrc-stream2$(EXEEXT): $(appsrc_stream2_OBJECTS) $(appsrc_stream2_DEPENDENCIES)
+appsrc-stream2$(EXEEXT): $(appsrc_stream2_OBJECTS) $(appsrc_stream2_DEPENDENCIES) $(EXTRA_appsrc_stream2_DEPENDENCIES)
@rm -f appsrc-stream2$(EXEEXT)
$(AM_V_CCLD)$(appsrc_stream2_LINK) $(appsrc_stream2_OBJECTS) $(appsrc_stream2_LDADD) $(LIBS)
-appsrc_ex$(EXEEXT): $(appsrc_ex_OBJECTS) $(appsrc_ex_DEPENDENCIES)
+appsrc_ex$(EXEEXT): $(appsrc_ex_OBJECTS) $(appsrc_ex_DEPENDENCIES) $(EXTRA_appsrc_ex_DEPENDENCIES)
@rm -f appsrc_ex$(EXEEXT)
$(AM_V_CCLD)$(appsrc_ex_LINK) $(appsrc_ex_OBJECTS) $(appsrc_ex_LDADD) $(LIBS)
.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 $@ $<
appsink_src-appsink-src.o: appsink-src.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -MT appsink_src-appsink-src.o -MD -MP -MF $(DEPDIR)/appsink_src-appsink-src.Tpo -c -o appsink_src-appsink-src.o `test -f 'appsink-src.c' || echo '$(srcdir)/'`appsink-src.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsink_src-appsink-src.Tpo $(DEPDIR)/appsink_src-appsink-src.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsink-src.c' object='appsink_src-appsink-src.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsink-src.c' object='appsink_src-appsink-src.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) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.o `test -f 'appsink-src.c' || echo '$(srcdir)/'`appsink-src.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.o `test -f 'appsink-src.c' || echo '$(srcdir)/'`appsink-src.c
appsink_src-appsink-src.obj: appsink-src.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -MT appsink_src-appsink-src.obj -MD -MP -MF $(DEPDIR)/appsink_src-appsink-src.Tpo -c -o appsink_src-appsink-src.obj `if test -f 'appsink-src.c'; then $(CYGPATH_W) 'appsink-src.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsink_src-appsink-src.Tpo $(DEPDIR)/appsink_src-appsink-src.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsink-src.c' object='appsink_src-appsink-src.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsink-src.c' object='appsink_src-appsink-src.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) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.obj `if test -f 'appsink-src.c'; then $(CYGPATH_W) 'appsink-src.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsink_src_CFLAGS) $(CFLAGS) -c -o appsink_src-appsink-src.obj `if test -f 'appsink-src.c'; then $(CYGPATH_W) 'appsink-src.c'; else $(CYGPATH_W) '$(srcdir)/appsink-src.c'; fi`
appsrc_ra-appsrc-ra.o: appsrc-ra.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -MT appsrc_ra-appsrc-ra.o -MD -MP -MF $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo -c -o appsrc_ra-appsrc-ra.o `test -f 'appsrc-ra.c' || echo '$(srcdir)/'`appsrc-ra.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo $(DEPDIR)/appsrc_ra-appsrc-ra.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.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) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.o `test -f 'appsrc-ra.c' || echo '$(srcdir)/'`appsrc-ra.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.o `test -f 'appsrc-ra.c' || echo '$(srcdir)/'`appsrc-ra.c
appsrc_ra-appsrc-ra.obj: appsrc-ra.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -MT appsrc_ra-appsrc-ra.obj -MD -MP -MF $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo -c -o appsrc_ra-appsrc-ra.obj `if test -f 'appsrc-ra.c'; then $(CYGPATH_W) 'appsrc-ra.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-ra.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ra-appsrc-ra.Tpo $(DEPDIR)/appsrc_ra-appsrc-ra.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-ra.c' object='appsrc_ra-appsrc-ra.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) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.obj `if test -f 'appsrc-ra.c'; then $(CYGPATH_W) 'appsrc-ra.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-ra.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ra_CFLAGS) $(CFLAGS) -c -o appsrc_ra-appsrc-ra.obj `if test -f 'appsrc-ra.c'; then $(CYGPATH_W) 'appsrc-ra.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-ra.c'; fi`
appsrc_seekable-appsrc-seekable.o: appsrc-seekable.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -MT appsrc_seekable-appsrc-seekable.o -MD -MP -MF $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo -c -o appsrc_seekable-appsrc-seekable.o `test -f 'appsrc-seekable.c' || echo '$(srcdir)/'`appsrc-seekable.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo $(DEPDIR)/appsrc_seekable-appsrc-seekable.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.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) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.o `test -f 'appsrc-seekable.c' || echo '$(srcdir)/'`appsrc-seekable.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.o `test -f 'appsrc-seekable.c' || echo '$(srcdir)/'`appsrc-seekable.c
appsrc_seekable-appsrc-seekable.obj: appsrc-seekable.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -MT appsrc_seekable-appsrc-seekable.obj -MD -MP -MF $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo -c -o appsrc_seekable-appsrc-seekable.obj `if test -f 'appsrc-seekable.c'; then $(CYGPATH_W) 'appsrc-seekable.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-seekable.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_seekable-appsrc-seekable.Tpo $(DEPDIR)/appsrc_seekable-appsrc-seekable.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-seekable.c' object='appsrc_seekable-appsrc-seekable.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) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.obj `if test -f 'appsrc-seekable.c'; then $(CYGPATH_W) 'appsrc-seekable.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-seekable.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_seekable_CFLAGS) $(CFLAGS) -c -o appsrc_seekable-appsrc-seekable.obj `if test -f 'appsrc-seekable.c'; then $(CYGPATH_W) 'appsrc-seekable.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-seekable.c'; fi`
appsrc_stream-appsrc-stream.o: appsrc-stream.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -MT appsrc_stream-appsrc-stream.o -MD -MP -MF $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo -c -o appsrc_stream-appsrc-stream.o `test -f 'appsrc-stream.c' || echo '$(srcdir)/'`appsrc-stream.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo $(DEPDIR)/appsrc_stream-appsrc-stream.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.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) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.o `test -f 'appsrc-stream.c' || echo '$(srcdir)/'`appsrc-stream.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.o `test -f 'appsrc-stream.c' || echo '$(srcdir)/'`appsrc-stream.c
appsrc_stream-appsrc-stream.obj: appsrc-stream.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -MT appsrc_stream-appsrc-stream.obj -MD -MP -MF $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo -c -o appsrc_stream-appsrc-stream.obj `if test -f 'appsrc-stream.c'; then $(CYGPATH_W) 'appsrc-stream.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream-appsrc-stream.Tpo $(DEPDIR)/appsrc_stream-appsrc-stream.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-stream.c' object='appsrc_stream-appsrc-stream.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) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.obj `if test -f 'appsrc-stream.c'; then $(CYGPATH_W) 'appsrc-stream.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream_CFLAGS) $(CFLAGS) -c -o appsrc_stream-appsrc-stream.obj `if test -f 'appsrc-stream.c'; then $(CYGPATH_W) 'appsrc-stream.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream.c'; fi`
appsrc_stream2-appsrc-stream2.o: appsrc-stream2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -MT appsrc_stream2-appsrc-stream2.o -MD -MP -MF $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo -c -o appsrc_stream2-appsrc-stream2.o `test -f 'appsrc-stream2.c' || echo '$(srcdir)/'`appsrc-stream2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo $(DEPDIR)/appsrc_stream2-appsrc-stream2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.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) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.o `test -f 'appsrc-stream2.c' || echo '$(srcdir)/'`appsrc-stream2.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.o `test -f 'appsrc-stream2.c' || echo '$(srcdir)/'`appsrc-stream2.c
appsrc_stream2-appsrc-stream2.obj: appsrc-stream2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -MT appsrc_stream2-appsrc-stream2.obj -MD -MP -MF $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo -c -o appsrc_stream2-appsrc-stream2.obj `if test -f 'appsrc-stream2.c'; then $(CYGPATH_W) 'appsrc-stream2.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream2.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_stream2-appsrc-stream2.Tpo $(DEPDIR)/appsrc_stream2-appsrc-stream2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc-stream2.c' object='appsrc_stream2-appsrc-stream2.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) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.obj `if test -f 'appsrc-stream2.c'; then $(CYGPATH_W) 'appsrc-stream2.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream2.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_stream2_CFLAGS) $(CFLAGS) -c -o appsrc_stream2-appsrc-stream2.obj `if test -f 'appsrc-stream2.c'; then $(CYGPATH_W) 'appsrc-stream2.c'; else $(CYGPATH_W) '$(srcdir)/appsrc-stream2.c'; fi`
appsrc_ex-appsrc_ex.o: appsrc_ex.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -MT appsrc_ex-appsrc_ex.o -MD -MP -MF $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo -c -o appsrc_ex-appsrc_ex.o `test -f 'appsrc_ex.c' || echo '$(srcdir)/'`appsrc_ex.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo $(DEPDIR)/appsrc_ex-appsrc_ex.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.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) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.o `test -f 'appsrc_ex.c' || echo '$(srcdir)/'`appsrc_ex.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.o `test -f 'appsrc_ex.c' || echo '$(srcdir)/'`appsrc_ex.c
appsrc_ex-appsrc_ex.obj: appsrc_ex.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -MT appsrc_ex-appsrc_ex.obj -MD -MP -MF $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo -c -o appsrc_ex-appsrc_ex.obj `if test -f 'appsrc_ex.c'; then $(CYGPATH_W) 'appsrc_ex.c'; else $(CYGPATH_W) '$(srcdir)/appsrc_ex.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/appsrc_ex-appsrc_ex.Tpo $(DEPDIR)/appsrc_ex-appsrc_ex.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='appsrc_ex.c' object='appsrc_ex-appsrc_ex.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) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.obj `if test -f 'appsrc_ex.c'; then $(CYGPATH_W) 'appsrc_ex.c'; else $(CYGPATH_W) '$(srcdir)/appsrc_ex.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(appsrc_ex_CFLAGS) $(CFLAGS) -c -o appsrc_ex-appsrc_ex.obj `if test -f 'appsrc_ex.c'; then $(CYGPATH_W) 'appsrc_ex.c'; else $(CYGPATH_W) '$(srcdir)/appsrc_ex.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
--- /dev/null
+if HAVE_GTK
+GTK_EXAMPLES = audiomix volume
+else
+GTK_EXAMPLES =
+endif
+
+noinst_PROGRAMS = testchannels $(GTK_EXAMPLES)
+
+testchannels_SOURCES = testchannels.c
+testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+testchannels_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_MAJORMINOR).la \
+ $(GST_LIBS)
+
+if HAVE_GTK
+audiomix_SOURCES = audiomix.c
+audiomix_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+audiomix_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+
+volume_SOURCES = volume.c
+volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+endif
--- /dev/null
+# 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, 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = testchannels$(EXEEXT) $(am__EXEEXT_1)
+subdir = tests/examples/audio
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
+ $(top_srcdir)/common/m4/as-auto-alt.m4 \
+ $(top_srcdir)/common/m4/as-compiler-flag.m4 \
+ $(top_srcdir)/common/m4/as-libtool.m4 \
+ $(top_srcdir)/common/m4/as-python.m4 \
+ $(top_srcdir)/common/m4/as-scrub-include.m4 \
+ $(top_srcdir)/common/m4/as-version.m4 \
+ $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+ $(top_srcdir)/common/m4/gst-arch.m4 \
+ $(top_srcdir)/common/m4/gst-args.m4 \
+ $(top_srcdir)/common/m4/gst-check.m4 \
+ $(top_srcdir)/common/m4/gst-default.m4 \
+ $(top_srcdir)/common/m4/gst-error.m4 \
+ $(top_srcdir)/common/m4/gst-feature.m4 \
+ $(top_srcdir)/common/m4/gst-function.m4 \
+ $(top_srcdir)/common/m4/gst-gettext.m4 \
+ $(top_srcdir)/common/m4/gst-glib2.m4 \
+ $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
+ $(top_srcdir)/common/m4/gst-plugin-docs.m4 \
+ $(top_srcdir)/common/m4/gst-plugindir.m4 \
+ $(top_srcdir)/common/m4/gst-x11.m4 \
+ $(top_srcdir)/common/m4/gst.m4 \
+ $(top_srcdir)/common/m4/gtk-doc.m4 \
+ $(top_srcdir)/common/m4/introspection.m4 \
+ $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
+ $(top_srcdir)/m4/freetype2.m4 $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/gst-alsa.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/lrint.m4 $(top_srcdir)/m4/lrintf.m4 \
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/ogg.m4 \
+ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/m4/vorbis.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+@HAVE_GTK_TRUE@am__EXEEXT_1 = audiomix$(EXEEXT) volume$(EXEEXT)
+PROGRAMS = $(noinst_PROGRAMS)
+am__audiomix_SOURCES_DIST = audiomix.c
+@HAVE_GTK_TRUE@am_audiomix_OBJECTS = audiomix-audiomix.$(OBJEXT)
+audiomix_OBJECTS = $(am_audiomix_OBJECTS)
+am__DEPENDENCIES_1 =
+@HAVE_GTK_TRUE@audiomix_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@HAVE_GTK_TRUE@ $(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
+audiomix_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(audiomix_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_testchannels_OBJECTS = testchannels-testchannels.$(OBJEXT)
+testchannels_OBJECTS = $(am_testchannels_OBJECTS)
+testchannels_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_MAJORMINOR).la \
+ $(am__DEPENDENCIES_1)
+testchannels_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testchannels_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__volume_SOURCES_DIST = volume.c
+@HAVE_GTK_TRUE@am_volume_OBJECTS = volume-volume.$(OBJEXT)
+volume_OBJECTS = $(am_volume_OBJECTS)
+@HAVE_GTK_TRUE@volume_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+@HAVE_GTK_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+volume_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(volume_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+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_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+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_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+SOURCES = $(audiomix_SOURCES) $(testchannels_SOURCES) \
+ $(volume_SOURCES)
+DIST_SOURCES = $(am__audiomix_SOURCES_DIST) $(testchannels_SOURCES) \
+ $(am__volume_SOURCES_DIST)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUDIORESAMPLE_FORMAT_AUTO = @AUDIORESAMPLE_FORMAT_AUTO@
+AUDIORESAMPLE_FORMAT_FLOAT = @AUDIORESAMPLE_FORMAT_FLOAT@
+AUDIORESAMPLE_FORMAT_INT = @AUDIORESAMPLE_FORMAT_INT@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CDPARANOIA_CFLAGS = @CDPARANOIA_CFLAGS@
+CDPARANOIA_LIBS = @CDPARANOIA_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@
+DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@
+DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@
+DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@
+DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
+EXEEXT = @EXEEXT@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+FT2_CFLAGS = @FT2_CFLAGS@
+FT2_CONFIG = @FT2_CONFIG@
+FT2_LIBS = @FT2_LIBS@
+GCOV = @GCOV@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LIBS = @GCOV_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+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@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNOME_VFS_CFLAGS = @GNOME_VFS_CFLAGS@
+GNOME_VFS_LIBS = @GNOME_VFS_LIBS@
+GREP = @GREP@
+GST_AGE = @GST_AGE@
+GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
+GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
+GST_BASE_LIBS = @GST_BASE_LIBS@
+GST_CFLAGS = @GST_CFLAGS@
+GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@
+GST_CHECK_LIBS = @GST_CHECK_LIBS@
+GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
+GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
+GST_CURRENT = @GST_CURRENT@
+GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_DISABLE_ALLOC_TRACE = @GST_DISABLE_ALLOC_TRACE@
+GST_DISABLE_GST_DEBUG = @GST_DISABLE_GST_DEBUG@
+GST_DISABLE_LOADSAVE = @GST_DISABLE_LOADSAVE@
+GST_DISABLE_PARSE = @GST_DISABLE_PARSE@
+GST_DISABLE_PLUGIN = @GST_DISABLE_PLUGIN@
+GST_DISABLE_REGISTRY = @GST_DISABLE_REGISTRY@
+GST_DISABLE_TRACE = @GST_DISABLE_TRACE@
+GST_DISABLE_XML = @GST_DISABLE_XML@
+GST_GDP_CFLAGS = @GST_GDP_CFLAGS@
+GST_GDP_LIBS = @GST_GDP_LIBS@
+GST_INSTALL_PLUGINS_HELPER = @GST_INSTALL_PLUGINS_HELPER@
+GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
+GST_LIBS = @GST_LIBS@
+GST_LIBVERSION = @GST_LIBVERSION@
+GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
+GST_LICENSE = @GST_LICENSE@
+GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_MAJORMINOR = @GST_MAJORMINOR@
+GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
+GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
+GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
+GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
+GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
+GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
+GST_PLUGINS_DIR = @GST_PLUGINS_DIR@
+GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
+GTK_X11_LIBS = @GTK_X11_LIBS@
+GUDEV_CFLAGS = @GUDEV_CFLAGS@
+GUDEV_LIBS = @GUDEV_LIBS@
+HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
+HAVE_X = @HAVE_X@
+HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
+HSTRERROR_LIBS = @HSTRERROR_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
+IVORBIS_LIBS = @IVORBIS_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVISUAL_CFLAGS = @LIBVISUAL_CFLAGS@
+LIBVISUAL_LIBS = @LIBVISUAL_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALEDIR = @LOCALEDIR@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OGG_CFLAGS = @OGG_CFLAGS@
+OGG_LIBS = @OGG_LIBS@
+ORCC = @ORCC@
+ORCC_FLAGS = @ORCC_FLAGS@
+ORC_CFLAGS = @ORC_CFLAGS@
+ORC_LIBS = @ORC_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
+PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
+PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
+PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
+PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
+PANGO_CFLAGS = @PANGO_CFLAGS@
+PANGO_LIBS = @PANGO_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGINDIR = @PLUGINDIR@
+POSUB = @POSUB@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QT4_MOC = @QT4_MOC@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+THEORA_CFLAGS = @THEORA_CFLAGS@
+THEORA_LIBS = @THEORA_LIBS@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VORBISENC_LIBS = @VORBISENC_LIBS@
+VORBISFILE_LIBS = @VORBISFILE_LIBS@
+VORBIS_CFLAGS = @VORBIS_CFLAGS@
+VORBIS_LIBS = @VORBIS_LIBS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
+WIN32_LIBS = @WIN32_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XMKMF = @XMKMF@
+XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_LIBS = @XVIDEO_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
+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@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+@HAVE_GTK_FALSE@GTK_EXAMPLES =
+@HAVE_GTK_TRUE@GTK_EXAMPLES = audiomix volume
+testchannels_SOURCES = testchannels.c
+testchannels_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+testchannels_LDADD = $(top_builddir)/gst-libs/gst/audio/libgstaudio-$(GST_MAJORMINOR).la \
+ $(GST_LIBS)
+
+@HAVE_GTK_TRUE@audiomix_SOURCES = audiomix.c
+@HAVE_GTK_TRUE@audiomix_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+@HAVE_GTK_TRUE@audiomix_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+@HAVE_GTK_TRUE@volume_SOURCES = volume.c
+@HAVE_GTK_TRUE@volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
+@HAVE_GTK_TRUE@volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/audio/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu tests/examples/audio/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+audiomix$(EXEEXT): $(audiomix_OBJECTS) $(audiomix_DEPENDENCIES) $(EXTRA_audiomix_DEPENDENCIES)
+ @rm -f audiomix$(EXEEXT)
+ $(AM_V_CCLD)$(audiomix_LINK) $(audiomix_OBJECTS) $(audiomix_LDADD) $(LIBS)
+testchannels$(EXEEXT): $(testchannels_OBJECTS) $(testchannels_DEPENDENCIES) $(EXTRA_testchannels_DEPENDENCIES)
+ @rm -f testchannels$(EXEEXT)
+ $(AM_V_CCLD)$(testchannels_LINK) $(testchannels_OBJECTS) $(testchannels_LDADD) $(LIBS)
+volume$(EXEEXT): $(volume_OBJECTS) $(volume_DEPENDENCIES) $(EXTRA_volume_DEPENDENCIES)
+ @rm -f volume$(EXEEXT)
+ $(AM_V_CCLD)$(volume_LINK) $(volume_OBJECTS) $(volume_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/audiomix-audiomix.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testchannels-testchannels.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/volume-volume.Po@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
+@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@ $(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
+@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@ $(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
+@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@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+audiomix-audiomix.o: audiomix.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audiomix_CFLAGS) $(CFLAGS) -MT audiomix-audiomix.o -MD -MP -MF $(DEPDIR)/audiomix-audiomix.Tpo -c -o audiomix-audiomix.o `test -f 'audiomix.c' || echo '$(srcdir)/'`audiomix.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiomix-audiomix.Tpo $(DEPDIR)/audiomix-audiomix.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiomix.c' object='audiomix-audiomix.o' 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) $(audiomix_CFLAGS) $(CFLAGS) -c -o audiomix-audiomix.o `test -f 'audiomix.c' || echo '$(srcdir)/'`audiomix.c
+
+audiomix-audiomix.obj: audiomix.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audiomix_CFLAGS) $(CFLAGS) -MT audiomix-audiomix.obj -MD -MP -MF $(DEPDIR)/audiomix-audiomix.Tpo -c -o audiomix-audiomix.obj `if test -f 'audiomix.c'; then $(CYGPATH_W) 'audiomix.c'; else $(CYGPATH_W) '$(srcdir)/audiomix.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audiomix-audiomix.Tpo $(DEPDIR)/audiomix-audiomix.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audiomix.c' object='audiomix-audiomix.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) $(audiomix_CFLAGS) $(CFLAGS) -c -o audiomix-audiomix.obj `if test -f 'audiomix.c'; then $(CYGPATH_W) 'audiomix.c'; else $(CYGPATH_W) '$(srcdir)/audiomix.c'; fi`
+
+testchannels-testchannels.o: testchannels.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.o -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testchannels.c' object='testchannels-testchannels.o' 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) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.o `test -f 'testchannels.c' || echo '$(srcdir)/'`testchannels.c
+
+testchannels-testchannels.obj: testchannels.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testchannels_CFLAGS) $(CFLAGS) -MT testchannels-testchannels.obj -MD -MP -MF $(DEPDIR)/testchannels-testchannels.Tpo -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/testchannels-testchannels.Tpo $(DEPDIR)/testchannels-testchannels.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='testchannels.c' object='testchannels-testchannels.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) $(testchannels_CFLAGS) $(CFLAGS) -c -o testchannels-testchannels.obj `if test -f 'testchannels.c'; then $(CYGPATH_W) 'testchannels.c'; else $(CYGPATH_W) '$(srcdir)/testchannels.c'; fi`
+
+volume-volume.o: volume.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.o -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='volume.c' object='volume-volume.o' 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) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
+
+volume-volume.obj: volume.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.obj -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='volume.c' object='volume-volume.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) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ 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:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-noinstPROGRAMS ctags distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distdir dvi dvi-am html html-am info info-am \
+ install install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+ pdf pdf-am ps ps-am tags uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
--- /dev/null
+/* GStreamer
+ *
+ * audiomix.c: sample audio mixing application
+ *
+ * Copyright (C) 2011 Stefan Sauer <ensonic@users.sf.net>
+ *
+ * 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 <string.h>
+#include <gst/gst.h>
+#include <gtk/gtk.h>
+
+/* global items for the interaction */
+static GtkWidget *scale;
+static GObject *volumes[2];
+static gint num_vol = 0;
+
+
+static void
+value_changed_callback (GtkWidget * widget, gpointer * user_data)
+{
+ gdouble value = gtk_range_get_value (GTK_RANGE (widget));
+ g_object_set (volumes[0], "volume", 1.0 - value, NULL);
+ g_object_set (volumes[1], "volume", value, NULL);
+}
+
+static void
+setup_gui (GstElement * volume, gchar * file_name1, gchar * file_name2)
+{
+ GtkWidget *window, *layout, *label;
+ gchar *name, *ext;
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title (GTK_WINDOW (window), "audiomix");
+ g_signal_connect (window, "destroy", gtk_main_quit, NULL);
+
+ layout = gtk_table_new (2, 3, FALSE);
+ gtk_table_set_col_spacings (GTK_TABLE (layout), 6);
+ gtk_container_add (GTK_CONTAINER (window), layout);
+
+ /* channel labels */
+ name = g_path_get_basename (file_name1);
+ if ((ext = strrchr (name, '.')))
+ *ext = '\0';
+ label = gtk_label_new (name);
+ g_free (name);
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_table_attach_defaults (GTK_TABLE (layout), label, 0, 1, 0, 1);
+
+ gtk_table_attach_defaults (GTK_TABLE (layout), gtk_label_new ("|"), 1, 2, 0,
+ 1);
+
+ name = g_path_get_basename (file_name2);
+ if ((ext = strrchr (name, '.')))
+ *ext = '\0';
+ label = gtk_label_new (name);
+ g_free (name);
+ gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
+ gtk_table_attach_defaults (GTK_TABLE (layout), label, 2, 3, 0, 1);
+
+ /* mix slider */
+ scale = gtk_hscale_new_with_range (0.0, 1.0, 1.0 / 200.0);
+ gtk_range_set_value (GTK_RANGE (scale), 0.0);
+ gtk_widget_set_size_request (scale, 200, -1);
+ gtk_table_attach_defaults (GTK_TABLE (layout), scale, 0, 3, 1, 2);
+ g_signal_connect (scale, "value-changed",
+ G_CALLBACK (value_changed_callback), volume);
+
+ gtk_widget_show_all (GTK_WIDGET (window));
+}
+
+static void
+message_received (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
+{
+ const GstStructure *s;
+
+ s = gst_message_get_structure (message);
+ g_print ("message from \"%s\" (%s): ",
+ GST_STR_NULL (GST_ELEMENT_NAME (GST_MESSAGE_SRC (message))),
+ gst_message_type_get_name (GST_MESSAGE_TYPE (message)));
+ if (s) {
+ gchar *sstr;
+
+ sstr = gst_structure_to_string (s);
+ g_print ("%s\n", sstr);
+ g_free (sstr);
+ } else {
+ g_print ("no message details\n");
+ }
+}
+
+static void
+eos_message_received (GstBus * bus, GstMessage * message,
+ GstPipeline * pipeline)
+{
+ message_received (bus, message, pipeline);
+ gtk_main_quit ();
+}
+
+static void
+dynamic_link (GstPadTemplate * templ, GstPad * newpad, gpointer user_data)
+{
+ GstPad *target = GST_PAD (user_data);
+
+ gst_pad_link (newpad, target);
+ gst_object_unref (target);
+}
+
+static void
+make_mixer_channel (GstElement * pipeline, GstElement * mix, gchar * file_name)
+{
+ GstElement *filesrc, *decodebin, *volume, *convert, *format;
+ GstCaps *caps;
+
+ /* prepare mixer channel */
+ filesrc = gst_element_factory_make ("filesrc", NULL);
+ decodebin = gst_element_factory_make ("decodebin2", NULL);
+ volume = gst_element_factory_make ("volume", NULL);
+ convert = gst_element_factory_make ("audioconvert", NULL);
+ format = gst_element_factory_make ("capsfilter", NULL);
+ gst_bin_add_many (GST_BIN (pipeline), filesrc, decodebin, volume, convert,
+ format, NULL);
+ gst_element_link (filesrc, decodebin);
+ gst_element_link_many (volume, convert, format, mix, NULL);
+
+ /* configure elements */
+ g_object_set (filesrc, "location", file_name, NULL);
+ g_object_set (volume, "volume", (num_vol == 0) ? 1.0 : 0.0, NULL);
+
+ caps = gst_caps_from_string ("audio/x-raw-int, "
+ "channels = (int) 2, "
+ "endianness = (int) BYTE_ORDER, "
+ "width = (int) 16, " "depth = (int) 16, " "signed = (boolean) true");
+ g_object_set (format, "caps", caps, NULL);
+ gst_caps_unref (caps);
+
+ /* remember volume element */
+ volumes[num_vol++] = (GObject *) volume;
+
+ /* handle dynamic pads */
+ g_signal_connect (G_OBJECT (decodebin), "pad-added",
+ G_CALLBACK (dynamic_link), gst_element_get_static_pad (volume, "sink"));
+}
+
+int
+main (int argc, char *argv[])
+{
+ GstElement *pipeline = NULL;
+ GstElement *mix, *convert, *sink;
+ GstBus *bus;
+
+ if (argc < 3) {
+ g_print ("Usage: audiomix <file1> <file2>\n");
+ return 1;
+ }
+
+ gst_init (&argc, &argv);
+ gtk_init (&argc, &argv);
+
+ /* prepare tail of pipeline */
+ pipeline = gst_pipeline_new ("audiomix");
+ mix = gst_element_factory_make ("adder", NULL);
+ convert = gst_element_factory_make ("audioconvert", NULL);
+ sink = gst_element_factory_make ("autoaudiosink", NULL);
+ gst_bin_add_many (GST_BIN (pipeline), mix, convert, sink, NULL);
+ gst_element_link_many (mix, convert, sink, NULL);
+
+ /* prepare mixer channel strips */
+ make_mixer_channel (pipeline, mix, argv[1]);
+ make_mixer_channel (pipeline, mix, argv[2]);
+
+ /* setup message handling */
+ bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+ gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
+ g_signal_connect (bus, "message::error", (GCallback) message_received,
+ pipeline);
+ g_signal_connect (bus, "message::warning", (GCallback) message_received,
+ pipeline);
+ g_signal_connect (bus, "message::eos", (GCallback) eos_message_received,
+ pipeline);
+
+ /* setup GUI */
+ setup_gui (pipeline, argv[1], argv[2]);
+
+ /* go to main loop */
+ gst_element_set_state (pipeline, GST_STATE_PLAYING);
+ gtk_main ();
+ gst_element_set_state (pipeline, GST_STATE_NULL);
+ gst_object_unref (pipeline);
+
+ return 0;
+}
* Boston, MA 02111-1307, USA.
*/
-#include "multichannel.c"
-#include "audio-enumtypes.c"
+#include <gst/audio/multichannel.h>
+#include <gst/audio/audio-enumtypes.h>
gint
main (gint argc, gchar * argv[])
#include <gtk/gtk.h>
/* global pointer for the scale widget */
-GtkWidget *elapsed;
-GtkWidget *scale;
+static GtkWidget *elapsed;
+static GtkWidget *scale;
#ifndef M_LN10
#define M_LN10 (log(10.0))
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
addstream_OBJECTS = $(am_addstream_OBJECTS)
am__DEPENDENCIES_1 =
addstream_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
addstream_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(addstream_CFLAGS) \
$(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 = $(addstream_SOURCES) $(codec_select_SOURCES) \
$(sprinkle_SOURCES) $(sprinkle2_SOURCES) $(sprinkle3_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-addstream$(EXEEXT): $(addstream_OBJECTS) $(addstream_DEPENDENCIES)
+addstream$(EXEEXT): $(addstream_OBJECTS) $(addstream_DEPENDENCIES) $(EXTRA_addstream_DEPENDENCIES)
@rm -f addstream$(EXEEXT)
$(AM_V_CCLD)$(addstream_LINK) $(addstream_OBJECTS) $(addstream_LDADD) $(LIBS)
-codec-select$(EXEEXT): $(codec_select_OBJECTS) $(codec_select_DEPENDENCIES)
+codec-select$(EXEEXT): $(codec_select_OBJECTS) $(codec_select_DEPENDENCIES) $(EXTRA_codec_select_DEPENDENCIES)
@rm -f codec-select$(EXEEXT)
$(AM_V_CCLD)$(codec_select_LINK) $(codec_select_OBJECTS) $(codec_select_LDADD) $(LIBS)
-sprinkle$(EXEEXT): $(sprinkle_OBJECTS) $(sprinkle_DEPENDENCIES)
+sprinkle$(EXEEXT): $(sprinkle_OBJECTS) $(sprinkle_DEPENDENCIES) $(EXTRA_sprinkle_DEPENDENCIES)
@rm -f sprinkle$(EXEEXT)
$(AM_V_CCLD)$(sprinkle_LINK) $(sprinkle_OBJECTS) $(sprinkle_LDADD) $(LIBS)
-sprinkle2$(EXEEXT): $(sprinkle2_OBJECTS) $(sprinkle2_DEPENDENCIES)
+sprinkle2$(EXEEXT): $(sprinkle2_OBJECTS) $(sprinkle2_DEPENDENCIES) $(EXTRA_sprinkle2_DEPENDENCIES)
@rm -f sprinkle2$(EXEEXT)
$(AM_V_CCLD)$(sprinkle2_LINK) $(sprinkle2_OBJECTS) $(sprinkle2_LDADD) $(LIBS)
-sprinkle3$(EXEEXT): $(sprinkle3_OBJECTS) $(sprinkle3_DEPENDENCIES)
+sprinkle3$(EXEEXT): $(sprinkle3_OBJECTS) $(sprinkle3_DEPENDENCIES) $(EXTRA_sprinkle3_DEPENDENCIES)
@rm -f sprinkle3$(EXEEXT)
$(AM_V_CCLD)$(sprinkle3_LINK) $(sprinkle3_OBJECTS) $(sprinkle3_LDADD) $(LIBS)
.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 $@ $<
addstream-addstream.o: addstream.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -MT addstream-addstream.o -MD -MP -MF $(DEPDIR)/addstream-addstream.Tpo -c -o addstream-addstream.o `test -f 'addstream.c' || echo '$(srcdir)/'`addstream.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/addstream-addstream.Tpo $(DEPDIR)/addstream-addstream.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='addstream.c' object='addstream-addstream.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='addstream.c' object='addstream-addstream.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) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.o `test -f 'addstream.c' || echo '$(srcdir)/'`addstream.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.o `test -f 'addstream.c' || echo '$(srcdir)/'`addstream.c
addstream-addstream.obj: addstream.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -MT addstream-addstream.obj -MD -MP -MF $(DEPDIR)/addstream-addstream.Tpo -c -o addstream-addstream.obj `if test -f 'addstream.c'; then $(CYGPATH_W) 'addstream.c'; else $(CYGPATH_W) '$(srcdir)/addstream.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/addstream-addstream.Tpo $(DEPDIR)/addstream-addstream.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='addstream.c' object='addstream-addstream.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='addstream.c' object='addstream-addstream.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) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.obj `if test -f 'addstream.c'; then $(CYGPATH_W) 'addstream.c'; else $(CYGPATH_W) '$(srcdir)/addstream.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(addstream_CFLAGS) $(CFLAGS) -c -o addstream-addstream.obj `if test -f 'addstream.c'; then $(CYGPATH_W) 'addstream.c'; else $(CYGPATH_W) '$(srcdir)/addstream.c'; fi`
codec_select-codec-select.o: codec-select.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -MT codec_select-codec-select.o -MD -MP -MF $(DEPDIR)/codec_select-codec-select.Tpo -c -o codec_select-codec-select.o `test -f 'codec-select.c' || echo '$(srcdir)/'`codec-select.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/codec_select-codec-select.Tpo $(DEPDIR)/codec_select-codec-select.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='codec-select.c' object='codec_select-codec-select.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='codec-select.c' object='codec_select-codec-select.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) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.o `test -f 'codec-select.c' || echo '$(srcdir)/'`codec-select.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.o `test -f 'codec-select.c' || echo '$(srcdir)/'`codec-select.c
codec_select-codec-select.obj: codec-select.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -MT codec_select-codec-select.obj -MD -MP -MF $(DEPDIR)/codec_select-codec-select.Tpo -c -o codec_select-codec-select.obj `if test -f 'codec-select.c'; then $(CYGPATH_W) 'codec-select.c'; else $(CYGPATH_W) '$(srcdir)/codec-select.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/codec_select-codec-select.Tpo $(DEPDIR)/codec_select-codec-select.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='codec-select.c' object='codec_select-codec-select.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='codec-select.c' object='codec_select-codec-select.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) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.obj `if test -f 'codec-select.c'; then $(CYGPATH_W) 'codec-select.c'; else $(CYGPATH_W) '$(srcdir)/codec-select.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(codec_select_CFLAGS) $(CFLAGS) -c -o codec_select-codec-select.obj `if test -f 'codec-select.c'; then $(CYGPATH_W) 'codec-select.c'; else $(CYGPATH_W) '$(srcdir)/codec-select.c'; fi`
sprinkle-sprinkle.o: sprinkle.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -MT sprinkle-sprinkle.o -MD -MP -MF $(DEPDIR)/sprinkle-sprinkle.Tpo -c -o sprinkle-sprinkle.o `test -f 'sprinkle.c' || echo '$(srcdir)/'`sprinkle.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle-sprinkle.Tpo $(DEPDIR)/sprinkle-sprinkle.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sprinkle.c' object='sprinkle-sprinkle.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sprinkle.c' object='sprinkle-sprinkle.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) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.o `test -f 'sprinkle.c' || echo '$(srcdir)/'`sprinkle.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.o `test -f 'sprinkle.c' || echo '$(srcdir)/'`sprinkle.c
sprinkle-sprinkle.obj: sprinkle.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -MT sprinkle-sprinkle.obj -MD -MP -MF $(DEPDIR)/sprinkle-sprinkle.Tpo -c -o sprinkle-sprinkle.obj `if test -f 'sprinkle.c'; then $(CYGPATH_W) 'sprinkle.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle-sprinkle.Tpo $(DEPDIR)/sprinkle-sprinkle.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sprinkle.c' object='sprinkle-sprinkle.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sprinkle.c' object='sprinkle-sprinkle.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) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.obj `if test -f 'sprinkle.c'; then $(CYGPATH_W) 'sprinkle.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle_CFLAGS) $(CFLAGS) -c -o sprinkle-sprinkle.obj `if test -f 'sprinkle.c'; then $(CYGPATH_W) 'sprinkle.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle.c'; fi`
sprinkle2-sprinkle2.o: sprinkle2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -MT sprinkle2-sprinkle2.o -MD -MP -MF $(DEPDIR)/sprinkle2-sprinkle2.Tpo -c -o sprinkle2-sprinkle2.o `test -f 'sprinkle2.c' || echo '$(srcdir)/'`sprinkle2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle2-sprinkle2.Tpo $(DEPDIR)/sprinkle2-sprinkle2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sprinkle2.c' object='sprinkle2-sprinkle2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sprinkle2.c' object='sprinkle2-sprinkle2.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) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.o `test -f 'sprinkle2.c' || echo '$(srcdir)/'`sprinkle2.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.o `test -f 'sprinkle2.c' || echo '$(srcdir)/'`sprinkle2.c
sprinkle2-sprinkle2.obj: sprinkle2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -MT sprinkle2-sprinkle2.obj -MD -MP -MF $(DEPDIR)/sprinkle2-sprinkle2.Tpo -c -o sprinkle2-sprinkle2.obj `if test -f 'sprinkle2.c'; then $(CYGPATH_W) 'sprinkle2.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle2.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle2-sprinkle2.Tpo $(DEPDIR)/sprinkle2-sprinkle2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sprinkle2.c' object='sprinkle2-sprinkle2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sprinkle2.c' object='sprinkle2-sprinkle2.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) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.obj `if test -f 'sprinkle2.c'; then $(CYGPATH_W) 'sprinkle2.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle2.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle2_CFLAGS) $(CFLAGS) -c -o sprinkle2-sprinkle2.obj `if test -f 'sprinkle2.c'; then $(CYGPATH_W) 'sprinkle2.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle2.c'; fi`
sprinkle3-sprinkle3.o: sprinkle3.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -MT sprinkle3-sprinkle3.o -MD -MP -MF $(DEPDIR)/sprinkle3-sprinkle3.Tpo -c -o sprinkle3-sprinkle3.o `test -f 'sprinkle3.c' || echo '$(srcdir)/'`sprinkle3.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle3-sprinkle3.Tpo $(DEPDIR)/sprinkle3-sprinkle3.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sprinkle3.c' object='sprinkle3-sprinkle3.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sprinkle3.c' object='sprinkle3-sprinkle3.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) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.o `test -f 'sprinkle3.c' || echo '$(srcdir)/'`sprinkle3.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.o `test -f 'sprinkle3.c' || echo '$(srcdir)/'`sprinkle3.c
sprinkle3-sprinkle3.obj: sprinkle3.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -MT sprinkle3-sprinkle3.obj -MD -MP -MF $(DEPDIR)/sprinkle3-sprinkle3.Tpo -c -o sprinkle3-sprinkle3.obj `if test -f 'sprinkle3.c'; then $(CYGPATH_W) 'sprinkle3.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle3.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/sprinkle3-sprinkle3.Tpo $(DEPDIR)/sprinkle3-sprinkle3.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sprinkle3.c' object='sprinkle3-sprinkle3.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sprinkle3.c' object='sprinkle3-sprinkle3.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) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.obj `if test -f 'sprinkle3.c'; then $(CYGPATH_W) 'sprinkle3.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle3.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(sprinkle3_CFLAGS) $(CFLAGS) -c -o sprinkle3-sprinkle3.obj `if test -f 'sprinkle3.c'; then $(CYGPATH_W) 'sprinkle3.c'; else $(CYGPATH_W) '$(srcdir)/sprinkle3.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
noinst_PROGRAMS = $(examples)
LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+ $(GST_BASE_LIBS) \
$(GST_LIBS)
AM_CFLAGS = -I$(top_builddir)/gst-libs \
$(GST_PLUGINS_BASE_CFLAGS) \
+ $(GST_BASE_CFLAGS) \
$(GST_CFLAGS)
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
encoding_LDADD = $(LDADD)
am__DEPENDENCIES_1 =
encoding_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
- $(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
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
$(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 = $(encoding_SOURCES)
DIST_SOURCES = $(encoding_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
encoding_SOURCES = gstcapslist.c encoding.c
EXTRA_DIST = gstcapslist.h
LDADD = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
+ $(GST_BASE_LIBS) \
$(GST_LIBS)
AM_CFLAGS = -I$(top_builddir)/gst-libs \
$(GST_PLUGINS_BASE_CFLAGS) \
+ $(GST_BASE_CFLAGS) \
$(GST_CFLAGS)
all: all-am
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-encoding$(EXEEXT): $(encoding_OBJECTS) $(encoding_DEPENDENCIES)
+encoding$(EXEEXT): $(encoding_OBJECTS) $(encoding_DEPENDENCIES) $(EXTRA_encoding_DEPENDENCIES)
@rm -f encoding$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(encoding_OBJECTS) $(encoding_LDADD) $(LIBS)
.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 $@ $<
mostlyclean-libtool:
-rm -f *.lo
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:
GstEncodingProfile *prof;
gchar *inputuri;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported ())
g_thread_init (NULL);
+#endif
ctx = g_option_context_new ("- encode URIs with GstProfile and encodebin");
g_option_context_add_main_entries (ctx, options, NULL);
return 1;
}
- /* Trancode file */
+ /* Transcode file */
transcode_file (inputuri, outputuri, prof);
/* cleanup */
--- /dev/null
+
+noinst_PROGRAMS = fftrange
+fftrange_SOURCES = fftrange.c
+fftrange_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+fftrange_LDADD = \
+ $(top_builddir)/gst-libs/gst/fft/libgstfft-$(GST_MAJORMINOR).la \
+ $(GST_LIBS)
+
-# 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.
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
-@HAVE_GTK_TRUE@noinst_PROGRAMS = volume$(EXEEXT)
-subdir = tests/examples/volume
+noinst_PROGRAMS = fftrange$(EXEEXT)
+subdir = tests/examples/fft
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
PROGRAMS = $(noinst_PROGRAMS)
-am__volume_SOURCES_DIST = volume.c
-@HAVE_GTK_TRUE@am_volume_OBJECTS = volume-volume.$(OBJEXT)
-volume_OBJECTS = $(am_volume_OBJECTS)
+am_fftrange_OBJECTS = fftrange-fftrange.$(OBJEXT)
+fftrange_OBJECTS = $(am_fftrange_OBJECTS)
am__DEPENDENCIES_1 =
-@HAVE_GTK_TRUE@volume_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-@HAVE_GTK_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
-AM_V_lt = $(am__v_lt_$(V))
-am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
+fftrange_DEPENDENCIES = $(top_builddir)/gst-libs/gst/fft/libgstfft-$(GST_MAJORMINOR).la \
+ $(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
-volume_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(volume_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
+fftrange_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(fftrange_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
$(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 = $(volume_SOURCES)
-DIST_SOURCES = $(am__volume_SOURCES_DIST)
+SOURCES = $(fftrange_SOURCES)
+DIST_SOURCES = $(fftrange_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-@HAVE_GTK_TRUE@volume_SOURCES = volume.c
-@HAVE_GTK_TRUE@volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
-@HAVE_GTK_TRUE@volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
+fftrange_SOURCES = fftrange.c
+fftrange_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+fftrange_LDADD = \
+ $(top_builddir)/gst-libs/gst/fft/libgstfft-$(GST_MAJORMINOR).la \
+ $(GST_LIBS)
+
all: all-am
.SUFFIXES:
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/volume/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/fft/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu tests/examples/volume/Makefile
+ $(AUTOMAKE) --gnu tests/examples/fft/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-volume$(EXEEXT): $(volume_OBJECTS) $(volume_DEPENDENCIES)
- @rm -f volume$(EXEEXT)
- $(AM_V_CCLD)$(volume_LINK) $(volume_OBJECTS) $(volume_LDADD) $(LIBS)
+fftrange$(EXEEXT): $(fftrange_OBJECTS) $(fftrange_DEPENDENCIES) $(EXTRA_fftrange_DEPENDENCIES)
+ @rm -f fftrange$(EXEEXT)
+ $(AM_V_CCLD)$(fftrange_LINK) $(fftrange_OBJECTS) $(fftrange_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/volume-volume.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fftrange-fftrange.Po@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 $@ $<
-volume-volume.o: volume.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.o -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='volume.c' object='volume-volume.o' libtool=no @AMDEPBACKSLASH@
+fftrange-fftrange.o: fftrange.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -MT fftrange-fftrange.o -MD -MP -MF $(DEPDIR)/fftrange-fftrange.Tpo -c -o fftrange-fftrange.o `test -f 'fftrange.c' || echo '$(srcdir)/'`fftrange.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fftrange-fftrange.Tpo $(DEPDIR)/fftrange-fftrange.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fftrange.c' object='fftrange-fftrange.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) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.o `test -f 'volume.c' || echo '$(srcdir)/'`volume.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -c -o fftrange-fftrange.o `test -f 'fftrange.c' || echo '$(srcdir)/'`fftrange.c
-volume-volume.obj: volume.c
-@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(volume_CFLAGS) $(CFLAGS) -MT volume-volume.obj -MD -MP -MF $(DEPDIR)/volume-volume.Tpo -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
-@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/volume-volume.Tpo $(DEPDIR)/volume-volume.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='volume.c' object='volume-volume.obj' libtool=no @AMDEPBACKSLASH@
+fftrange-fftrange.obj: fftrange.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -MT fftrange-fftrange.obj -MD -MP -MF $(DEPDIR)/fftrange-fftrange.Tpo -c -o fftrange-fftrange.obj `if test -f 'fftrange.c'; then $(CYGPATH_W) 'fftrange.c'; else $(CYGPATH_W) '$(srcdir)/fftrange.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fftrange-fftrange.Tpo $(DEPDIR)/fftrange-fftrange.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='fftrange.c' object='fftrange-fftrange.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) $(volume_CFLAGS) $(CFLAGS) -c -o volume-volume.obj `if test -f 'volume.c'; then $(CYGPATH_W) 'volume.c'; else $(CYGPATH_W) '$(srcdir)/volume.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fftrange_CFLAGS) $(CFLAGS) -c -o fftrange-fftrange.obj `if test -f 'fftrange.c'; then $(CYGPATH_W) 'fftrange.c'; else $(CYGPATH_W) '$(srcdir)/fftrange.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
--- /dev/null
+/* GStreamer
+ * (c) 2011 Stefan Kost <ensonic@users.sf.net>
+ *
+ * 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 <stdio.h>
+#include <gst/fft/gstffts16.h>
+#include <gst/fft/gstffts32.h>
+#include <gst/fft/gstfftf32.h>
+#include <gst/fft/gstfftf64.h>
+
+/* effectively max range seems to be 1/4 of what it should be */
+
+#define MAKE_I_TEST(_g_,_G_,_t_,_T_,_f_) \
+static void \
+test_##_t_ (const gchar *test_name, gint num_freq, gint window) \
+{ \
+ GstFFT ##_T_ *ctx; \
+ GstFFT ##_T_ ##Complex *fdata; \
+ _g_ *adata; \
+ _g_ maxfr = 0, maxfi = 0; \
+ gint num_samples = num_freq * 2 - 2; \
+ gint s, f; \
+ \
+ ctx = gst_fft_ ##_t_ ##_new (num_samples, FALSE); \
+ fdata = g_new (GstFFT ##_T_ ##Complex, num_freq); \
+ adata = g_new (_g_, num_samples); \
+ \
+ for (s = 0; s < num_samples;) { \
+ adata[s++]=G_MIN##_G_; \
+ adata[s++]=G_MAX##_G_; \
+ } \
+ \
+ gst_fft_ ##_t_ ##_window (ctx, adata, window); \
+ gst_fft_ ##_t_ ##_fft (ctx, adata, fdata); \
+ \
+ for (f = 0; f < num_freq; f++) { \
+ if (fdata[1+f].r > maxfr) \
+ maxfr = fdata[1+f].r; \
+ if (fdata[1+f].i > maxfi) \
+ maxfi = fdata[1+f].i; \
+ } \
+ \
+ printf (#_t_" %-15s: maxfr: %"_f_" %10.5f maxfi: %"_f_" %10.5f\n",\
+ test_name, \
+ maxfr, (gfloat)G_MAX##_G_/maxfr, \
+ maxfi, (gfloat)G_MAX##_G_/maxfi); \
+ \
+ gst_fft_ ##_t_ ##_free (ctx); \
+ g_free (fdata); \
+ g_free (adata); \
+}
+
+MAKE_I_TEST (gint16, INT16, s16, S16, "6d");
+MAKE_I_TEST (gint32, INT32, s32, S32, "9d");
+
+#define MAKE_F_TEST(_g_,_G_,_t_,_T_,_f_) \
+static void \
+test_##_t_ (const gchar *test_name, gint num_freq, gint window) \
+{ \
+ GstFFT ##_T_ *ctx; \
+ GstFFT ##_T_ ##Complex *fdata; \
+ _g_ *adata; \
+ _g_ maxfr = 0, maxfi = 0; \
+ gint num_samples = num_freq * 2 - 2; \
+ gint s, f; \
+ \
+ ctx = gst_fft_ ##_t_ ##_new (num_samples, FALSE); \
+ fdata = g_new (GstFFT ##_T_ ##Complex, num_freq); \
+ adata = g_new (_g_, num_samples); \
+ \
+ for (s = 0; s < num_samples;) { \
+ adata[s++]=-1.0; \
+ adata[s++]=+1.0; \
+ } \
+ \
+ gst_fft_ ##_t_ ##_window (ctx, adata, window); \
+ gst_fft_ ##_t_ ##_fft (ctx, adata, fdata); \
+ \
+ for (f = 0; f < num_freq; f++) { \
+ if (fdata[1+f].r > maxfr) \
+ maxfr = fdata[1+f].r; \
+ if (fdata[1+f].i > maxfi) \
+ maxfi = fdata[1+f].i; \
+ } \
+ \
+ printf (#_t_" %-15s: maxfr: %"_f_" %10.5f maxfi: %"_f_" %10.5f\n",\
+ test_name, \
+ maxfr, (gfloat)1.0/maxfr, \
+ maxfi, (gfloat)1.0/maxfi); \
+ \
+ gst_fft_ ##_t_ ##_free (ctx); \
+ g_free (fdata); \
+ g_free (adata); \
+}
+
+MAKE_F_TEST (gfloat, FLOAT, f32, F32, "10.5f");
+MAKE_F_TEST (gdouble, DOUBLE, f64, F64, "10.5f");
+
+gint
+main (gint argc, gchar * argv[])
+{
+ gint num_bands;
+
+ gst_init (&argc, &argv);
+
+ num_bands = 200;
+ test_s16 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_s16 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_s16 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_s16 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_s16 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("");
+
+ num_bands = 300;
+ test_s16 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_s16 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_s16 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_s16 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_s16 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("\n");
+
+ num_bands = 200;
+ test_s32 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_s32 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_s32 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_s32 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_s32 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("");
+
+ num_bands = 300;
+ test_s32 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_s32 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_s32 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_s32 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_s32 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("\n");
+
+ num_bands = 200;
+ test_f32 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_f32 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_f32 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_f32 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_f32 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("");
+
+ num_bands = 300;
+ test_f32 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_f32 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_f32 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_f32 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_f32 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("\n");
+
+ num_bands = 200;
+ test_f64 ("200, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_f64 ("200, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_f64 ("200, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_f64 ("200, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_f64 ("200, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("");
+
+ num_bands = 300;
+ test_f64 ("300, none", num_bands, GST_FFT_WINDOW_RECTANGULAR);
+ test_f64 ("300, hamming", num_bands, GST_FFT_WINDOW_HAMMING);
+ test_f64 ("300, hann", num_bands, GST_FFT_WINDOW_HANN);
+ test_f64 ("300, bartlett", num_bands, GST_FFT_WINDOW_BARTLETT);
+ test_f64 ("300, blackman", num_bands, GST_FFT_WINDOW_BLACKMAN);
+ puts ("\n");
+}
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
@HAVE_GTK_TRUE@@USE_GIO_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_GTK_TRUE@@USE_GIO_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_GTK_TRUE@@USE_GIO_TRUE@ $(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
giosrc_mounting_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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 = $(giosrc_mounting_SOURCES)
DIST_SOURCES = $(am__giosrc_mounting_SOURCES_DIST)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-giosrc-mounting$(EXEEXT): $(giosrc_mounting_OBJECTS) $(giosrc_mounting_DEPENDENCIES)
+giosrc-mounting$(EXEEXT): $(giosrc_mounting_OBJECTS) $(giosrc_mounting_DEPENDENCIES) $(EXTRA_giosrc_mounting_DEPENDENCIES)
@rm -f giosrc-mounting$(EXEEXT)
$(AM_V_CCLD)$(giosrc_mounting_LINK) $(giosrc_mounting_OBJECTS) $(giosrc_mounting_LDADD) $(LIBS)
.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 $@ $<
giosrc_mounting-giosrc-mounting.o: giosrc-mounting.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -MT giosrc_mounting-giosrc-mounting.o -MD -MP -MF $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo -c -o giosrc_mounting-giosrc-mounting.o `test -f 'giosrc-mounting.c' || echo '$(srcdir)/'`giosrc-mounting.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo $(DEPDIR)/giosrc_mounting-giosrc-mounting.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.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) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.o `test -f 'giosrc-mounting.c' || echo '$(srcdir)/'`giosrc-mounting.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.o `test -f 'giosrc-mounting.c' || echo '$(srcdir)/'`giosrc-mounting.c
giosrc_mounting-giosrc-mounting.obj: giosrc-mounting.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -MT giosrc_mounting-giosrc-mounting.obj -MD -MP -MF $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo -c -o giosrc_mounting-giosrc-mounting.obj `if test -f 'giosrc-mounting.c'; then $(CYGPATH_W) 'giosrc-mounting.c'; else $(CYGPATH_W) '$(srcdir)/giosrc-mounting.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/giosrc_mounting-giosrc-mounting.Tpo $(DEPDIR)/giosrc_mounting-giosrc-mounting.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='giosrc-mounting.c' object='giosrc_mounting-giosrc-mounting.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) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.obj `if test -f 'giosrc-mounting.c'; then $(CYGPATH_W) 'giosrc-mounting.c'; else $(CYGPATH_W) '$(srcdir)/giosrc-mounting.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(giosrc_mounting_CFLAGS) $(CFLAGS) -c -o giosrc_mounting-giosrc-mounting.obj `if test -f 'giosrc-mounting.c'; then $(CYGPATH_W) 'giosrc-mounting.c'; else $(CYGPATH_W) '$(srcdir)/giosrc-mounting.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(am__DEPENDENCIES_1) \
@HAVE_GTK_X11_TRUE@@USE_X_TRUE@ $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-$(GST_MAJORMINOR).la
-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
gtk_xoverlay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(gtk_xoverlay_CFLAGS) \
$(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)
$(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 = $(gtk_xoverlay_SOURCES) $(qt_xoverlay_SOURCES) \
$(qtgv_xoverlay_SOURCES) $(nodist_qtgv_xoverlay_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-gtk-xoverlay$(EXEEXT): $(gtk_xoverlay_OBJECTS) $(gtk_xoverlay_DEPENDENCIES)
+gtk-xoverlay$(EXEEXT): $(gtk_xoverlay_OBJECTS) $(gtk_xoverlay_DEPENDENCIES) $(EXTRA_gtk_xoverlay_DEPENDENCIES)
@rm -f gtk-xoverlay$(EXEEXT)
$(AM_V_CCLD)$(gtk_xoverlay_LINK) $(gtk_xoverlay_OBJECTS) $(gtk_xoverlay_LDADD) $(LIBS)
-qt-xoverlay$(EXEEXT): $(qt_xoverlay_OBJECTS) $(qt_xoverlay_DEPENDENCIES)
+qt-xoverlay$(EXEEXT): $(qt_xoverlay_OBJECTS) $(qt_xoverlay_DEPENDENCIES) $(EXTRA_qt_xoverlay_DEPENDENCIES)
@rm -f qt-xoverlay$(EXEEXT)
$(AM_V_CXXLD)$(qt_xoverlay_LINK) $(qt_xoverlay_OBJECTS) $(qt_xoverlay_LDADD) $(LIBS)
-qtgv-xoverlay$(EXEEXT): $(qtgv_xoverlay_OBJECTS) $(qtgv_xoverlay_DEPENDENCIES)
+qtgv-xoverlay$(EXEEXT): $(qtgv_xoverlay_OBJECTS) $(qtgv_xoverlay_DEPENDENCIES) $(EXTRA_qtgv_xoverlay_DEPENDENCIES)
@rm -f qtgv-xoverlay$(EXEEXT)
$(AM_V_CXXLD)$(qtgv_xoverlay_LINK) $(qtgv_xoverlay_OBJECTS) $(qtgv_xoverlay_LDADD) $(LIBS)
.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 $@ $<
gtk_xoverlay-gtk-xoverlay.o: gtk-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -MT gtk_xoverlay-gtk-xoverlay.o -MD -MP -MF $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo -c -o gtk_xoverlay-gtk-xoverlay.o `test -f 'gtk-xoverlay.c' || echo '$(srcdir)/'`gtk-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.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) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.o `test -f 'gtk-xoverlay.c' || echo '$(srcdir)/'`gtk-xoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.o `test -f 'gtk-xoverlay.c' || echo '$(srcdir)/'`gtk-xoverlay.c
gtk_xoverlay-gtk-xoverlay.obj: gtk-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -MT gtk_xoverlay-gtk-xoverlay.obj -MD -MP -MF $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo -c -o gtk_xoverlay-gtk-xoverlay.obj `if test -f 'gtk-xoverlay.c'; then $(CYGPATH_W) 'gtk-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/gtk-xoverlay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Tpo $(DEPDIR)/gtk_xoverlay-gtk-xoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gtk-xoverlay.c' object='gtk_xoverlay-gtk-xoverlay.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) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.obj `if test -f 'gtk-xoverlay.c'; then $(CYGPATH_W) 'gtk-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/gtk-xoverlay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gtk_xoverlay_CFLAGS) $(CFLAGS) -c -o gtk_xoverlay-gtk-xoverlay.obj `if test -f 'gtk-xoverlay.c'; then $(CYGPATH_W) 'gtk-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/gtk-xoverlay.c'; fi`
.cpp.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 $@ $<
.cpp.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) '$<'`
.cpp.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 $@ $<
qt_xoverlay-qt-xoverlay.o: qt-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qt_xoverlay-qt-xoverlay.o -MD -MP -MF $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo -c -o qt_xoverlay-qt-xoverlay.o `test -f 'qt-xoverlay.cpp' || echo '$(srcdir)/'`qt-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo $(DEPDIR)/qt_xoverlay-qt-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.o `test -f 'qt-xoverlay.cpp' || echo '$(srcdir)/'`qt-xoverlay.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.o `test -f 'qt-xoverlay.cpp' || echo '$(srcdir)/'`qt-xoverlay.cpp
qt_xoverlay-qt-xoverlay.obj: qt-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qt_xoverlay-qt-xoverlay.obj -MD -MP -MF $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo -c -o qt_xoverlay-qt-xoverlay.obj `if test -f 'qt-xoverlay.cpp'; then $(CYGPATH_W) 'qt-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qt-xoverlay.cpp'; fi`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qt_xoverlay-qt-xoverlay.Tpo $(DEPDIR)/qt_xoverlay-qt-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='qt-xoverlay.cpp' object='qt_xoverlay-qt-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.obj `if test -f 'qt-xoverlay.cpp'; then $(CYGPATH_W) 'qt-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qt-xoverlay.cpp'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qt_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qt_xoverlay-qt-xoverlay.obj `if test -f 'qt-xoverlay.cpp'; then $(CYGPATH_W) 'qt-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qt-xoverlay.cpp'; fi`
qtgv_xoverlay-qtgv-xoverlay.o: qtgv-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-qtgv-xoverlay.o -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-qtgv-xoverlay.o `test -f 'qtgv-xoverlay.cpp' || echo '$(srcdir)/'`qtgv-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.o `test -f 'qtgv-xoverlay.cpp' || echo '$(srcdir)/'`qtgv-xoverlay.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.o `test -f 'qtgv-xoverlay.cpp' || echo '$(srcdir)/'`qtgv-xoverlay.cpp
qtgv_xoverlay-qtgv-xoverlay.obj: qtgv-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-qtgv-xoverlay.obj -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-qtgv-xoverlay.obj `if test -f 'qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qtgv-xoverlay.cpp'; fi`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='qtgv-xoverlay.cpp' object='qtgv_xoverlay-qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.obj `if test -f 'qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qtgv-xoverlay.cpp'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-qtgv-xoverlay.obj `if test -f 'qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/qtgv-xoverlay.cpp'; fi`
qtgv_xoverlay-moc_qtgv-xoverlay.o: moc_qtgv-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-moc_qtgv-xoverlay.o -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-moc_qtgv-xoverlay.o `test -f 'moc_qtgv-xoverlay.cpp' || echo '$(srcdir)/'`moc_qtgv-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.o `test -f 'moc_qtgv-xoverlay.cpp' || echo '$(srcdir)/'`moc_qtgv-xoverlay.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.o `test -f 'moc_qtgv-xoverlay.cpp' || echo '$(srcdir)/'`moc_qtgv-xoverlay.cpp
qtgv_xoverlay-moc_qtgv-xoverlay.obj: moc_qtgv-xoverlay.cpp
@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -MT qtgv_xoverlay-moc_qtgv-xoverlay.obj -MD -MP -MF $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo -c -o qtgv_xoverlay-moc_qtgv-xoverlay.obj `if test -f 'moc_qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'moc_qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_qtgv-xoverlay.cpp'; fi`
@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Tpo $(DEPDIR)/qtgv_xoverlay-moc_qtgv-xoverlay.Po
-@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='moc_qtgv-xoverlay.cpp' object='qtgv_xoverlay-moc_qtgv-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.obj `if test -f 'moc_qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'moc_qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_qtgv-xoverlay.cpp'; fi`
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(qtgv_xoverlay_CXXFLAGS) $(CXXFLAGS) -c -o qtgv_xoverlay-moc_qtgv-xoverlay.obj `if test -f 'moc_qtgv-xoverlay.cpp'; then $(CYGPATH_W) 'moc_qtgv-xoverlay.cpp'; else $(CYGPATH_W) '$(srcdir)/moc_qtgv-xoverlay.cpp'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
gulong embed_xid;
GstStateChangeReturn sret;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported ())
g_thread_init (NULL);
+#endif
gst_init (&argc, &argv);
gtk_init (&argc, &argv);
int main(int argc, char *argv[])
{
+#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported ())
g_thread_init (NULL);
+#endif
gst_init (&argc, &argv);
QApplication app(argc, argv);
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
playrec_OBJECTS = $(am_playrec_OBJECTS)
am__DEPENDENCIES_1 =
playrec_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
playrec_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(playrec_CFLAGS) \
$(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 = $(playrec_SOURCES)
DIST_SOURCES = $(playrec_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-playrec$(EXEEXT): $(playrec_OBJECTS) $(playrec_DEPENDENCIES)
+playrec$(EXEEXT): $(playrec_OBJECTS) $(playrec_DEPENDENCIES) $(EXTRA_playrec_DEPENDENCIES)
@rm -f playrec$(EXEEXT)
$(AM_V_CCLD)$(playrec_LINK) $(playrec_OBJECTS) $(playrec_LDADD) $(LIBS)
.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 $@ $<
playrec-playrec.o: playrec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -MT playrec-playrec.o -MD -MP -MF $(DEPDIR)/playrec-playrec.Tpo -c -o playrec-playrec.o `test -f 'playrec.c' || echo '$(srcdir)/'`playrec.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/playrec-playrec.Tpo $(DEPDIR)/playrec-playrec.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='playrec.c' object='playrec-playrec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='playrec.c' object='playrec-playrec.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) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.o `test -f 'playrec.c' || echo '$(srcdir)/'`playrec.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.o `test -f 'playrec.c' || echo '$(srcdir)/'`playrec.c
playrec-playrec.obj: playrec.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -MT playrec-playrec.obj -MD -MP -MF $(DEPDIR)/playrec-playrec.Tpo -c -o playrec-playrec.obj `if test -f 'playrec.c'; then $(CYGPATH_W) 'playrec.c'; else $(CYGPATH_W) '$(srcdir)/playrec.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/playrec-playrec.Tpo $(DEPDIR)/playrec-playrec.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='playrec.c' object='playrec-playrec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='playrec.c' object='playrec-playrec.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) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.obj `if test -f 'playrec.c'; then $(CYGPATH_W) 'playrec.c'; else $(CYGPATH_W) '$(srcdir)/playrec.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playrec_CFLAGS) $(CFLAGS) -c -o playrec-playrec.obj `if test -f 'playrec.c'; then $(CYGPATH_W) 'playrec.c'; else $(CYGPATH_W) '$(srcdir)/playrec.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
jsseek_DEPENDENCIES = $(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
$(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
scrubby_SOURCES = scrubby.c
scrubby_OBJECTS = scrubby.$(OBJEXT)
$(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 = jsseek.c scrubby.c seek.c stepping.c stepping2.c
DIST_SOURCES = jsseek.c scrubby.c seek.c stepping.c stepping2.c
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-jsseek$(EXEEXT): $(jsseek_OBJECTS) $(jsseek_DEPENDENCIES)
+jsseek$(EXEEXT): $(jsseek_OBJECTS) $(jsseek_DEPENDENCIES) $(EXTRA_jsseek_DEPENDENCIES)
@rm -f jsseek$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(jsseek_OBJECTS) $(jsseek_LDADD) $(LIBS)
-scrubby$(EXEEXT): $(scrubby_OBJECTS) $(scrubby_DEPENDENCIES)
+scrubby$(EXEEXT): $(scrubby_OBJECTS) $(scrubby_DEPENDENCIES) $(EXTRA_scrubby_DEPENDENCIES)
@rm -f scrubby$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(scrubby_OBJECTS) $(scrubby_LDADD) $(LIBS)
-seek$(EXEEXT): $(seek_OBJECTS) $(seek_DEPENDENCIES)
+seek$(EXEEXT): $(seek_OBJECTS) $(seek_DEPENDENCIES) $(EXTRA_seek_DEPENDENCIES)
@rm -f seek$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(seek_OBJECTS) $(seek_LDADD) $(LIBS)
-stepping$(EXEEXT): $(stepping_OBJECTS) $(stepping_DEPENDENCIES)
+stepping$(EXEEXT): $(stepping_OBJECTS) $(stepping_DEPENDENCIES) $(EXTRA_stepping_DEPENDENCIES)
@rm -f stepping$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(stepping_OBJECTS) $(stepping_LDADD) $(LIBS)
-stepping2$(EXEEXT): $(stepping2_OBJECTS) $(stepping2_DEPENDENCIES)
+stepping2$(EXEEXT): $(stepping2_OBJECTS) $(stepping2_DEPENDENCIES) $(EXTRA_stepping2_DEPENDENCIES)
@rm -f stepping2$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(stepping2_OBJECTS) $(stepping2_LDADD) $(LIBS)
.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 $@ $<
mostlyclean-libtool:
-rm -f *.lo
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:
GST_DEBUG_CATEGORY_STATIC (seek_debug);
#define GST_CAT_DEFAULT (seek_debug)
-#if (!GTK_CHECK_VERSION(2, 23, 0) || GTK_CHECK_VERSION(2, 90, 0)) && !GTK_CHECK_VERSION(2, 91, 1)
-#define gtk_combo_box_text_new gtk_combo_box_new_text
-#define gtk_combo_box_text_append_text gtk_combo_box_append_text
-#define gtk_combo_box_text_remove gtk_combo_box_remove_text
-#define GTK_COMBO_BOX_TEXT GTK_COMBO_BOX
-#endif
-
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
- *a = w->allocation;
-}
-#endif
-
/* configuration */
//#define SOURCE "filesrc"
state = STOP_STATE;
gtk_statusbar_push (GTK_STATUSBAR (statusbar), status_id, "Stopped");
+ gtk_widget_queue_draw (video_window);
is_live = FALSE;
buffering = FALSE;
#endif
static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
+draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data)
{
if (state < GST_STATE_PAUSED) {
- GtkAllocation allocation;
- GdkWindow *window = gtk_widget_get_window (widget);
- cairo_t *cr;
+ int width, height;
- gtk_widget_get_allocation (widget, &allocation);
- cr = gdk_cairo_create (window);
+ width = gtk_widget_get_allocated_width (widget);
+ height = gtk_widget_get_allocated_height (widget);
cairo_set_source_rgb (cr, 0, 0, 0);
- cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
+ cairo_rectangle (cr, 0, 0, width, height);
cairo_fill (cr);
- cairo_destroy (cr);
+ return TRUE;
}
return FALSE;
}
static void
realize_cb (GtkWidget * widget, gpointer data)
{
-#if GTK_CHECK_VERSION(2,18,0)
- {
- GdkWindow *window = gtk_widget_get_window (widget);
+ GdkWindow *window = gtk_widget_get_window (widget);
- /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
- * as well */
- if (!gdk_window_ensure_native (window))
- g_error ("Couldn't create native window needed for GstXOverlay!");
- }
-#endif
+ /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
+ * as well */
+ if (!gdk_window_ensure_native (window))
+ g_error ("Couldn't create native window needed for GstXOverlay!");
#ifdef HAVE_X
- {
- GdkWindow *window = gtk_widget_get_window (video_window);
-
- embed_xid = GDK_WINDOW_XID (window);
- g_print ("Window realize: video window XID = %lu\n", embed_xid);
- }
+ embed_xid = GDK_WINDOW_XID (window);
+ g_print ("Window realize: video window XID = %lu\n", embed_xid);
#endif
}
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 ("- test seeking in gsteamer");
g_option_context_add_main_entries (ctx, options, NULL);
/* initialize gui elements ... */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
video_window = gtk_drawing_area_new ();
- g_signal_connect (video_window, "expose-event",
- G_CALLBACK (handle_expose_cb), NULL);
+ g_signal_connect (video_window, "draw", G_CALLBACK (draw_cb), NULL);
g_signal_connect (video_window, "realize", G_CALLBACK (realize_cb), NULL);
gtk_widget_set_double_buffered (video_window, FALSE);
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 ("seek");
g_option_context_add_main_entries (ctx, options, NULL);
#include <gst/gst.h>
#include <string.h>
-#ifdef HAVE_X
+#include <gdk/gdk.h>
+#if defined (GDK_WINDOWING_X11)
#include <gdk/gdkx.h>
+#elif defined (GDK_WINDOWING_WIN32)
+#include <gdk/gdkwin32.h>
#endif
-#include <gst/interfaces/xoverlay.h>
-#if (!GTK_CHECK_VERSION(2, 23, 0) || GTK_CHECK_VERSION(2, 90, 0)) && !GTK_CHECK_VERSION(2, 91, 1)
-#define gtk_combo_box_text_new gtk_combo_box_new_text
-#define gtk_combo_box_text_append_text gtk_combo_box_append_text
-#define gtk_combo_box_text_remove gtk_combo_box_remove_text
-#define GTK_COMBO_BOX_TEXT GTK_COMBO_BOX
-#endif
+#include <gst/interfaces/xoverlay.h>
GST_DEBUG_CATEGORY_STATIC (seek_debug);
#define GST_CAT_DEFAULT (seek_debug)
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
- *a = w->allocation;
-}
-#endif
-
/* configuration */
-//#define SOURCE "filesrc"
-#define SOURCE "gnomevfssrc"
+#define SOURCE "filesrc"
-#define ASINK "alsasink"
-//#define ASINK "osssink"
-
-#define VSINK "xvimagesink"
-//#define VSINK "sdlvideosink"
-//#define VSINK "ximagesink"
-//#define VSINK "aasink"
-//#define VSINK "cacasink"
+static gchar *opt_audiosink_str; /* NULL */
+static gchar *opt_videosink_str; /* NULL */
#define FILL_INTERVAL 100
//#define UPDATE_INTERVAL 500
{
GstElement *element = gst_element_factory_make (type, name);
+#ifndef GST_DISABLE_PARSE
+ if (!element) {
+ /* Try parsing it as a pipeline description */
+ element = gst_parse_bin_from_description (type, TRUE, NULL);
+ if (element) {
+ gst_element_set_name (element, name);
+ }
+ }
+#endif
+
if (!element) {
g_warning ("Failed to create element %s of type %s", name, type);
}
src = gst_element_factory_make_or_warn (SOURCE, "src");
decoder = gst_element_factory_make_or_warn ("modplug", "decoder");
- audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
//g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL);
demux = gst_element_factory_make_or_warn ("dvdemux", "demuxer");
v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
decoder = gst_element_factory_make_or_warn ("ffdec_dvvideo", "decoder");
- videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+ videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
audiosink = gst_element_factory_make_or_warn ("alsasink", "a_sink");
src = gst_element_factory_make_or_warn (SOURCE, "src");
decoder = gst_element_factory_make_or_warn ("wavparse", "decoder");
- audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
g_object_set (G_OBJECT (src), "location", location, NULL);
src = gst_element_factory_make_or_warn (SOURCE, "src");
decoder = gst_element_factory_make_or_warn ("flacdec", "decoder");
- audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL);
src = gst_element_factory_make_or_warn (SOURCE, "src");
decoder = gst_element_factory_make_or_warn ("siddec", "decoder");
- audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
//g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL);
demux = gst_element_factory_make_or_warn ("oggdemux", "demux");
decoder = gst_element_factory_make_or_warn ("vorbisdec", "decoder");
convert = gst_element_factory_make_or_warn ("audioconvert", "convert");
- audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
g_object_set (G_OBJECT (audiosink), "sync", TRUE, NULL);
g_object_set (G_OBJECT (src), "location", location, NULL);
demux = gst_element_factory_make_or_warn ("oggdemux", "demux");
decoder = gst_element_factory_make_or_warn ("theoradec", "decoder");
convert = gst_element_factory_make_or_warn ("ffmpegcolorspace", "convert");
- videosink = gst_element_factory_make_or_warn (VSINK, "sink");
+ videosink = gst_element_factory_make_or_warn (opt_videosink_str, "sink");
g_object_set (G_OBJECT (src), "location", location, NULL);
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
a_decoder = gst_element_factory_make_or_warn ("vorbisdec", "a_dec");
a_convert = gst_element_factory_make_or_warn ("audioconvert", "a_convert");
- audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
gst_bin_add (GST_BIN (pipeline), audio_bin);
v_convert =
gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_convert");
v_scale = gst_element_factory_make_or_warn ("videoscale", "v_scale");
- videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+ videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
gst_bin_add (GST_BIN (pipeline), video_bin);
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
a_convert = gst_element_factory_make_or_warn ("audioconvert", "a_convert");
- audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
gst_bin_add (GST_BIN (audio_bin), a_queue);
gst_bin_add (GST_BIN (audio_bin), a_decoder);
v_decoder = gst_element_factory_make_or_warn ("ffdec_msmpeg4", "v_dec");
v_convert =
gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_convert");
- videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+ videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
gst_bin_add (GST_BIN (video_bin), v_queue);
gst_bin_add (GST_BIN (video_bin), v_decoder);
parser = gst_element_factory_make_or_warn ("mp3parse", "parse");
decoder = gst_element_factory_make_or_warn ("mad", "dec");
queue = gst_element_factory_make_or_warn ("queue", "queue");
- audiosink = gst_element_factory_make_or_warn (ASINK, "sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "sink");
seekable_elements = g_list_prepend (seekable_elements, audiosink);
audio_bin = gst_bin_new ("a_decoder_bin");
a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
- audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
gst_element_link (a_decoder, a_queue);
gst_element_link (a_queue, audiosink);
video_bin = gst_bin_new ("v_decoder_bin");
v_decoder = gst_element_factory_make_or_warn ("ffmpegdecall", "v_dec");
- videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+ videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
gst_element_link (v_decoder, v_queue);
gst_element_link (v_queue, videosink);
audio_bin = gst_bin_new ("a_decoder_bin");
a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
- audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
gst_bin_add (GST_BIN (audio_bin), a_decoder);
gst_bin_add (GST_BIN (audio_bin), a_queue);
gst_bin_add (GST_BIN (audio_bin), audiosink);
v_decoder = gst_element_factory_make_or_warn ("mpeg2dec", "v_dec");
v_queue = gst_element_factory_make_or_warn ("queue", "v_queue");
v_filter = gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_filter");
- videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+ videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
gst_bin_add (GST_BIN (video_bin), v_decoder);
gst_bin_add (GST_BIN (video_bin), v_queue);
audio_bin = gst_bin_new ("a_decoder_bin");
a_decoder = gst_element_factory_make_or_warn ("mad", "a_dec");
a_queue = gst_element_factory_make_or_warn ("queue", "a_queue");
- audiosink = gst_element_factory_make_or_warn (ASINK, "a_sink");
+ audiosink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
//g_object_set (G_OBJECT (audiosink), "fragment", 0x00180008, NULL);
g_object_set (G_OBJECT (audiosink), "sync", FALSE, NULL);
gst_element_link (a_decoder, a_queue);
video_bin = gst_bin_new ("v_decoder_bin");
v_decoder = gst_element_factory_make_or_warn ("mpeg2dec", "v_dec");
v_filter = gst_element_factory_make_or_warn ("ffmpegcolorspace", "v_filter");
- videosink = gst_element_factory_make_or_warn (VSINK, "v_sink");
+ videosink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
gst_element_link_many (v_decoder, v_filter, videosink, NULL);
gst_bin_add_many (GST_BIN (video_bin), v_decoder, v_filter, videosink, NULL);
gchar *uri;
/* Add "file://" prefix for convenience */
- if (g_str_has_prefix (location, "/")) {
- uri = g_strconcat ("file://", location, NULL);
+ if (g_str_has_prefix (location, "/") || !gst_uri_is_valid (location)) {
+ uri = gst_filename_to_uri (location, NULL);
+ g_print ("Setting URI: %s\n", uri);
g_object_set (G_OBJECT (player), "uri", uri, NULL);
g_free (uri);
} else {
+ g_print ("Setting URI: %s\n", location);
g_object_set (G_OBJECT (player), "uri", location, NULL);
}
}
construct_playerbin (const gchar * name, const gchar * location)
{
GstElement *player;
+ GstElement *avsink;
player = gst_element_factory_make (name, "player");
g_assert (player);
/* force element seeking on this pipeline */
elem_seek = TRUE;
+ avsink = gst_element_factory_make_or_warn (opt_audiosink_str, "a_sink");
+ if (avsink)
+ g_object_set (player, "audio-sink", avsink, NULL);
+
+ avsink = gst_element_factory_make_or_warn (opt_videosink_str, "v_sink");
+ if (avsink)
+ g_object_set (player, "video-sink", avsink, NULL);
+
return player;
}
state = STOP_STATE;
gtk_statusbar_push (GTK_STATUSBAR (statusbar), status_id, "Stopped");
+ gtk_widget_queue_draw (video_window);
is_live = FALSE;
buffering = FALSE;
{
const GstStructure *s;
+ switch (GST_MESSAGE_TYPE (message)) {
+ case GST_MESSAGE_ERROR:
+ GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (pipeline),
+ GST_DEBUG_GRAPH_SHOW_ALL, "seek.error");
+ break;
+ case GST_MESSAGE_WARNING:
+ GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (pipeline),
+ GST_DEBUG_GRAPH_SHOW_ALL, "seek.warning");
+ break;
+ default:
+ break;
+ }
+
s = gst_message_get_structure (message);
g_print ("message from \"%s\" (%s): ",
GST_STR_NULL (GST_ELEMENT_NAME (GST_MESSAGE_SRC (message))),
} else {
set_update_scale (FALSE);
}
+
+ /* dump graph for (some) pipeline state changes */
+ {
+ gchar *dump_name;
+
+ dump_name = g_strdup_printf ("seek.%s_%s",
+ gst_element_state_get_name (old), gst_element_state_get_name (new));
+
+ GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (pipeline),
+ GST_DEBUG_GRAPH_SHOW_ALL, dump_name);
+
+ g_free (dump_name);
+ }
}
}
}
}
-#ifdef HAVE_X
+#if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32)
static gulong embed_xid = 0;
#endif
static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
+draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data)
{
if (state < GST_STATE_PAUSED) {
- GtkAllocation allocation;
- GdkWindow *window = gtk_widget_get_window (widget);
- cairo_t *cr;
+ int width, height;
- gtk_widget_get_allocation (widget, &allocation);
- cr = gdk_cairo_create (window);
+ width = gtk_widget_get_allocated_width (widget);
+ height = gtk_widget_get_allocated_height (widget);
cairo_set_source_rgb (cr, 0, 0, 0);
- cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
+ cairo_rectangle (cr, 0, 0, width, height);
cairo_fill (cr);
- cairo_destroy (cr);
+ return TRUE;
}
return FALSE;
}
static void
realize_cb (GtkWidget * widget, gpointer data)
{
-#if GTK_CHECK_VERSION(2,18,0)
- {
- GdkWindow *window = gtk_widget_get_window (widget);
+ GdkWindow *window = gtk_widget_get_window (widget);
- /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
- * as well */
- if (!gdk_window_ensure_native (window))
- g_error ("Couldn't create native window needed for GstXOverlay!");
- }
-#endif
-
-#ifdef HAVE_X
- {
- GdkWindow *window = gtk_widget_get_window (video_window);
+ /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
+ * as well */
+ if (!gdk_window_ensure_native (window))
+ g_error ("Couldn't create native window needed for GstXOverlay!");
- embed_xid = GDK_WINDOW_XID (window);
- g_print ("Window realize: video window XID = %lu\n", embed_xid);
- }
+#if defined (GDK_WINDOWING_WIN32)
+ embed_xid = GDK_WINDOW_HWND (window);
+ g_print ("Window realize: video window HWND = %lu\n", embed_xid);
+#else
+ embed_xid = GDK_WINDOW_XID (window);
+ g_print ("Window realize: video window XID = %lu\n", embed_xid);
#endif
}
{
GstBus *bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
-#ifdef HAVE_X
+#if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32)
/* handle prepare-xwindow-id element message synchronously */
gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler,
pipeline);
GtkWidget *scrub_checkbox, *play_scrub_checkbox;
GtkWidget *rate_label, *volume_label;
GOptionEntry options[] = {
+ {"audiosink", '\0', 0, G_OPTION_ARG_STRING, &opt_audiosink_str,
+ "audio sink to use (default: " DEFAULT_AUDIOSINK ")", NULL},
{"stats", 's', 0, G_OPTION_ARG_NONE, &stats,
"Show pad stats", NULL},
{"elem", 'e', 0, G_OPTION_ARG_NONE, &elem_seek,
"Seek on elements instead of pads", NULL},
{"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
"Verbose properties", NULL},
+ {"videosink", '\0', 0, G_OPTION_ARG_STRING, &opt_videosink_str,
+ "video sink to use (default: " DEFAULT_VIDEOSINK ")", NULL},
{NULL}
};
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 ("- test seeking in gsteamer");
g_option_context_add_main_entries (ctx, options, NULL);
exit (1);
}
+ if (opt_audiosink_str == NULL)
+ opt_audiosink_str = g_strdup (DEFAULT_AUDIOSINK);
+
+ if (opt_videosink_str == NULL)
+ opt_videosink_str = g_strdup (DEFAULT_VIDEOSINK);
+
GST_DEBUG_CATEGORY_INIT (seek_debug, "seek", 0, "seek example");
if (argc != 3) {
/* initialize gui elements ... */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
video_window = gtk_drawing_area_new ();
- g_signal_connect (video_window, "expose-event",
- G_CALLBACK (handle_expose_cb), NULL);
+ g_signal_connect (video_window, "draw", G_CALLBACK (draw_cb), NULL);
g_signal_connect (video_window, "realize", G_CALLBACK (realize_cb), NULL);
gtk_widget_set_double_buffered (video_window, FALSE);
* asks for the XID of the window to render onto */
gtk_widget_realize (window);
-#ifdef HAVE_X
+#if defined (GDK_WINDOWING_X11) || defined (GDK_WINDOWING_WIN32)
/* we should have the XID now */
g_assert (embed_xid != 0);
#endif
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
snapshot_SOURCES = snapshot.c
snapshot_OBJECTS = snapshot.$(OBJEXT)
snapshot_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
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
$(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 = snapshot.c
DIST_SOURCES = snapshot.c
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-snapshot$(EXEEXT): $(snapshot_OBJECTS) $(snapshot_DEPENDENCIES)
+snapshot$(EXEEXT): $(snapshot_OBJECTS) $(snapshot_DEPENDENCIES) $(EXTRA_snapshot_DEPENDENCIES)
@rm -f snapshot$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(snapshot_OBJECTS) $(snapshot_LDADD) $(LIBS)
.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 $@ $<
mostlyclean-libtool:
-rm -f *.lo
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:
$(GST_BASE_CFLAGS) $(GST_CFLAGS)
probe_LDFLAGS = \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
- $(GST_PLUGINS_BASE_LIBS) \
$(GST_BASE_LIBS) $(GST_LIBS)
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
am_probe_OBJECTS = probe-probe.$(OBJEXT)
probe_OBJECTS = $(am_probe_OBJECTS)
probe_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
probe_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(probe_CFLAGS) $(CFLAGS) \
$(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 = $(probe_SOURCES)
DIST_SOURCES = $(probe_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
probe_LDFLAGS = \
$(top_builddir)/gst-libs/gst/interfaces/libgstinterfaces-@GST_MAJORMINOR@.la \
- $(GST_PLUGINS_BASE_LIBS) \
$(GST_BASE_LIBS) $(GST_LIBS)
all: all-am
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-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)
.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 $@ $<
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
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:
+++ /dev/null
-if HAVE_GTK
-noinst_PROGRAMS = volume
-volume_SOURCES = volume.c
-volume_CFLAGS = $(GST_CFLAGS) $(GTK_CFLAGS) -D_GNU_SOURCE
-volume_LDADD = $(GST_LIBS) $(GTK_LIBS) $(LIBM)
-endif
EXTRA_DIST = \
623663.mts \
hls.m3u8 \
- partialframe.mjpeg
+ license-uris \
+ partialframe.mjpeg \
+ test.mp3
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
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 =
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
EXTRA_DIST = \
623663.mts \
hls.m3u8 \
- partialframe.mjpeg
+ license-uris \
+ partialframe.mjpeg \
+ test.mp3
all: 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:
--- /dev/null
+http://creativecommons.org/licenses/by/1.0/fi/
+http://creativecommons.org/licenses/by/1.0/il/
+http://creativecommons.org/licenses/by/1.0/nl/
+http://creativecommons.org/licenses/by/1.0/
+http://creativecommons.org/licenses/by/2.0/at/
+http://creativecommons.org/licenses/by/2.0/au/
+http://creativecommons.org/licenses/by/2.0/be/
+http://creativecommons.org/licenses/by/2.0/br/
+http://creativecommons.org/licenses/by/2.0/ca/
+http://creativecommons.org/licenses/by/2.0/cl/
+http://creativecommons.org/licenses/by/2.0/de/
+http://creativecommons.org/licenses/by/2.0/es/
+http://creativecommons.org/licenses/by/2.0/fr/
+http://creativecommons.org/licenses/by/2.0/hr/
+http://creativecommons.org/licenses/by/2.0/it/
+http://creativecommons.org/licenses/by/2.0/jp/
+http://creativecommons.org/licenses/by/2.0/kr/
+http://creativecommons.org/licenses/by/2.0/nl/
+http://creativecommons.org/licenses/by/2.0/pl/
+http://creativecommons.org/licenses/by/2.0/
+http://creativecommons.org/licenses/by/2.0/tw/
+http://creativecommons.org/licenses/by/2.0/uk/
+http://creativecommons.org/licenses/by/2.0/za/
+http://creativecommons.org/licenses/by/2.1/au/
+http://creativecommons.org/licenses/by/2.1/es/
+http://creativecommons.org/licenses/by/2.1/jp/
+http://creativecommons.org/licenses/by/2.5/ar/
+http://creativecommons.org/licenses/by/2.5/au/
+http://creativecommons.org/licenses/by/2.5/bg/
+http://creativecommons.org/licenses/by/2.5/br/
+http://creativecommons.org/licenses/by/2.5/ca/
+http://creativecommons.org/licenses/by/2.5/ch/
+http://creativecommons.org/licenses/by/2.5/cn/
+http://creativecommons.org/licenses/by/2.5/co/
+http://creativecommons.org/licenses/by/2.5/dk/
+http://creativecommons.org/licenses/by/2.5/es/
+http://creativecommons.org/licenses/by/2.5/hr/
+http://creativecommons.org/licenses/by/2.5/hu/
+http://creativecommons.org/licenses/by/2.5/il/
+http://creativecommons.org/licenses/by/2.5/in/
+http://creativecommons.org/licenses/by/2.5/it/
+http://creativecommons.org/licenses/by/2.5/mk/
+http://creativecommons.org/licenses/by/2.5/mt/
+http://creativecommons.org/licenses/by/2.5/mx/
+http://creativecommons.org/licenses/by/2.5/my/
+http://creativecommons.org/licenses/by/2.5/nl/
+http://creativecommons.org/licenses/by/2.5/pe/
+http://creativecommons.org/licenses/by/2.5/pl/
+http://creativecommons.org/licenses/by/2.5/pt/
+http://creativecommons.org/licenses/by/2.5/
+http://creativecommons.org/licenses/by/2.5/scotland/
+http://creativecommons.org/licenses/by/2.5/se/
+http://creativecommons.org/licenses/by/2.5/si/
+http://creativecommons.org/licenses/by/2.5/tw/
+http://creativecommons.org/licenses/by/2.5/za/
+http://creativecommons.org/licenses/by/3.0/
+http://creativecommons.org/licenses/by/3.0/us/
+http://creativecommons.org/licenses/by-nc/1.0/fi/
+http://creativecommons.org/licenses/by-nc/1.0/il/
+http://creativecommons.org/licenses/by-nc/1.0/nl/
+http://creativecommons.org/licenses/by-nc/1.0/
+http://creativecommons.org/licenses/by-nc/2.0/at/
+http://creativecommons.org/licenses/by-nc/2.0/au/
+http://creativecommons.org/licenses/by-nc/2.0/be/
+http://creativecommons.org/licenses/by-nc/2.0/br/
+http://creativecommons.org/licenses/by-nc/2.0/ca/
+http://creativecommons.org/licenses/by-nc/2.0/cl/
+http://creativecommons.org/licenses/by-nc/2.0/de/
+http://creativecommons.org/licenses/by-nc/2.0/es/
+http://creativecommons.org/licenses/by-nc/2.0/fr/
+http://creativecommons.org/licenses/by-nc/2.0/hr/
+http://creativecommons.org/licenses/by-nc/2.0/it/
+http://creativecommons.org/licenses/by-nc/2.0/jp/
+http://creativecommons.org/licenses/by-nc/2.0/kr/
+http://creativecommons.org/licenses/by-nc/2.0/nl/
+http://creativecommons.org/licenses/by-nc/2.0/pl/
+http://creativecommons.org/licenses/by-nc/2.0/
+http://creativecommons.org/licenses/by-nc/2.0/tw/
+http://creativecommons.org/licenses/by-nc/2.0/uk/
+http://creativecommons.org/licenses/by-nc/2.0/za/
+http://creativecommons.org/licenses/by-nc/2.1/au/
+http://creativecommons.org/licenses/by-nc/2.1/es/
+http://creativecommons.org/licenses/by-nc/2.1/jp/
+http://creativecommons.org/licenses/by-nc/2.5/ar/
+http://creativecommons.org/licenses/by-nc/2.5/au/
+http://creativecommons.org/licenses/by-nc/2.5/bg/
+http://creativecommons.org/licenses/by-nc/2.5/br/
+http://creativecommons.org/licenses/by-nc/2.5/ca/
+http://creativecommons.org/licenses/by-nc/2.5/ch/
+http://creativecommons.org/licenses/by-nc/2.5/cn/
+http://creativecommons.org/licenses/by-nc/2.5/co/
+http://creativecommons.org/licenses/by-nc/2.5/dk/
+http://creativecommons.org/licenses/by-nc/2.5/es/
+http://creativecommons.org/licenses/by-nc/2.5/hr/
+http://creativecommons.org/licenses/by-nc/2.5/hu/
+http://creativecommons.org/licenses/by-nc/2.5/il/
+http://creativecommons.org/licenses/by-nc/2.5/in/
+http://creativecommons.org/licenses/by-nc/2.5/it/
+http://creativecommons.org/licenses/by-nc/2.5/mk/
+http://creativecommons.org/licenses/by-nc/2.5/mt/
+http://creativecommons.org/licenses/by-nc/2.5/mx/
+http://creativecommons.org/licenses/by-nc/2.5/my/
+http://creativecommons.org/licenses/by-nc/2.5/nl/
+http://creativecommons.org/licenses/by-nc/2.5/pe/
+http://creativecommons.org/licenses/by-nc/2.5/pl/
+http://creativecommons.org/licenses/by-nc/2.5/pt/
+http://creativecommons.org/licenses/by-nc/2.5/
+http://creativecommons.org/licenses/by-nc/2.5/scotland/
+http://creativecommons.org/licenses/by-nc/2.5/se/
+http://creativecommons.org/licenses/by-nc/2.5/si/
+http://creativecommons.org/licenses/by-nc/2.5/tw/
+http://creativecommons.org/licenses/by-nc/2.5/za/
+http://creativecommons.org/licenses/by-nc/3.0/
+http://creativecommons.org/licenses/by-nc/3.0/us/
+http://creativecommons.org/licenses/by-nc-nd/2.0/at/
+http://creativecommons.org/licenses/by-nc-nd/2.0/au/
+http://creativecommons.org/licenses/by-nc-nd/2.0/be/
+http://creativecommons.org/licenses/by-nc-nd/2.0/br/
+http://creativecommons.org/licenses/by-nc-nd/2.0/ca/
+http://creativecommons.org/licenses/by-nc-nd/2.0/cl/
+http://creativecommons.org/licenses/by-nc-nd/2.0/de/
+http://creativecommons.org/licenses/by-nc-nd/2.0/es/
+http://creativecommons.org/licenses/by-nc-nd/2.0/fr/
+http://creativecommons.org/licenses/by-nc-nd/2.0/hr/
+http://creativecommons.org/licenses/by-nc-nd/2.0/it/
+http://creativecommons.org/licenses/by-nc-nd/2.0/jp/
+http://creativecommons.org/licenses/by-nc-nd/2.0/kr/
+http://creativecommons.org/licenses/by-nc-nd/2.0/nl/
+http://creativecommons.org/licenses/by-nc-nd/2.0/pl/
+http://creativecommons.org/licenses/by-nc-nd/2.0/
+http://creativecommons.org/licenses/by-nc-nd/2.0/tw/
+http://creativecommons.org/licenses/by-nc-nd/2.0/uk/
+http://creativecommons.org/licenses/by-nc-nd/2.0/za/
+http://creativecommons.org/licenses/by-nc-nd/2.1/au/
+http://creativecommons.org/licenses/by-nc-nd/2.1/es/
+http://creativecommons.org/licenses/by-nc-nd/2.1/jp/
+http://creativecommons.org/licenses/by-nc-nd/2.5/ar/
+http://creativecommons.org/licenses/by-nc-nd/2.5/au/
+http://creativecommons.org/licenses/by-nc-nd/2.5/bg/
+http://creativecommons.org/licenses/by-nc-nd/2.5/br/
+http://creativecommons.org/licenses/by-nc-nd/2.5/ca/
+http://creativecommons.org/licenses/by-nc-nd/2.5/ch/
+http://creativecommons.org/licenses/by-nc-nd/2.5/cn/
+http://creativecommons.org/licenses/by-nc-nd/2.5/co/
+http://creativecommons.org/licenses/by-nc-nd/2.5/dk/
+http://creativecommons.org/licenses/by-nc-nd/2.5/es/
+http://creativecommons.org/licenses/by-nc-nd/2.5/hr/
+http://creativecommons.org/licenses/by-nc-nd/2.5/hu/
+http://creativecommons.org/licenses/by-nc-nd/2.5/il/
+http://creativecommons.org/licenses/by-nc-nd/2.5/in/
+http://creativecommons.org/licenses/by-nc-nd/2.5/it/
+http://creativecommons.org/licenses/by-nc-nd/2.5/mk/
+http://creativecommons.org/licenses/by-nc-nd/2.5/mt/
+http://creativecommons.org/licenses/by-nc-nd/2.5/mx/
+http://creativecommons.org/licenses/by-nc-nd/2.5/my/
+http://creativecommons.org/licenses/by-nc-nd/2.5/nl/
+http://creativecommons.org/licenses/by-nc-nd/2.5/pe/
+http://creativecommons.org/licenses/by-nc-nd/2.5/pl/
+http://creativecommons.org/licenses/by-nc-nd/2.5/pt/
+http://creativecommons.org/licenses/by-nc-nd/2.5/
+http://creativecommons.org/licenses/by-nc-nd/2.5/scotland/
+http://creativecommons.org/licenses/by-nc-nd/2.5/se/
+http://creativecommons.org/licenses/by-nc-nd/2.5/si/
+http://creativecommons.org/licenses/by-nc-nd/2.5/tw/
+http://creativecommons.org/licenses/by-nc-nd/2.5/za/
+http://creativecommons.org/licenses/by-nc-nd/3.0/
+http://creativecommons.org/licenses/by-nc-nd/3.0/us/
+http://creativecommons.org/licenses/by-nc-sa/1.0/fi/
+http://creativecommons.org/licenses/by-nc-sa/1.0/il/
+http://creativecommons.org/licenses/by-nc-sa/1.0/nl/
+http://creativecommons.org/licenses/by-nc-sa/1.0/
+http://creativecommons.org/licenses/by-nc-sa/2.0/at/
+http://creativecommons.org/licenses/by-nc-sa/2.0/au/
+http://creativecommons.org/licenses/by-nc-sa/2.0/be/
+http://creativecommons.org/licenses/by-nc-sa/2.0/br/
+http://creativecommons.org/licenses/by-nc-sa/2.0/ca/
+http://creativecommons.org/licenses/by-nc-sa/2.0/cl/
+http://creativecommons.org/licenses/by-nc-sa/2.0/de/
+http://creativecommons.org/licenses/by-nc-sa/2.0/es/
+http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
+http://creativecommons.org/licenses/by-nc-sa/2.0/hr/
+http://creativecommons.org/licenses/by-nc-sa/2.0/it/
+http://creativecommons.org/licenses/by-nc-sa/2.0/jp/
+http://creativecommons.org/licenses/by-nc-sa/2.0/kr/
+http://creativecommons.org/licenses/by-nc-sa/2.0/nl/
+http://creativecommons.org/licenses/by-nc-sa/2.0/pl/
+http://creativecommons.org/licenses/by-nc-sa/2.0/
+http://creativecommons.org/licenses/by-nc-sa/2.0/tw/
+http://creativecommons.org/licenses/by-nc-sa/2.0/uk/
+http://creativecommons.org/licenses/by-nc-sa/2.0/za/
+http://creativecommons.org/licenses/by-nc-sa/2.1/au/
+http://creativecommons.org/licenses/by-nc-sa/2.1/es/
+http://creativecommons.org/licenses/by-nc-sa/2.1/jp/
+http://creativecommons.org/licenses/by-nc-sa/2.5/ar/
+http://creativecommons.org/licenses/by-nc-sa/2.5/au/
+http://creativecommons.org/licenses/by-nc-sa/2.5/bg/
+http://creativecommons.org/licenses/by-nc-sa/2.5/br/
+http://creativecommons.org/licenses/by-nc-sa/2.5/ca/
+http://creativecommons.org/licenses/by-nc-sa/2.5/ch/
+http://creativecommons.org/licenses/by-nc-sa/2.5/cn/
+http://creativecommons.org/licenses/by-nc-sa/2.5/co/
+http://creativecommons.org/licenses/by-nc-sa/2.5/dk/
+http://creativecommons.org/licenses/by-nc-sa/2.5/es/
+http://creativecommons.org/licenses/by-nc-sa/2.5/hr/
+http://creativecommons.org/licenses/by-nc-sa/2.5/hu/
+http://creativecommons.org/licenses/by-nc-sa/2.5/il/
+http://creativecommons.org/licenses/by-nc-sa/2.5/in/
+http://creativecommons.org/licenses/by-nc-sa/2.5/it/
+http://creativecommons.org/licenses/by-nc-sa/2.5/mk/
+http://creativecommons.org/licenses/by-nc-sa/2.5/mt/
+http://creativecommons.org/licenses/by-nc-sa/2.5/mx/
+http://creativecommons.org/licenses/by-nc-sa/2.5/my/
+http://creativecommons.org/licenses/by-nc-sa/2.5/nl/
+http://creativecommons.org/licenses/by-nc-sa/2.5/pe/
+http://creativecommons.org/licenses/by-nc-sa/2.5/pl/
+http://creativecommons.org/licenses/by-nc-sa/2.5/pt/
+http://creativecommons.org/licenses/by-nc-sa/2.5/
+http://creativecommons.org/licenses/by-nc-sa/2.5/scotland/
+http://creativecommons.org/licenses/by-nc-sa/2.5/se/
+http://creativecommons.org/licenses/by-nc-sa/2.5/si/
+http://creativecommons.org/licenses/by-nc-sa/2.5/tw/
+http://creativecommons.org/licenses/by-nc-sa/2.5/za/
+http://creativecommons.org/licenses/by-nc-sa/3.0/
+http://creativecommons.org/licenses/by-nc-sa/3.0/us/
+http://creativecommons.org/licenses/by-nd/1.0/fi/
+http://creativecommons.org/licenses/by-nd/1.0/il/
+http://creativecommons.org/licenses/by-nd/1.0/nl/
+http://creativecommons.org/licenses/by-nd/1.0/
+http://creativecommons.org/licenses/by-nd/2.0/at/
+http://creativecommons.org/licenses/by-nd/2.0/au/
+http://creativecommons.org/licenses/by-nd/2.0/be/
+http://creativecommons.org/licenses/by-nd/2.0/br/
+http://creativecommons.org/licenses/by-nd/2.0/ca/
+http://creativecommons.org/licenses/by-nd/2.0/cl/
+http://creativecommons.org/licenses/by-nd/2.0/de/
+http://creativecommons.org/licenses/by-nd/2.0/es/
+http://creativecommons.org/licenses/by-nd/2.0/fr/
+http://creativecommons.org/licenses/by-nd/2.0/hr/
+http://creativecommons.org/licenses/by-nd/2.0/it/
+http://creativecommons.org/licenses/by-nd/2.0/jp/
+http://creativecommons.org/licenses/by-nd/2.0/kr/
+http://creativecommons.org/licenses/by-nd/2.0/nl/
+http://creativecommons.org/licenses/by-nd/2.0/pl/
+http://creativecommons.org/licenses/by-nd/2.0/
+http://creativecommons.org/licenses/by-nd/2.0/tw/
+http://creativecommons.org/licenses/by-nd/2.0/uk/
+http://creativecommons.org/licenses/by-nd/2.0/za/
+http://creativecommons.org/licenses/by-nd/2.1/au/
+http://creativecommons.org/licenses/by-nd/2.1/es/
+http://creativecommons.org/licenses/by-nd/2.1/jp/
+http://creativecommons.org/licenses/by-nd/2.5/ar/
+http://creativecommons.org/licenses/by-nd/2.5/au/
+http://creativecommons.org/licenses/by-nd/2.5/bg/
+http://creativecommons.org/licenses/by-nd/2.5/br/
+http://creativecommons.org/licenses/by-nd/2.5/ca/
+http://creativecommons.org/licenses/by-nd/2.5/ch/
+http://creativecommons.org/licenses/by-nd/2.5/cn/
+http://creativecommons.org/licenses/by-nd/2.5/co/
+http://creativecommons.org/licenses/by-nd/2.5/dk/
+http://creativecommons.org/licenses/by-nd/2.5/es/
+http://creativecommons.org/licenses/by-nd/2.5/hr/
+http://creativecommons.org/licenses/by-nd/2.5/hu/
+http://creativecommons.org/licenses/by-nd/2.5/il/
+http://creativecommons.org/licenses/by-nd/2.5/in/
+http://creativecommons.org/licenses/by-nd/2.5/it/
+http://creativecommons.org/licenses/by-nd/2.5/mk/
+http://creativecommons.org/licenses/by-nd/2.5/mt/
+http://creativecommons.org/licenses/by-nd/2.5/mx/
+http://creativecommons.org/licenses/by-nd/2.5/my/
+http://creativecommons.org/licenses/by-nd/2.5/nl/
+http://creativecommons.org/licenses/by-nd/2.5/pe/
+http://creativecommons.org/licenses/by-nd/2.5/pl/
+http://creativecommons.org/licenses/by-nd/2.5/pt/
+http://creativecommons.org/licenses/by-nd/2.5/
+http://creativecommons.org/licenses/by-nd/2.5/scotland/
+http://creativecommons.org/licenses/by-nd/2.5/se/
+http://creativecommons.org/licenses/by-nd/2.5/si/
+http://creativecommons.org/licenses/by-nd/2.5/tw/
+http://creativecommons.org/licenses/by-nd/2.5/za/
+http://creativecommons.org/licenses/by-nd/3.0/
+http://creativecommons.org/licenses/by-nd/3.0/us/
+http://creativecommons.org/licenses/by-nd-nc/1.0/fi/
+http://creativecommons.org/licenses/by-nd-nc/1.0/il/
+http://creativecommons.org/licenses/by-nd-nc/1.0/nl/
+http://creativecommons.org/licenses/by-nd-nc/1.0/
+http://creativecommons.org/licenses/by-nd-nc/2.0/jp/
+http://creativecommons.org/licenses/by-sa/1.0/fi/
+http://creativecommons.org/licenses/by-sa/1.0/il/
+http://creativecommons.org/licenses/by-sa/1.0/nl/
+http://creativecommons.org/licenses/by-sa/1.0/
+http://creativecommons.org/licenses/by-sa/2.0/at/
+http://creativecommons.org/licenses/by-sa/2.0/au/
+http://creativecommons.org/licenses/by-sa/2.0/be/
+http://creativecommons.org/licenses/by-sa/2.0/br/
+http://creativecommons.org/licenses/by-sa/2.0/ca/
+http://creativecommons.org/licenses/by-sa/2.0/cl/
+http://creativecommons.org/licenses/by-sa/2.0/de/
+http://creativecommons.org/licenses/by-sa/2.0/es/
+http://creativecommons.org/licenses/by-sa/2.0/fr/
+http://creativecommons.org/licenses/by-sa/2.0/hr/
+http://creativecommons.org/licenses/by-sa/2.0/it/
+http://creativecommons.org/licenses/by-sa/2.0/jp/
+http://creativecommons.org/licenses/by-sa/2.0/kr/
+http://creativecommons.org/licenses/by-sa/2.0/nl/
+http://creativecommons.org/licenses/by-sa/2.0/pl/
+http://creativecommons.org/licenses/by-sa/2.0/
+http://creativecommons.org/licenses/by-sa/2.0/tw/
+http://creativecommons.org/licenses/by-sa/2.0/uk/
+http://creativecommons.org/licenses/by-sa/2.0/za/
+http://creativecommons.org/licenses/by-sa/2.1/au/
+http://creativecommons.org/licenses/by-sa/2.1/es/
+http://creativecommons.org/licenses/by-sa/2.1/jp/
+http://creativecommons.org/licenses/by-sa/2.5/ar/
+http://creativecommons.org/licenses/by-sa/2.5/au/
+http://creativecommons.org/licenses/by-sa/2.5/bg/
+http://creativecommons.org/licenses/by-sa/2.5/br/
+http://creativecommons.org/licenses/by-sa/2.5/ca/
+http://creativecommons.org/licenses/by-sa/2.5/ch/
+http://creativecommons.org/licenses/by-sa/2.5/cn/
+http://creativecommons.org/licenses/by-sa/2.5/co/
+http://creativecommons.org/licenses/by-sa/2.5/dk/
+http://creativecommons.org/licenses/by-sa/2.5/es/
+http://creativecommons.org/licenses/by-sa/2.5/hr/
+http://creativecommons.org/licenses/by-sa/2.5/hu/
+http://creativecommons.org/licenses/by-sa/2.5/il/
+http://creativecommons.org/licenses/by-sa/2.5/in/
+http://creativecommons.org/licenses/by-sa/2.5/it/
+http://creativecommons.org/licenses/by-sa/2.5/mk/
+http://creativecommons.org/licenses/by-sa/2.5/mt/
+http://creativecommons.org/licenses/by-sa/2.5/mx/
+http://creativecommons.org/licenses/by-sa/2.5/my/
+http://creativecommons.org/licenses/by-sa/2.5/nl/
+http://creativecommons.org/licenses/by-sa/2.5/pe/
+http://creativecommons.org/licenses/by-sa/2.5/pl/
+http://creativecommons.org/licenses/by-sa/2.5/pt/
+http://creativecommons.org/licenses/by-sa/2.5/
+http://creativecommons.org/licenses/by-sa/2.5/scotland/
+http://creativecommons.org/licenses/by-sa/2.5/se/
+http://creativecommons.org/licenses/by-sa/2.5/si/
+http://creativecommons.org/licenses/by-sa/2.5/tw/
+http://creativecommons.org/licenses/by-sa/2.5/za/
+http://creativecommons.org/licenses/by-sa/3.0/
+http://creativecommons.org/licenses/by-sa/3.0/us/
+http://creativecommons.org/licenses/devnations/2.0/
+http://creativecommons.org/licenses/GPL/2.0/
+http://creativecommons.org/licenses/LGPL/2.1/
+http://creativecommons.org/licenses/nc/1.0/fi/
+http://creativecommons.org/licenses/nc/1.0/nl/
+http://creativecommons.org/licenses/nc/1.0/
+http://creativecommons.org/licenses/nc/2.0/jp/
+http://creativecommons.org/licenses/nc-sa/1.0/fi/
+http://creativecommons.org/licenses/nc-sa/1.0/nl/
+http://creativecommons.org/licenses/nc-sa/1.0/
+http://creativecommons.org/licenses/nc-sa/2.0/jp/
+http://creativecommons.org/licenses/nc-sampling+/1.0/
+http://creativecommons.org/licenses/nc-sampling+/1.0/tw/
+http://creativecommons.org/licenses/nd/1.0/fi/
+http://creativecommons.org/licenses/nd/1.0/nl/
+http://creativecommons.org/licenses/nd/1.0/
+http://creativecommons.org/licenses/nd/2.0/jp/
+http://creativecommons.org/licenses/nd-nc/1.0/fi/
+http://creativecommons.org/licenses/nd-nc/1.0/nl/
+http://creativecommons.org/licenses/nd-nc/1.0/
+http://creativecommons.org/licenses/nd-nc/2.0/jp/
+http://creativecommons.org/licenses/publicdomain/
+http://creativecommons.org/licenses/sa/1.0/fi/
+http://creativecommons.org/licenses/sa/1.0/nl/
+http://creativecommons.org/licenses/sa/1.0/
+http://creativecommons.org/licenses/sa/2.0/jp/
+http://creativecommons.org/licenses/sampling/1.0/br/
+http://creativecommons.org/licenses/sampling+/1.0/br/
+http://creativecommons.org/licenses/sampling+/1.0/de/
+http://creativecommons.org/licenses/sampling/1.0/
+http://creativecommons.org/licenses/sampling+/1.0/
+http://creativecommons.org/licenses/sampling/1.0/tw/
+http://creativecommons.org/licenses/sampling+/1.0/tw/
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
am__DEPENDENCIES_1 =
audio_trickplay_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
audio_trickplay_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
$(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 = $(audio_trickplay_SOURCES) $(input_selector_test_SOURCES) \
$(output_selector_test_SOURCES) $(playbin_text_SOURCES) \
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-audio-trickplay$(EXEEXT): $(audio_trickplay_OBJECTS) $(audio_trickplay_DEPENDENCIES)
+audio-trickplay$(EXEEXT): $(audio_trickplay_OBJECTS) $(audio_trickplay_DEPENDENCIES) $(EXTRA_audio_trickplay_DEPENDENCIES)
@rm -f audio-trickplay$(EXEEXT)
$(AM_V_CCLD)$(audio_trickplay_LINK) $(audio_trickplay_OBJECTS) $(audio_trickplay_LDADD) $(LIBS)
-input-selector-test$(EXEEXT): $(input_selector_test_OBJECTS) $(input_selector_test_DEPENDENCIES)
+input-selector-test$(EXEEXT): $(input_selector_test_OBJECTS) $(input_selector_test_DEPENDENCIES) $(EXTRA_input_selector_test_DEPENDENCIES)
@rm -f input-selector-test$(EXEEXT)
$(AM_V_CCLD)$(input_selector_test_LINK) $(input_selector_test_OBJECTS) $(input_selector_test_LDADD) $(LIBS)
-output-selector-test$(EXEEXT): $(output_selector_test_OBJECTS) $(output_selector_test_DEPENDENCIES)
+output-selector-test$(EXEEXT): $(output_selector_test_OBJECTS) $(output_selector_test_DEPENDENCIES) $(EXTRA_output_selector_test_DEPENDENCIES)
@rm -f output-selector-test$(EXEEXT)
$(AM_V_CCLD)$(output_selector_test_LINK) $(output_selector_test_OBJECTS) $(output_selector_test_LDADD) $(LIBS)
-playbin-text$(EXEEXT): $(playbin_text_OBJECTS) $(playbin_text_DEPENDENCIES)
+playbin-text$(EXEEXT): $(playbin_text_OBJECTS) $(playbin_text_DEPENDENCIES) $(EXTRA_playbin_text_DEPENDENCIES)
@rm -f playbin-text$(EXEEXT)
$(AM_V_CCLD)$(playbin_text_LINK) $(playbin_text_OBJECTS) $(playbin_text_LDADD) $(LIBS)
-position-formats$(EXEEXT): $(position_formats_OBJECTS) $(position_formats_DEPENDENCIES)
+position-formats$(EXEEXT): $(position_formats_OBJECTS) $(position_formats_DEPENDENCIES) $(EXTRA_position_formats_DEPENDENCIES)
@rm -f position-formats$(EXEEXT)
$(AM_V_CCLD)$(position_formats_LINK) $(position_formats_OBJECTS) $(position_formats_LDADD) $(LIBS)
-stress-playbin$(EXEEXT): $(stress_playbin_OBJECTS) $(stress_playbin_DEPENDENCIES)
+stress-playbin$(EXEEXT): $(stress_playbin_OBJECTS) $(stress_playbin_DEPENDENCIES) $(EXTRA_stress_playbin_DEPENDENCIES)
@rm -f stress-playbin$(EXEEXT)
$(AM_V_CCLD)$(stress_playbin_LINK) $(stress_playbin_OBJECTS) $(stress_playbin_LDADD) $(LIBS)
-stress-xoverlay$(EXEEXT): $(stress_xoverlay_OBJECTS) $(stress_xoverlay_DEPENDENCIES)
+stress-xoverlay$(EXEEXT): $(stress_xoverlay_OBJECTS) $(stress_xoverlay_DEPENDENCIES) $(EXTRA_stress_xoverlay_DEPENDENCIES)
@rm -f stress-xoverlay$(EXEEXT)
$(AM_V_CCLD)$(stress_xoverlay_LINK) $(stress_xoverlay_OBJECTS) $(stress_xoverlay_LDADD) $(LIBS)
-test-box$(EXEEXT): $(test_box_OBJECTS) $(test_box_DEPENDENCIES)
+test-box$(EXEEXT): $(test_box_OBJECTS) $(test_box_DEPENDENCIES) $(EXTRA_test_box_DEPENDENCIES)
@rm -f test-box$(EXEEXT)
$(AM_V_CCLD)$(test_box_LINK) $(test_box_OBJECTS) $(test_box_LDADD) $(LIBS)
-test-colorkey$(EXEEXT): $(test_colorkey_OBJECTS) $(test_colorkey_DEPENDENCIES)
+test-colorkey$(EXEEXT): $(test_colorkey_OBJECTS) $(test_colorkey_DEPENDENCIES) $(EXTRA_test_colorkey_DEPENDENCIES)
@rm -f test-colorkey$(EXEEXT)
$(AM_V_CCLD)$(test_colorkey_LINK) $(test_colorkey_OBJECTS) $(test_colorkey_LDADD) $(LIBS)
-test-scale$(EXEEXT): $(test_scale_OBJECTS) $(test_scale_DEPENDENCIES)
+test-scale$(EXEEXT): $(test_scale_OBJECTS) $(test_scale_DEPENDENCIES) $(EXTRA_test_scale_DEPENDENCIES)
@rm -f test-scale$(EXEEXT)
$(AM_V_CCLD)$(test_scale_LINK) $(test_scale_OBJECTS) $(test_scale_LDADD) $(LIBS)
-test-textoverlay$(EXEEXT): $(test_textoverlay_OBJECTS) $(test_textoverlay_DEPENDENCIES)
+test-textoverlay$(EXEEXT): $(test_textoverlay_OBJECTS) $(test_textoverlay_DEPENDENCIES) $(EXTRA_test_textoverlay_DEPENDENCIES)
@rm -f test-textoverlay$(EXEEXT)
$(AM_V_CCLD)$(test_textoverlay_LINK) $(test_textoverlay_OBJECTS) $(test_textoverlay_LDADD) $(LIBS)
-test-xoverlay$(EXEEXT): $(test_xoverlay_OBJECTS) $(test_xoverlay_DEPENDENCIES)
+test-xoverlay$(EXEEXT): $(test_xoverlay_OBJECTS) $(test_xoverlay_DEPENDENCIES) $(EXTRA_test_xoverlay_DEPENDENCIES)
@rm -f test-xoverlay$(EXEEXT)
$(AM_V_CCLD)$(test_xoverlay_LINK) $(test_xoverlay_OBJECTS) $(test_xoverlay_LDADD) $(LIBS)
.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 $@ $<
audio_trickplay-audio-trickplay.o: audio-trickplay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -MT audio_trickplay-audio-trickplay.o -MD -MP -MF $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo -c -o audio_trickplay-audio-trickplay.o `test -f 'audio-trickplay.c' || echo '$(srcdir)/'`audio-trickplay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo $(DEPDIR)/audio_trickplay-audio-trickplay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.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) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.o `test -f 'audio-trickplay.c' || echo '$(srcdir)/'`audio-trickplay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.o `test -f 'audio-trickplay.c' || echo '$(srcdir)/'`audio-trickplay.c
audio_trickplay-audio-trickplay.obj: audio-trickplay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -MT audio_trickplay-audio-trickplay.obj -MD -MP -MF $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo -c -o audio_trickplay-audio-trickplay.obj `if test -f 'audio-trickplay.c'; then $(CYGPATH_W) 'audio-trickplay.c'; else $(CYGPATH_W) '$(srcdir)/audio-trickplay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/audio_trickplay-audio-trickplay.Tpo $(DEPDIR)/audio_trickplay-audio-trickplay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='audio-trickplay.c' object='audio_trickplay-audio-trickplay.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) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.obj `if test -f 'audio-trickplay.c'; then $(CYGPATH_W) 'audio-trickplay.c'; else $(CYGPATH_W) '$(srcdir)/audio-trickplay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(audio_trickplay_CFLAGS) $(CFLAGS) -c -o audio_trickplay-audio-trickplay.obj `if test -f 'audio-trickplay.c'; then $(CYGPATH_W) 'audio-trickplay.c'; else $(CYGPATH_W) '$(srcdir)/audio-trickplay.c'; fi`
input_selector_test-input-selector-test.o: input-selector-test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -MT input_selector_test-input-selector-test.o -MD -MP -MF $(DEPDIR)/input_selector_test-input-selector-test.Tpo -c -o input_selector_test-input-selector-test.o `test -f 'input-selector-test.c' || echo '$(srcdir)/'`input-selector-test.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/input_selector_test-input-selector-test.Tpo $(DEPDIR)/input_selector_test-input-selector-test.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='input-selector-test.c' object='input_selector_test-input-selector-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='input-selector-test.c' object='input_selector_test-input-selector-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) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.o `test -f 'input-selector-test.c' || echo '$(srcdir)/'`input-selector-test.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.o `test -f 'input-selector-test.c' || echo '$(srcdir)/'`input-selector-test.c
input_selector_test-input-selector-test.obj: input-selector-test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -MT input_selector_test-input-selector-test.obj -MD -MP -MF $(DEPDIR)/input_selector_test-input-selector-test.Tpo -c -o input_selector_test-input-selector-test.obj `if test -f 'input-selector-test.c'; then $(CYGPATH_W) 'input-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/input-selector-test.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/input_selector_test-input-selector-test.Tpo $(DEPDIR)/input_selector_test-input-selector-test.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='input-selector-test.c' object='input_selector_test-input-selector-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='input-selector-test.c' object='input_selector_test-input-selector-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) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.obj `if test -f 'input-selector-test.c'; then $(CYGPATH_W) 'input-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/input-selector-test.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(input_selector_test_CFLAGS) $(CFLAGS) -c -o input_selector_test-input-selector-test.obj `if test -f 'input-selector-test.c'; then $(CYGPATH_W) 'input-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/input-selector-test.c'; fi`
output_selector_test-output-selector-test.o: output-selector-test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -MT output_selector_test-output-selector-test.o -MD -MP -MF $(DEPDIR)/output_selector_test-output-selector-test.Tpo -c -o output_selector_test-output-selector-test.o `test -f 'output-selector-test.c' || echo '$(srcdir)/'`output-selector-test.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/output_selector_test-output-selector-test.Tpo $(DEPDIR)/output_selector_test-output-selector-test.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='output-selector-test.c' object='output_selector_test-output-selector-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='output-selector-test.c' object='output_selector_test-output-selector-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) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.o `test -f 'output-selector-test.c' || echo '$(srcdir)/'`output-selector-test.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.o `test -f 'output-selector-test.c' || echo '$(srcdir)/'`output-selector-test.c
output_selector_test-output-selector-test.obj: output-selector-test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -MT output_selector_test-output-selector-test.obj -MD -MP -MF $(DEPDIR)/output_selector_test-output-selector-test.Tpo -c -o output_selector_test-output-selector-test.obj `if test -f 'output-selector-test.c'; then $(CYGPATH_W) 'output-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/output-selector-test.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/output_selector_test-output-selector-test.Tpo $(DEPDIR)/output_selector_test-output-selector-test.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='output-selector-test.c' object='output_selector_test-output-selector-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='output-selector-test.c' object='output_selector_test-output-selector-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) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.obj `if test -f 'output-selector-test.c'; then $(CYGPATH_W) 'output-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/output-selector-test.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(output_selector_test_CFLAGS) $(CFLAGS) -c -o output_selector_test-output-selector-test.obj `if test -f 'output-selector-test.c'; then $(CYGPATH_W) 'output-selector-test.c'; else $(CYGPATH_W) '$(srcdir)/output-selector-test.c'; fi`
playbin_text-playbin-text.o: playbin-text.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -MT playbin_text-playbin-text.o -MD -MP -MF $(DEPDIR)/playbin_text-playbin-text.Tpo -c -o playbin_text-playbin-text.o `test -f 'playbin-text.c' || echo '$(srcdir)/'`playbin-text.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/playbin_text-playbin-text.Tpo $(DEPDIR)/playbin_text-playbin-text.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='playbin-text.c' object='playbin_text-playbin-text.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='playbin-text.c' object='playbin_text-playbin-text.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) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.o `test -f 'playbin-text.c' || echo '$(srcdir)/'`playbin-text.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.o `test -f 'playbin-text.c' || echo '$(srcdir)/'`playbin-text.c
playbin_text-playbin-text.obj: playbin-text.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -MT playbin_text-playbin-text.obj -MD -MP -MF $(DEPDIR)/playbin_text-playbin-text.Tpo -c -o playbin_text-playbin-text.obj `if test -f 'playbin-text.c'; then $(CYGPATH_W) 'playbin-text.c'; else $(CYGPATH_W) '$(srcdir)/playbin-text.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/playbin_text-playbin-text.Tpo $(DEPDIR)/playbin_text-playbin-text.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='playbin-text.c' object='playbin_text-playbin-text.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='playbin-text.c' object='playbin_text-playbin-text.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) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.obj `if test -f 'playbin-text.c'; then $(CYGPATH_W) 'playbin-text.c'; else $(CYGPATH_W) '$(srcdir)/playbin-text.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(playbin_text_CFLAGS) $(CFLAGS) -c -o playbin_text-playbin-text.obj `if test -f 'playbin-text.c'; then $(CYGPATH_W) 'playbin-text.c'; else $(CYGPATH_W) '$(srcdir)/playbin-text.c'; fi`
position_formats-position-formats.o: position-formats.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -MT position_formats-position-formats.o -MD -MP -MF $(DEPDIR)/position_formats-position-formats.Tpo -c -o position_formats-position-formats.o `test -f 'position-formats.c' || echo '$(srcdir)/'`position-formats.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/position_formats-position-formats.Tpo $(DEPDIR)/position_formats-position-formats.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='position-formats.c' object='position_formats-position-formats.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='position-formats.c' object='position_formats-position-formats.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) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.o `test -f 'position-formats.c' || echo '$(srcdir)/'`position-formats.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.o `test -f 'position-formats.c' || echo '$(srcdir)/'`position-formats.c
position_formats-position-formats.obj: position-formats.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -MT position_formats-position-formats.obj -MD -MP -MF $(DEPDIR)/position_formats-position-formats.Tpo -c -o position_formats-position-formats.obj `if test -f 'position-formats.c'; then $(CYGPATH_W) 'position-formats.c'; else $(CYGPATH_W) '$(srcdir)/position-formats.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/position_formats-position-formats.Tpo $(DEPDIR)/position_formats-position-formats.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='position-formats.c' object='position_formats-position-formats.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='position-formats.c' object='position_formats-position-formats.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) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.obj `if test -f 'position-formats.c'; then $(CYGPATH_W) 'position-formats.c'; else $(CYGPATH_W) '$(srcdir)/position-formats.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(position_formats_CFLAGS) $(CFLAGS) -c -o position_formats-position-formats.obj `if test -f 'position-formats.c'; then $(CYGPATH_W) 'position-formats.c'; else $(CYGPATH_W) '$(srcdir)/position-formats.c'; fi`
stress_playbin-stress-playbin.o: stress-playbin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -MT stress_playbin-stress-playbin.o -MD -MP -MF $(DEPDIR)/stress_playbin-stress-playbin.Tpo -c -o stress_playbin-stress-playbin.o `test -f 'stress-playbin.c' || echo '$(srcdir)/'`stress-playbin.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stress_playbin-stress-playbin.Tpo $(DEPDIR)/stress_playbin-stress-playbin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stress-playbin.c' object='stress_playbin-stress-playbin.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stress-playbin.c' object='stress_playbin-stress-playbin.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) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.o `test -f 'stress-playbin.c' || echo '$(srcdir)/'`stress-playbin.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.o `test -f 'stress-playbin.c' || echo '$(srcdir)/'`stress-playbin.c
stress_playbin-stress-playbin.obj: stress-playbin.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -MT stress_playbin-stress-playbin.obj -MD -MP -MF $(DEPDIR)/stress_playbin-stress-playbin.Tpo -c -o stress_playbin-stress-playbin.obj `if test -f 'stress-playbin.c'; then $(CYGPATH_W) 'stress-playbin.c'; else $(CYGPATH_W) '$(srcdir)/stress-playbin.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stress_playbin-stress-playbin.Tpo $(DEPDIR)/stress_playbin-stress-playbin.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stress-playbin.c' object='stress_playbin-stress-playbin.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stress-playbin.c' object='stress_playbin-stress-playbin.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) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.obj `if test -f 'stress-playbin.c'; then $(CYGPATH_W) 'stress-playbin.c'; else $(CYGPATH_W) '$(srcdir)/stress-playbin.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_playbin_CFLAGS) $(CFLAGS) -c -o stress_playbin-stress-playbin.obj `if test -f 'stress-playbin.c'; then $(CYGPATH_W) 'stress-playbin.c'; else $(CYGPATH_W) '$(srcdir)/stress-playbin.c'; fi`
stress_xoverlay-stress-xoverlay.o: stress-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -MT stress_xoverlay-stress-xoverlay.o -MD -MP -MF $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo -c -o stress_xoverlay-stress-xoverlay.o `test -f 'stress-xoverlay.c' || echo '$(srcdir)/'`stress-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo $(DEPDIR)/stress_xoverlay-stress-xoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.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) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.o `test -f 'stress-xoverlay.c' || echo '$(srcdir)/'`stress-xoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.o `test -f 'stress-xoverlay.c' || echo '$(srcdir)/'`stress-xoverlay.c
stress_xoverlay-stress-xoverlay.obj: stress-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -MT stress_xoverlay-stress-xoverlay.obj -MD -MP -MF $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo -c -o stress_xoverlay-stress-xoverlay.obj `if test -f 'stress-xoverlay.c'; then $(CYGPATH_W) 'stress-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/stress-xoverlay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/stress_xoverlay-stress-xoverlay.Tpo $(DEPDIR)/stress_xoverlay-stress-xoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='stress-xoverlay.c' object='stress_xoverlay-stress-xoverlay.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) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.obj `if test -f 'stress-xoverlay.c'; then $(CYGPATH_W) 'stress-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/stress-xoverlay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(stress_xoverlay_CFLAGS) $(CFLAGS) -c -o stress_xoverlay-stress-xoverlay.obj `if test -f 'stress-xoverlay.c'; then $(CYGPATH_W) 'stress-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/stress-xoverlay.c'; fi`
test_box-test-box.o: test-box.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -MT test_box-test-box.o -MD -MP -MF $(DEPDIR)/test_box-test-box.Tpo -c -o test_box-test-box.o `test -f 'test-box.c' || echo '$(srcdir)/'`test-box.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_box-test-box.Tpo $(DEPDIR)/test_box-test-box.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-box.c' object='test_box-test-box.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-box.c' object='test_box-test-box.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_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.o `test -f 'test-box.c' || echo '$(srcdir)/'`test-box.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.o `test -f 'test-box.c' || echo '$(srcdir)/'`test-box.c
test_box-test-box.obj: test-box.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -MT test_box-test-box.obj -MD -MP -MF $(DEPDIR)/test_box-test-box.Tpo -c -o test_box-test-box.obj `if test -f 'test-box.c'; then $(CYGPATH_W) 'test-box.c'; else $(CYGPATH_W) '$(srcdir)/test-box.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_box-test-box.Tpo $(DEPDIR)/test_box-test-box.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-box.c' object='test_box-test-box.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-box.c' object='test_box-test-box.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_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.obj `if test -f 'test-box.c'; then $(CYGPATH_W) 'test-box.c'; else $(CYGPATH_W) '$(srcdir)/test-box.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_box_CFLAGS) $(CFLAGS) -c -o test_box-test-box.obj `if test -f 'test-box.c'; then $(CYGPATH_W) 'test-box.c'; else $(CYGPATH_W) '$(srcdir)/test-box.c'; fi`
test_colorkey-test-colorkey.o: test-colorkey.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -MT test_colorkey-test-colorkey.o -MD -MP -MF $(DEPDIR)/test_colorkey-test-colorkey.Tpo -c -o test_colorkey-test-colorkey.o `test -f 'test-colorkey.c' || echo '$(srcdir)/'`test-colorkey.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_colorkey-test-colorkey.Tpo $(DEPDIR)/test_colorkey-test-colorkey.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-colorkey.c' object='test_colorkey-test-colorkey.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-colorkey.c' object='test_colorkey-test-colorkey.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_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.o `test -f 'test-colorkey.c' || echo '$(srcdir)/'`test-colorkey.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.o `test -f 'test-colorkey.c' || echo '$(srcdir)/'`test-colorkey.c
test_colorkey-test-colorkey.obj: test-colorkey.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -MT test_colorkey-test-colorkey.obj -MD -MP -MF $(DEPDIR)/test_colorkey-test-colorkey.Tpo -c -o test_colorkey-test-colorkey.obj `if test -f 'test-colorkey.c'; then $(CYGPATH_W) 'test-colorkey.c'; else $(CYGPATH_W) '$(srcdir)/test-colorkey.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_colorkey-test-colorkey.Tpo $(DEPDIR)/test_colorkey-test-colorkey.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-colorkey.c' object='test_colorkey-test-colorkey.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-colorkey.c' object='test_colorkey-test-colorkey.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_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.obj `if test -f 'test-colorkey.c'; then $(CYGPATH_W) 'test-colorkey.c'; else $(CYGPATH_W) '$(srcdir)/test-colorkey.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_colorkey_CFLAGS) $(CFLAGS) -c -o test_colorkey-test-colorkey.obj `if test -f 'test-colorkey.c'; then $(CYGPATH_W) 'test-colorkey.c'; else $(CYGPATH_W) '$(srcdir)/test-colorkey.c'; fi`
test_scale-test-scale.o: test-scale.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -MT test_scale-test-scale.o -MD -MP -MF $(DEPDIR)/test_scale-test-scale.Tpo -c -o test_scale-test-scale.o `test -f 'test-scale.c' || echo '$(srcdir)/'`test-scale.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_scale-test-scale.Tpo $(DEPDIR)/test_scale-test-scale.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-scale.c' object='test_scale-test-scale.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-scale.c' object='test_scale-test-scale.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_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.o `test -f 'test-scale.c' || echo '$(srcdir)/'`test-scale.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.o `test -f 'test-scale.c' || echo '$(srcdir)/'`test-scale.c
test_scale-test-scale.obj: test-scale.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -MT test_scale-test-scale.obj -MD -MP -MF $(DEPDIR)/test_scale-test-scale.Tpo -c -o test_scale-test-scale.obj `if test -f 'test-scale.c'; then $(CYGPATH_W) 'test-scale.c'; else $(CYGPATH_W) '$(srcdir)/test-scale.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_scale-test-scale.Tpo $(DEPDIR)/test_scale-test-scale.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-scale.c' object='test_scale-test-scale.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-scale.c' object='test_scale-test-scale.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_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.obj `if test -f 'test-scale.c'; then $(CYGPATH_W) 'test-scale.c'; else $(CYGPATH_W) '$(srcdir)/test-scale.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_scale_CFLAGS) $(CFLAGS) -c -o test_scale-test-scale.obj `if test -f 'test-scale.c'; then $(CYGPATH_W) 'test-scale.c'; else $(CYGPATH_W) '$(srcdir)/test-scale.c'; fi`
test_textoverlay-test-textoverlay.o: test-textoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -MT test_textoverlay-test-textoverlay.o -MD -MP -MF $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo -c -o test_textoverlay-test-textoverlay.o `test -f 'test-textoverlay.c' || echo '$(srcdir)/'`test-textoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo $(DEPDIR)/test_textoverlay-test-textoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.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_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.o `test -f 'test-textoverlay.c' || echo '$(srcdir)/'`test-textoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.o `test -f 'test-textoverlay.c' || echo '$(srcdir)/'`test-textoverlay.c
test_textoverlay-test-textoverlay.obj: test-textoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -MT test_textoverlay-test-textoverlay.obj -MD -MP -MF $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo -c -o test_textoverlay-test-textoverlay.obj `if test -f 'test-textoverlay.c'; then $(CYGPATH_W) 'test-textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-textoverlay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_textoverlay-test-textoverlay.Tpo $(DEPDIR)/test_textoverlay-test-textoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-textoverlay.c' object='test_textoverlay-test-textoverlay.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_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.obj `if test -f 'test-textoverlay.c'; then $(CYGPATH_W) 'test-textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-textoverlay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_textoverlay_CFLAGS) $(CFLAGS) -c -o test_textoverlay-test-textoverlay.obj `if test -f 'test-textoverlay.c'; then $(CYGPATH_W) 'test-textoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-textoverlay.c'; fi`
test_xoverlay-test-xoverlay.o: test-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -MT test_xoverlay-test-xoverlay.o -MD -MP -MF $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo -c -o test_xoverlay-test-xoverlay.o `test -f 'test-xoverlay.c' || echo '$(srcdir)/'`test-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo $(DEPDIR)/test_xoverlay-test-xoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.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_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.o `test -f 'test-xoverlay.c' || echo '$(srcdir)/'`test-xoverlay.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.o `test -f 'test-xoverlay.c' || echo '$(srcdir)/'`test-xoverlay.c
test_xoverlay-test-xoverlay.obj: test-xoverlay.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -MT test_xoverlay-test-xoverlay.obj -MD -MP -MF $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo -c -o test_xoverlay-test-xoverlay.obj `if test -f 'test-xoverlay.c'; then $(CYGPATH_W) 'test-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-xoverlay.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_xoverlay-test-xoverlay.Tpo $(DEPDIR)/test_xoverlay-test-xoverlay.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test-xoverlay.c' object='test_xoverlay-test-xoverlay.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_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.obj `if test -f 'test-xoverlay.c'; then $(CYGPATH_W) 'test-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-xoverlay.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_xoverlay_CFLAGS) $(CFLAGS) -c -o test_xoverlay-test-xoverlay.obj `if test -f 'test-xoverlay.c'; then $(CYGPATH_W) 'test-xoverlay.c'; else $(CYGPATH_W) '$(srcdir)/test-xoverlay.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
decodetest_OBJECTS = decodetest-decodetest.$(OBJEXT)
am__DEPENDENCIES_1 =
decodetest_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
decodetest_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(decodetest_CFLAGS) \
$(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 = decodetest.c test.c test2.c test3.c test4.c test5.c test6.c \
test7.c
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-decodetest$(EXEEXT): $(decodetest_OBJECTS) $(decodetest_DEPENDENCIES)
+decodetest$(EXEEXT): $(decodetest_OBJECTS) $(decodetest_DEPENDENCIES) $(EXTRA_decodetest_DEPENDENCIES)
@rm -f decodetest$(EXEEXT)
$(AM_V_CCLD)$(decodetest_LINK) $(decodetest_OBJECTS) $(decodetest_LDADD) $(LIBS)
-test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES)
+test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) $(EXTRA_test_DEPENDENCIES)
@rm -f test$(EXEEXT)
$(AM_V_CCLD)$(test_LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
-test2$(EXEEXT): $(test2_OBJECTS) $(test2_DEPENDENCIES)
+test2$(EXEEXT): $(test2_OBJECTS) $(test2_DEPENDENCIES) $(EXTRA_test2_DEPENDENCIES)
@rm -f test2$(EXEEXT)
$(AM_V_CCLD)$(test2_LINK) $(test2_OBJECTS) $(test2_LDADD) $(LIBS)
-test3$(EXEEXT): $(test3_OBJECTS) $(test3_DEPENDENCIES)
+test3$(EXEEXT): $(test3_OBJECTS) $(test3_DEPENDENCIES) $(EXTRA_test3_DEPENDENCIES)
@rm -f test3$(EXEEXT)
$(AM_V_CCLD)$(test3_LINK) $(test3_OBJECTS) $(test3_LDADD) $(LIBS)
-test4$(EXEEXT): $(test4_OBJECTS) $(test4_DEPENDENCIES)
+test4$(EXEEXT): $(test4_OBJECTS) $(test4_DEPENDENCIES) $(EXTRA_test4_DEPENDENCIES)
@rm -f test4$(EXEEXT)
$(AM_V_CCLD)$(test4_LINK) $(test4_OBJECTS) $(test4_LDADD) $(LIBS)
-test5$(EXEEXT): $(test5_OBJECTS) $(test5_DEPENDENCIES)
+test5$(EXEEXT): $(test5_OBJECTS) $(test5_DEPENDENCIES) $(EXTRA_test5_DEPENDENCIES)
@rm -f test5$(EXEEXT)
$(AM_V_CCLD)$(test5_LINK) $(test5_OBJECTS) $(test5_LDADD) $(LIBS)
-test6$(EXEEXT): $(test6_OBJECTS) $(test6_DEPENDENCIES)
+test6$(EXEEXT): $(test6_OBJECTS) $(test6_DEPENDENCIES) $(EXTRA_test6_DEPENDENCIES)
@rm -f test6$(EXEEXT)
$(AM_V_CCLD)$(test6_LINK) $(test6_OBJECTS) $(test6_LDADD) $(LIBS)
-test7$(EXEEXT): $(test7_OBJECTS) $(test7_DEPENDENCIES)
+test7$(EXEEXT): $(test7_OBJECTS) $(test7_DEPENDENCIES) $(EXTRA_test7_DEPENDENCIES)
@rm -f test7$(EXEEXT)
$(AM_V_CCLD)$(test7_LINK) $(test7_OBJECTS) $(test7_LDADD) $(LIBS)
.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 $@ $<
decodetest-decodetest.o: decodetest.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -MT decodetest-decodetest.o -MD -MP -MF $(DEPDIR)/decodetest-decodetest.Tpo -c -o decodetest-decodetest.o `test -f 'decodetest.c' || echo '$(srcdir)/'`decodetest.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/decodetest-decodetest.Tpo $(DEPDIR)/decodetest-decodetest.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='decodetest.c' object='decodetest-decodetest.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='decodetest.c' object='decodetest-decodetest.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) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.o `test -f 'decodetest.c' || echo '$(srcdir)/'`decodetest.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.o `test -f 'decodetest.c' || echo '$(srcdir)/'`decodetest.c
decodetest-decodetest.obj: decodetest.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -MT decodetest-decodetest.obj -MD -MP -MF $(DEPDIR)/decodetest-decodetest.Tpo -c -o decodetest-decodetest.obj `if test -f 'decodetest.c'; then $(CYGPATH_W) 'decodetest.c'; else $(CYGPATH_W) '$(srcdir)/decodetest.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/decodetest-decodetest.Tpo $(DEPDIR)/decodetest-decodetest.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='decodetest.c' object='decodetest-decodetest.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='decodetest.c' object='decodetest-decodetest.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) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.obj `if test -f 'decodetest.c'; then $(CYGPATH_W) 'decodetest.c'; else $(CYGPATH_W) '$(srcdir)/decodetest.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(decodetest_CFLAGS) $(CFLAGS) -c -o decodetest-decodetest.obj `if test -f 'decodetest.c'; then $(CYGPATH_W) 'decodetest.c'; else $(CYGPATH_W) '$(srcdir)/decodetest.c'; fi`
test-test.o: test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -MT test-test.o -MD -MP -MF $(DEPDIR)/test-test.Tpo -c -o test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test-test.Tpo $(DEPDIR)/test-test.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='test-test.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test.c' object='test-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) $(test_CFLAGS) $(CFLAGS) -c -o test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -c -o test-test.o `test -f 'test.c' || echo '$(srcdir)/'`test.c
test-test.obj: test.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -MT test-test.obj -MD -MP -MF $(DEPDIR)/test-test.Tpo -c -o test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test-test.Tpo $(DEPDIR)/test-test.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test.c' object='test-test.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test.c' object='test-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) $(test_CFLAGS) $(CFLAGS) -c -o test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_CFLAGS) $(CFLAGS) -c -o test-test.obj `if test -f 'test.c'; then $(CYGPATH_W) 'test.c'; else $(CYGPATH_W) '$(srcdir)/test.c'; fi`
test2-test2.o: test2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -MT test2-test2.o -MD -MP -MF $(DEPDIR)/test2-test2.Tpo -c -o test2-test2.o `test -f 'test2.c' || echo '$(srcdir)/'`test2.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test2-test2.Tpo $(DEPDIR)/test2-test2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test2.c' object='test2-test2.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test2.c' object='test2-test2.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) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.o `test -f 'test2.c' || echo '$(srcdir)/'`test2.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.o `test -f 'test2.c' || echo '$(srcdir)/'`test2.c
test2-test2.obj: test2.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -MT test2-test2.obj -MD -MP -MF $(DEPDIR)/test2-test2.Tpo -c -o test2-test2.obj `if test -f 'test2.c'; then $(CYGPATH_W) 'test2.c'; else $(CYGPATH_W) '$(srcdir)/test2.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test2-test2.Tpo $(DEPDIR)/test2-test2.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test2.c' object='test2-test2.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test2.c' object='test2-test2.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) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.obj `if test -f 'test2.c'; then $(CYGPATH_W) 'test2.c'; else $(CYGPATH_W) '$(srcdir)/test2.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test2_CFLAGS) $(CFLAGS) -c -o test2-test2.obj `if test -f 'test2.c'; then $(CYGPATH_W) 'test2.c'; else $(CYGPATH_W) '$(srcdir)/test2.c'; fi`
test3-test3.o: test3.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -MT test3-test3.o -MD -MP -MF $(DEPDIR)/test3-test3.Tpo -c -o test3-test3.o `test -f 'test3.c' || echo '$(srcdir)/'`test3.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test3-test3.Tpo $(DEPDIR)/test3-test3.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test3.c' object='test3-test3.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test3.c' object='test3-test3.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) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.o `test -f 'test3.c' || echo '$(srcdir)/'`test3.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.o `test -f 'test3.c' || echo '$(srcdir)/'`test3.c
test3-test3.obj: test3.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -MT test3-test3.obj -MD -MP -MF $(DEPDIR)/test3-test3.Tpo -c -o test3-test3.obj `if test -f 'test3.c'; then $(CYGPATH_W) 'test3.c'; else $(CYGPATH_W) '$(srcdir)/test3.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test3-test3.Tpo $(DEPDIR)/test3-test3.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test3.c' object='test3-test3.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test3.c' object='test3-test3.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) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.obj `if test -f 'test3.c'; then $(CYGPATH_W) 'test3.c'; else $(CYGPATH_W) '$(srcdir)/test3.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test3_CFLAGS) $(CFLAGS) -c -o test3-test3.obj `if test -f 'test3.c'; then $(CYGPATH_W) 'test3.c'; else $(CYGPATH_W) '$(srcdir)/test3.c'; fi`
test4-test4.o: test4.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -MT test4-test4.o -MD -MP -MF $(DEPDIR)/test4-test4.Tpo -c -o test4-test4.o `test -f 'test4.c' || echo '$(srcdir)/'`test4.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test4-test4.Tpo $(DEPDIR)/test4-test4.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test4.c' object='test4-test4.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test4.c' object='test4-test4.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) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.o `test -f 'test4.c' || echo '$(srcdir)/'`test4.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.o `test -f 'test4.c' || echo '$(srcdir)/'`test4.c
test4-test4.obj: test4.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -MT test4-test4.obj -MD -MP -MF $(DEPDIR)/test4-test4.Tpo -c -o test4-test4.obj `if test -f 'test4.c'; then $(CYGPATH_W) 'test4.c'; else $(CYGPATH_W) '$(srcdir)/test4.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test4-test4.Tpo $(DEPDIR)/test4-test4.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test4.c' object='test4-test4.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test4.c' object='test4-test4.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) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.obj `if test -f 'test4.c'; then $(CYGPATH_W) 'test4.c'; else $(CYGPATH_W) '$(srcdir)/test4.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test4_CFLAGS) $(CFLAGS) -c -o test4-test4.obj `if test -f 'test4.c'; then $(CYGPATH_W) 'test4.c'; else $(CYGPATH_W) '$(srcdir)/test4.c'; fi`
test5-test5.o: test5.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -MT test5-test5.o -MD -MP -MF $(DEPDIR)/test5-test5.Tpo -c -o test5-test5.o `test -f 'test5.c' || echo '$(srcdir)/'`test5.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test5-test5.Tpo $(DEPDIR)/test5-test5.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test5.c' object='test5-test5.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test5.c' object='test5-test5.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) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.o `test -f 'test5.c' || echo '$(srcdir)/'`test5.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.o `test -f 'test5.c' || echo '$(srcdir)/'`test5.c
test5-test5.obj: test5.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -MT test5-test5.obj -MD -MP -MF $(DEPDIR)/test5-test5.Tpo -c -o test5-test5.obj `if test -f 'test5.c'; then $(CYGPATH_W) 'test5.c'; else $(CYGPATH_W) '$(srcdir)/test5.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test5-test5.Tpo $(DEPDIR)/test5-test5.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test5.c' object='test5-test5.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test5.c' object='test5-test5.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) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.obj `if test -f 'test5.c'; then $(CYGPATH_W) 'test5.c'; else $(CYGPATH_W) '$(srcdir)/test5.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test5_CFLAGS) $(CFLAGS) -c -o test5-test5.obj `if test -f 'test5.c'; then $(CYGPATH_W) 'test5.c'; else $(CYGPATH_W) '$(srcdir)/test5.c'; fi`
test6-test6.o: test6.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -MT test6-test6.o -MD -MP -MF $(DEPDIR)/test6-test6.Tpo -c -o test6-test6.o `test -f 'test6.c' || echo '$(srcdir)/'`test6.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test6-test6.Tpo $(DEPDIR)/test6-test6.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test6.c' object='test6-test6.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test6.c' object='test6-test6.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) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.o `test -f 'test6.c' || echo '$(srcdir)/'`test6.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.o `test -f 'test6.c' || echo '$(srcdir)/'`test6.c
test6-test6.obj: test6.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -MT test6-test6.obj -MD -MP -MF $(DEPDIR)/test6-test6.Tpo -c -o test6-test6.obj `if test -f 'test6.c'; then $(CYGPATH_W) 'test6.c'; else $(CYGPATH_W) '$(srcdir)/test6.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test6-test6.Tpo $(DEPDIR)/test6-test6.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test6.c' object='test6-test6.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test6.c' object='test6-test6.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) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.obj `if test -f 'test6.c'; then $(CYGPATH_W) 'test6.c'; else $(CYGPATH_W) '$(srcdir)/test6.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test6_CFLAGS) $(CFLAGS) -c -o test6-test6.obj `if test -f 'test6.c'; then $(CYGPATH_W) 'test6.c'; else $(CYGPATH_W) '$(srcdir)/test6.c'; fi`
test7-test7.o: test7.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -MT test7-test7.o -MD -MP -MF $(DEPDIR)/test7-test7.Tpo -c -o test7-test7.o `test -f 'test7.c' || echo '$(srcdir)/'`test7.c
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test7-test7.Tpo $(DEPDIR)/test7-test7.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test7.c' object='test7-test7.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test7.c' object='test7-test7.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) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.o `test -f 'test7.c' || echo '$(srcdir)/'`test7.c
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.o `test -f 'test7.c' || echo '$(srcdir)/'`test7.c
test7-test7.obj: test7.c
@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -MT test7-test7.obj -MD -MP -MF $(DEPDIR)/test7-test7.Tpo -c -o test7-test7.obj `if test -f 'test7.c'; then $(CYGPATH_W) 'test7.c'; else $(CYGPATH_W) '$(srcdir)/test7.c'; fi`
@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test7-test7.Tpo $(DEPDIR)/test7-test7.Po
-@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='test7.c' object='test7-test7.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test7.c' object='test7-test7.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) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.obj `if test -f 'test7.c'; then $(CYGPATH_W) 'test7.c'; else $(CYGPATH_W) '$(srcdir)/test7.c'; fi`
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test7_CFLAGS) $(CFLAGS) -c -o test7-test7.obj `if test -f 'test7.c'; then $(CYGPATH_W) 'test7.c'; else $(CYGPATH_W) '$(srcdir)/test7.c'; fi`
mostlyclean-libtool:
-rm -f *.lo
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:
};
GTimer *timer;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported ())
g_thread_init (NULL);
+#endif
ctx = g_option_context_new ("FILES OR DIRECTORIES WITH AUDIO FILES");
g_option_context_add_main_entries (ctx, options, NULL);
#include <gst/interfaces/xoverlay.h>
#include <gst/interfaces/propertyprobe.h>
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
- *a = w->allocation;
-}
-#endif
-
static GtkWidget *video_window = NULL;
static GstElement *sink = NULL;
static gulong embed_xid = 0;
}
static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event, gpointer data)
+draw_cb (GtkWidget * widget, cairo_t * cr, gpointer data)
{
redraw_overlay (widget);
return FALSE;
static void
realize_cb (GtkWidget * widget, gpointer data)
{
-#if GTK_CHECK_VERSION(2,18,0)
- {
- GdkWindow *window = gtk_widget_get_window (widget);
-
- /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
- * as well */
- if (!gdk_window_ensure_native (window))
- g_error ("Couldn't create native window needed for GstXOverlay!");
- }
-#endif
+ GdkWindow *window = gtk_widget_get_window (widget);
- {
- GdkWindow *window = gtk_widget_get_window (video_window);
+ /* This is here just for pedagogical purposes, GDK_WINDOW_XID will call it
+ * as well */
+ if (!gdk_window_ensure_native (window))
+ g_error ("Couldn't create native window needed for GstXOverlay!");
- embed_xid = GDK_WINDOW_XID (window);
- g_print ("Window realize: video window XID = %lu\n", embed_xid);
- }
+ embed_xid = GDK_WINDOW_XID (window);
+ g_print ("Window realize: video window XID = %lu\n", embed_xid);
}
static void
GstPropertyProbe *probe;
GValueArray *arr;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported ())
g_thread_init (NULL);
+#endif
gst_init (&argc, &argv);
gtk_init (&argc, &argv);
video_window = gtk_drawing_area_new ();
g_signal_connect (G_OBJECT (video_window), "configure-event",
G_CALLBACK (handle_resize_cb), NULL);
- g_signal_connect (G_OBJECT (video_window), "expose-event",
- G_CALLBACK (handle_expose_cb), NULL);
+ g_signal_connect (G_OBJECT (video_window), "draw",
+ G_CALLBACK (draw_cb), NULL);
g_signal_connect (video_window, "realize", G_CALLBACK (realize_cb), NULL);
gtk_widget_set_double_buffered (video_window, FALSE);
gtk_container_add (GTK_CONTAINER (window), video_window);
#include <gst/interfaces/xoverlay.h>
#include <gst/video/gstvideosink.h>
-#if !GTK_CHECK_VERSION (2, 17, 7)
-static void
-gtk_widget_get_allocation (GtkWidget * w, GtkAllocation * a)
-{
- *a = w->allocation;
-}
-#endif
-
static struct
{
gint w, h;
gdouble c = cos (2.0 * anim_state.a);
anim_state.a += anim_state.p;
- if (anim_state.a > (M_PI + M_PI))
- anim_state.a -= (M_PI + M_PI);
+ if (anim_state.a > (G_PI + G_PI))
+ anim_state.a -= (G_PI + G_PI);
r->w = anim_state.w / 2;
r->x = (r->w - (r->w / 2)) + c * (r->w / 2);
}
static gboolean
-handle_expose_cb (GtkWidget * widget, GdkEventExpose * event,
- gpointer user_data)
+handle_draw_cb (GtkWidget * widget, cairo_t * cr, gpointer user_data)
{
GstVideoRectangle *r = &anim_state.rect;
- GtkAllocation allocation;
- GdkWindow *window;
GtkStyle *style;
- cairo_t *cr;
+ int width, height;
+
+ width = gtk_widget_get_allocated_width (widget);
+ height = gtk_widget_get_allocated_height (widget);
style = gtk_widget_get_style (widget);
- window = gtk_widget_get_window (widget);
- gtk_widget_get_allocation (widget, &allocation);
- cr = gdk_cairo_create (window);
gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
/* we should only redraw outside of the video rect! */
- cairo_rectangle (cr, 0, event->area.y, r->x, event->area.height);
- cairo_rectangle (cr, r->x + r->w, event->area.y,
- allocation.width - (r->x + r->w), event->area.height);
+ cairo_rectangle (cr, 0, 0, r->x, height);
+ cairo_rectangle (cr, r->x + r->w, 0, width - (r->x + r->w), height);
- cairo_rectangle (cr, event->area.x, 0, event->area.width, r->y);
- cairo_rectangle (cr, event->area.x, r->y + r->h,
- event->area.width, allocation.height - (r->y + r->h));
+ cairo_rectangle (cr, 0, 0, width, r->y);
+ cairo_rectangle (cr, 0, r->y + r->h, width, height - (r->y + r->h));
cairo_fill (cr);
- cairo_destroy (cr);
-
if (verbose) {
- g_print ("expose(%p)\n", widget);
+ g_print ("draw(%p)\n", widget);
}
gst_x_overlay_expose (anim_state.overlay);
return FALSE;
gulong embed_xid = 0;
gboolean force_aspect = FALSE, draw_borders = FALSE;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported ())
g_thread_init (NULL);
+#endif
gst_init (&argc, &argv);
gtk_init (&argc, &argv);
anim_state.w = 320;
anim_state.h = 240;
anim_state.a = 0.0;
- anim_state.p = (M_PI + M_PI) / 200.0;
+ anim_state.p = (G_PI + G_PI) / 200.0;
handle_resize_cb (video_window, NULL, sink);
g_signal_connect (video_window, "configure-event",
G_CALLBACK (handle_resize_cb), NULL);
- g_signal_connect (video_window, "expose-event",
- G_CALLBACK (handle_expose_cb), NULL);
+ g_signal_connect (video_window, "draw", G_CALLBACK (handle_draw_cb), NULL);
g_timeout_add (50, (GSourceFunc) animate_render_rect, NULL);
-# 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.
$(top_srcdir)/common/m4/gst-gettext.m4 \
$(top_srcdir)/common/m4/gst-glib2.m4 \
$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+ $(top_srcdir)/common/m4/gst-platform.m4 \
$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
$(top_srcdir)/common/m4/gst-plugindir.m4 \
$(top_srcdir)/common/m4/gst-x11.m4 \
gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES = $(top_builddir)/gst-libs/gst/pbutils/libgstpbutils-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_MAJORMINOR@.la \
$(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
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
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; }; \
+ }
SCRIPTS = $(bin_SCRIPTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
$(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 = $(gst_discoverer_@GST_MAJORMINOR@_SOURCES)
DIST_SOURCES = $(gst_discoverer_@GST_MAJORMINOR@_SOURCES)
GIO_LDFLAGS = @GIO_LDFLAGS@
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@
HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
HAVE_X = @HAVE_X@
HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
HSTRERROR_LIBS = @HSTRERROR_LIBS@
HTML_DIR = @HTML_DIR@
INSTALL = @INSTALL@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INTLLIBS = @INTLLIBS@
INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@
MSGFMT = @MSGFMT@
MSGFMT_015 = @MSGFMT_015@
X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
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@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
-gst-discoverer-@GST_MAJORMINOR@$(EXEEXT): $(gst_discoverer_@GST_MAJORMINOR@_OBJECTS) $(gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES)
+gst-discoverer-@GST_MAJORMINOR@$(EXEEXT): $(gst_discoverer_@GST_MAJORMINOR@_OBJECTS) $(gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES) $(EXTRA_gst_discoverer_@GST_MAJORMINOR@_DEPENDENCIES)
@rm -f gst-discoverer-@GST_MAJORMINOR@$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(gst_discoverer_@GST_MAJORMINOR@_OBJECTS) $(gst_discoverer_@GST_MAJORMINOR@_LDADD) $(LIBS)
install-binSCRIPTS: $(bin_SCRIPTS)
@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 's,.*/,,;$(transform)'`; \
- test -n "$$list" || exit 0; \
- echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(bindir)" && rm -f $$files
+ dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
.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 $@ $<
mostlyclean-libtool:
-rm -f *.lo
sed -n '/\.1[a-z]*$$/p'; \
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
- test -z "$$files" || { \
- echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
- cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
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:
char **argv;
} PrivStruct;
-#define my_g_string_append_printf(str, format, ...) \
- g_string_append_printf (str, "%*s" format, 2*depth, " ", ##__VA_ARGS__)
+static void
+my_g_string_append_printf (GString * str, int depth, const gchar * format, ...)
+{
+ va_list args;
+
+ while (depth-- > 0) {
+ g_string_append (str, " ");
+ }
+
+ va_start (args, format);
+ g_string_append_vprintf (str, format, args);
+ va_end (args);
+}
static gchar *
gst_stream_audio_information_to_string (GstDiscovererStreamInfo * info,
GstDiscovererAudioInfo *audio_info;
GString *s;
gchar *tmp;
+ const gchar *ctmp;
int len = 400;
const GstTagList *tags;
GstCaps *caps;
s = g_string_sized_new (len);
- my_g_string_append_printf (s, "Codec:\n");
+ my_g_string_append_printf (s, depth, "Codec:\n");
caps = gst_discoverer_stream_info_get_caps (info);
tmp = gst_caps_to_string (caps);
gst_caps_unref (caps);
- my_g_string_append_printf (s, " %s\n", tmp);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
g_free (tmp);
- my_g_string_append_printf (s, "Additional info:\n");
+ my_g_string_append_printf (s, depth, "Additional info:\n");
if (gst_discoverer_stream_info_get_misc (info)) {
tmp = gst_structure_to_string (gst_discoverer_stream_info_get_misc (info));
- my_g_string_append_printf (s, " %s\n", tmp);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
g_free (tmp);
} else {
- my_g_string_append_printf (s, " None\n");
+ my_g_string_append_printf (s, depth, " None\n");
}
audio_info = (GstDiscovererAudioInfo *) info;
- my_g_string_append_printf (s, "Channels: %u\n",
+ ctmp = gst_discoverer_audio_info_get_language (audio_info);
+ my_g_string_append_printf (s, depth, "Language: %s\n",
+ ctmp ? ctmp : "<unknown>");
+ my_g_string_append_printf (s, depth, "Channels: %u\n",
gst_discoverer_audio_info_get_channels (audio_info));
- my_g_string_append_printf (s, "Sample rate: %u\n",
+ my_g_string_append_printf (s, depth, "Sample rate: %u\n",
gst_discoverer_audio_info_get_sample_rate (audio_info));
- my_g_string_append_printf (s, "Depth: %u\n",
+ my_g_string_append_printf (s, depth, "Depth: %u\n",
gst_discoverer_audio_info_get_depth (audio_info));
- my_g_string_append_printf (s, "Bitrate: %u\n",
+ my_g_string_append_printf (s, depth, "Bitrate: %u\n",
gst_discoverer_audio_info_get_bitrate (audio_info));
- my_g_string_append_printf (s, "Max bitrate: %u\n",
+ my_g_string_append_printf (s, depth, "Max bitrate: %u\n",
gst_discoverer_audio_info_get_max_bitrate (audio_info));
- my_g_string_append_printf (s, "Tags:\n");
+ my_g_string_append_printf (s, depth, "Tags:\n");
tags = gst_discoverer_stream_info_get_tags (info);
if (tags) {
tmp = gst_structure_to_string ((GstStructure *) tags);
- my_g_string_append_printf (s, " %s\n", tmp);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
g_free (tmp);
} else {
- my_g_string_append_printf (s, " None\n");
+ my_g_string_append_printf (s, depth, " None\n");
}
if (verbose)
- my_g_string_append_printf (s, "\n");
+ my_g_string_append_printf (s, depth, "\n");
return g_string_free (s, FALSE);
}
s = g_string_sized_new (len);
- my_g_string_append_printf (s, "Codec:\n");
+ my_g_string_append_printf (s, depth, "Codec:\n");
caps = gst_discoverer_stream_info_get_caps (info);
tmp = gst_caps_to_string (caps);
gst_caps_unref (caps);
- my_g_string_append_printf (s, " %s\n", tmp);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
g_free (tmp);
- my_g_string_append_printf (s, "Additional info:\n");
+ my_g_string_append_printf (s, depth, "Additional info:\n");
misc = gst_discoverer_stream_info_get_misc (info);
if (misc) {
tmp = gst_structure_to_string (misc);
- my_g_string_append_printf (s, " %s\n", tmp);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
g_free (tmp);
} else {
- my_g_string_append_printf (s, " None\n");
+ my_g_string_append_printf (s, depth, " None\n");
}
video_info = (GstDiscovererVideoInfo *) info;
- my_g_string_append_printf (s, "Width: %u\n",
+ my_g_string_append_printf (s, depth, "Width: %u\n",
gst_discoverer_video_info_get_width (video_info));
- my_g_string_append_printf (s, "Height: %u\n",
+ my_g_string_append_printf (s, depth, "Height: %u\n",
gst_discoverer_video_info_get_height (video_info));
- my_g_string_append_printf (s, "Depth: %u\n",
+ my_g_string_append_printf (s, depth, "Depth: %u\n",
gst_discoverer_video_info_get_depth (video_info));
- my_g_string_append_printf (s, "Frame rate: %u/%u\n",
+ my_g_string_append_printf (s, depth, "Frame rate: %u/%u\n",
gst_discoverer_video_info_get_framerate_num (video_info),
gst_discoverer_video_info_get_framerate_denom (video_info));
- my_g_string_append_printf (s, "Pixel aspect ratio: %u/%u\n",
+ my_g_string_append_printf (s, depth, "Pixel aspect ratio: %u/%u\n",
gst_discoverer_video_info_get_par_num (video_info),
gst_discoverer_video_info_get_par_denom (video_info));
- my_g_string_append_printf (s, "Interlaced: %s\n",
+ my_g_string_append_printf (s, depth, "Interlaced: %s\n",
gst_discoverer_video_info_is_interlaced (video_info) ? "true" : "false");
- my_g_string_append_printf (s, "Bitrate: %u\n",
+ my_g_string_append_printf (s, depth, "Bitrate: %u\n",
gst_discoverer_video_info_get_bitrate (video_info));
- my_g_string_append_printf (s, "Max bitrate: %u\n",
+ my_g_string_append_printf (s, depth, "Max bitrate: %u\n",
gst_discoverer_video_info_get_max_bitrate (video_info));
- my_g_string_append_printf (s, "Tags:\n");
+ my_g_string_append_printf (s, depth, "Tags:\n");
+ tags = gst_discoverer_stream_info_get_tags (info);
+ if (tags) {
+ tmp = gst_structure_to_string ((GstStructure *) tags);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
+ g_free (tmp);
+ } else {
+ my_g_string_append_printf (s, depth, " None\n");
+ }
+ if (verbose)
+ my_g_string_append_printf (s, depth, "\n");
+
+ return g_string_free (s, FALSE);
+}
+
+static gchar *
+gst_stream_subtitle_information_to_string (GstDiscovererStreamInfo * info,
+ gint depth)
+{
+ GstDiscovererSubtitleInfo *subtitle_info;
+ GString *s;
+ gchar *tmp;
+ const gchar *ctmp;
+ int len = 400;
+ const GstTagList *tags;
+ GstCaps *caps;
+
+ g_return_val_if_fail (info != NULL, NULL);
+
+ s = g_string_sized_new (len);
+
+ my_g_string_append_printf (s, depth, "Codec:\n");
+ caps = gst_discoverer_stream_info_get_caps (info);
+ tmp = gst_caps_to_string (caps);
+ gst_caps_unref (caps);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
+ g_free (tmp);
+
+ my_g_string_append_printf (s, depth, "Additional info:\n");
+ if (gst_discoverer_stream_info_get_misc (info)) {
+ tmp = gst_structure_to_string (gst_discoverer_stream_info_get_misc (info));
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
+ g_free (tmp);
+ } else {
+ my_g_string_append_printf (s, depth, " None\n");
+ }
+
+ subtitle_info = (GstDiscovererSubtitleInfo *) info;
+ ctmp = gst_discoverer_subtitle_info_get_language (subtitle_info);
+ my_g_string_append_printf (s, depth, "Language: %s\n",
+ ctmp ? ctmp : "<unknown>");
+
+ my_g_string_append_printf (s, depth, "Tags:\n");
tags = gst_discoverer_stream_info_get_tags (info);
if (tags) {
tmp = gst_structure_to_string ((GstStructure *) tags);
- my_g_string_append_printf (s, " %s\n", tmp);
+ my_g_string_append_printf (s, depth, " %s\n", tmp);
g_free (tmp);
} else {
- my_g_string_append_printf (s, " None\n");
+ my_g_string_append_printf (s, depth, " None\n");
}
if (verbose)
- my_g_string_append_printf (s, "\n");
+ my_g_string_append_printf (s, depth, "\n");
return g_string_free (s, FALSE);
}
desc =
gst_stream_video_information_to_string (info,
GPOINTER_TO_INT (depth) + 1);
+ else if (GST_IS_DISCOVERER_SUBTITLE_INFO (info))
+ desc =
+ gst_stream_subtitle_information_to_string (info,
+ GPOINTER_TO_INT (depth) + 1);
if (desc) {
g_print ("%s", desc);
g_free (desc);
GDir *dir;
gchar *uri, *path;
GstDiscovererInfo *info;
- GstStructure *st = NULL;
if (!gst_uri_is_valid (filename)) {
/* Recurse into directories */
g_print ("Analyzing %s\n", uri);
info = gst_discoverer_discover_uri (dc, uri, &err);
print_info (info, err);
+ if (err)
+ g_error_free (err);
gst_discoverer_info_unref (info);
- if (st)
- gst_structure_free (st);
} else {
gst_discoverer_discover_uri_async (dc, uri);
}
};
GOptionContext *ctx;
+#if !GLIB_CHECK_VERSION (2, 31, 0)
if (!g_thread_supported ())
g_thread_init (NULL);
+#endif
ctx =
g_option_context_new
#ifndef _GST_PLUGINS_BASE__STDINT_H
#define _GST_PLUGINS_BASE__STDINT_H 1
#ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 0.10.34"
-/* generated using gnu compiler gcc (Debian 4.5.2-8) 4.5.2 */
+#define _GENERATED_STDINT_H "gst-plugins-base 0.10.36"
+/* generated using gnu compiler gcc (Debian 4.6.2-12) 4.6.2 */
#define _STDINT_HAVE_STDINT_H 1
#include <stdint.h>
#endif
{GST_BUFTYPE_AC3, "GST_BUFTYPE_AC3", "ac3"},
{GST_BUFTYPE_EAC3, "GST_BUFTYPE_EAC3", "eac3"},
{GST_BUFTYPE_DTS, "GST_BUFTYPE_DTS", "dts"},
+ {GST_BUFTYPE_MPEG2_AAC, "GST_BUFTYPE_MPEG2_AAC", "mpeg2-aac"},
+ {GST_BUFTYPE_MPEG4_AAC, "GST_BUFTYPE_MPEG4_AAC", "mpeg4-aac"},
{0, NULL, NULL}
};
GType g_define_type_id =
{GST_AC3, "GST_AC3", "ac3"},
{GST_EAC3, "GST_EAC3", "eac3"},
{GST_DTS, "GST_DTS", "dts"},
+ {GST_MPEG2_AAC, "GST_MPEG2_AAC", "mpeg2-aac"},
+ {GST_MPEG4_AAC, "GST_MPEG4_AAC", "mpeg4-aac"},
{0, NULL, NULL}
};
GType g_define_type_id = g_enum_register_static ("GstBufferFormat", values);
/* system wide data directory */
#define GST_DATADIR PREFIX "\\share"
+/* Extra platform specific plugin suffix */
+#undef GST_EXTRA_MODULE_SUFFIX
+
/* macro to use to show function name */
#undef GST_FUNCTION
/* Defined if gcov is enabled to force a rebuild due to config.h changing */
#undef GST_GCOV_ENABLED
+/* Defined when registry scanning through fork is unsafe */
+#undef GST_HAVE_UNSAFE_FORK
+
/* plugin install helper script */
#define GST_INSTALL_PLUGINS_HELPER PREFIX "\\libexec\\gst-install-plugins-helper.exe"
#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-13"
+#define GST_PACKAGE_RELEASE_DATETIME "2012-02-20"
/* I know the API is subject to change. */
#undef G_UDEV_API_IS_SUBJECT_TO_CHANGE
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
+/* Define to 1 if you have the <emmintrin.h> header file. */
+#undef HAVE_EMMINTRIN_H
+
/* Define to enable building of experimental plug-ins. */
#undef HAVE_EXPERIMENTAL
/* Use Orc */
#undef HAVE_ORC
+/* Defined if compiling for OSX */
+#undef HAVE_OSX
+
/* Define to enable Pango font rendering (used by pango). */
#undef HAVE_PANGO
/* defined if vorbis_synthesis_restart is present */
#undef HAVE_VORBIS_SYNTHESIS_RESTART
+/* Defined if compiling for Windows */
+#define HAVE_WIN32 1
+
/* Define to 1 if you have the <winsock2.h> header file. */
#define HAVE_WINSOCK2_H 1
/* Define to enable X libraries and plugins (used by ximagesink). */
#undef HAVE_X
+/* Define to 1 if you have the <xmmintrin.h> header file. */
+#undef HAVE_XMMINTRIN_H
+
/* Define to enable X Shared Memory extension. */
#undef HAVE_XSHM
/* Define to enable X11 XVideo extensions (used by xvimagesink). */
#undef HAVE_XVIDEO
+/* Define to enable zlib support for ID3 parsing in libgsttag. */
+#undef HAVE_ZLIB
+
/* the host CPU */
#define HOST_CPU "i686"
#define PACKAGE_NAME "GStreamer Base Plug-ins"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.34"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.36"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gst-plugins-base"
#undef PACKAGE_URL
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.10.34"
+#define PACKAGE_VERSION "0.10.36"
/* directory where plugins are located */
#ifdef _DEBUG
#undef USE_TREMOLO
/* Version number of package */
-#define VERSION "0.10.34"
+#define VERSION "0.10.36"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
/* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES
+
+/* We need at least WinXP SP2 for __stat64 */
+#undef __MSVCRT_VERSION__
+++ /dev/null
-/* Autogenerated config.h created for win32 Visual Studio builds */
-
-/* PREFIX -- specifically added for Windows for easier moving */
-#define PREFIX "C:\\gstreamer"
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* The implementation that should be used for integer audio resampling witll
- be benchmarked at runtime */
-#undef AUDIORESAMPLE_FORMAT_AUTO
-
-/* The float implementation should be used for integer audio resampling */
-#undef AUDIORESAMPLE_FORMAT_FLOAT
-
-/* The int implementation should be used for integer audio resampling */
-#undef AUDIORESAMPLE_FORMAT_INT
-
-/* defined if cdda headers are in a cdda/ directory */
-#undef CDPARANOIA_HEADERS_IN_DIR
-
-/* Default audio sink */
-#define DEFAULT_AUDIOSINK "directsoundsink"
-
-/* Default audio source */
-#undef DEFAULT_AUDIOSRC
-
-/* Default video sink */
-#define DEFAULT_VIDEOSINK "directdrawsink"
-
-/* Default video source */
-#undef DEFAULT_VIDEOSRC
-
-/* Default visualizer */
-#define DEFAULT_VISUALIZER "goom"
-
-/* Disable Orc */
-#undef DISABLE_ORC
-
-/* Define to 1 if translation of program messages to the user's native
- language is requested. */
-#undef ENABLE_NLS
-
-/* gettext package name */
-#define GETTEXT_PACKAGE "NULL"
-
-/* The GIO library directory. */
-#undef GIO_LIBDIR
-
-/* The GIO modules directory. */
-#undef GIO_MODULE_DIR
-
-/* The GnomeVFS modules directory. */
-#undef GNOME_VFS_MODULES_DIR
-
-/* system wide data directory */
-#define GST_DATADIR PREFIX "\\share"
-
-/* macro to use to show function name */
-#undef GST_FUNCTION
-
-/* Defined if gcov is enabled to force a rebuild due to config.h changing */
-#undef GST_GCOV_ENABLED
-
-/* plugin install helper script */
-#define GST_INSTALL_PLUGINS_HELPER PREFIX "\\libexec\\gst-install-plugins-helper.exe"
-
-/* Default errorlevel to use */
-#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR
-
-/* GStreamer license */
-#define GST_LICENSE "LGPL"
-
-/* major/minor version */
-#define GST_MAJORMINOR "0.10"
-
-/* package name in plugins */
-#define GST_PACKAGE_NAME "GStreamer Base Plug-ins source release"
-
-/* package origin */
-#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-13"
-
-/* I know the API is subject to change. */
-#undef G_UDEV_API_IS_SUBJECT_TO_CHANGE
-
-/* Define to enable ALSA (used by alsa). */
-#undef HAVE_ALSA
-
-/* Define to enable CDParanoia (used by cdparanoia). */
-#undef HAVE_CDPARANOIA
-
-/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
- CoreFoundation framework. */
-#undef HAVE_CFLOCALECOPYCURRENT
-
-/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
- the CoreFoundation framework. */
-#undef HAVE_CFPREFERENCESCOPYAPPVALUE
-
-/* Define if the host CPU is an Alpha */
-#undef HAVE_CPU_ALPHA
-
-/* Define if the host CPU is an ARM */
-#undef HAVE_CPU_ARM
-
-/* Define if the host CPU is a CRIS */
-#undef HAVE_CPU_CRIS
-
-/* Define if the host CPU is a CRISv32 */
-#undef HAVE_CPU_CRISV32
-
-/* Define if the host CPU is a HPPA */
-#undef HAVE_CPU_HPPA
-
-/* Define if the host CPU is an x86 */
-#define HAVE_CPU_I386 1
-
-/* Define if the host CPU is a IA64 */
-#undef HAVE_CPU_IA64
-
-/* Define if the host CPU is a M68K */
-#undef HAVE_CPU_M68K
-
-/* Define if the host CPU is a MIPS */
-#undef HAVE_CPU_MIPS
-
-/* Define if the host CPU is a PowerPC */
-#undef HAVE_CPU_PPC
-
-/* Define if the host CPU is a 64 bit PowerPC */
-#undef HAVE_CPU_PPC64
-
-/* Define if the host CPU is a S390 */
-#undef HAVE_CPU_S390
-
-/* Define if the host CPU is a SPARC */
-#undef HAVE_CPU_SPARC
-
-/* Define if the host CPU is a x86_64 */
-#undef HAVE_CPU_X86_64
-
-/* Define if the GNU dcgettext() function is already present or preinstalled.
- */
-#undef HAVE_DCGETTEXT
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to enable building of experimental plug-ins. */
-#undef HAVE_EXPERIMENTAL
-
-/* Define to enable building of plug-ins with external deps. */
-#undef HAVE_EXTERNAL
-
-/* FIONREAD ioctl found in sys/filio.h */
-#undef HAVE_FIONREAD_IN_SYS_FILIO
-
-/* FIONREAD ioctl found in sys/ioclt.h */
-#undef HAVE_FIONREAD_IN_SYS_IOCTL
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#undef HAVE_FSEEKO
-
-/* defined if the compiler implements __func__ */
-#undef HAVE_FUNC
-
-/* defined if the compiler implements __FUNCTION__ */
-#undef HAVE_FUNCTION
-
-/* Define if the GNU gettext() function is already present or preinstalled. */
-#undef HAVE_GETTEXT
-
-/* Define to enable GIO library (used by gio). */
-#undef HAVE_GIO
-
-/* Define to 1 if you have the `gmtime_r' function. */
-#undef HAVE_GMTIME_R
-
-/* Define to enable GNOME VFS (used by gnomevfs). */
-#undef HAVE_GNOME_VFS
-
-/* Define to enable Video 4 Linux (used by video4linux). */
-#undef HAVE_GST_V4L
-
-/* Whether gudev is available for device detection */
-#undef HAVE_GUDEV
-
-/* Define if you have the iconv() function and it works. */
-#undef HAVE_ICONV
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* make use of iso-codes for ISO-639 */
-#undef HAVE_ISO_CODES
-
-/* Define to enable integer vorbis plug-in (used by ivorbisdec). */
-#undef HAVE_IVORBIS
-
-/* Define to 1 if you have the `asound' library (-lasound). */
-#undef HAVE_LIBASOUND
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `resolv' library (-lresolv). */
-#undef HAVE_LIBRESOLV
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define to enable libvisual visualization library (used by libvisual). */
-#undef HAVE_LIBVISUAL
-
-/* Define to 1 if you have the `localtime_r' function. */
-#undef HAVE_LOCALTIME_R
-
-/* Define to 1 if you have the `log2' function. */
-#undef HAVE_LOG2
-
-/* Define if you have C99's lrint function. */
-#undef HAVE_LRINT
-
-/* Define if you have C99's lrintf function. */
-#undef HAVE_LRINTF
-
-/* Define to 1 if you have the <malloc.h> header file. */
-#undef HAVE_MALLOC_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to enable Xiph Ogg library (used by ogg). */
-#undef HAVE_OGG
-
-/* Use Orc */
-#undef HAVE_ORC
-
-/* Define to enable Pango font rendering (used by pango). */
-#undef HAVE_PANGO
-
-/* defined if the compiler implements __PRETTY_FUNCTION__ */
-#undef HAVE_PRETTY_FUNCTION
-
-/* Define to 1 if you have the <process.h> header file. */
-#define HAVE_PROCESS_H 1
-
-/* Define if RDTSC is available */
-#undef HAVE_RDTSC
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/wait.h> header file. */
-#undef HAVE_SYS_WAIT_H
-
-/* Define to enable Xiph Theora video codec (used by theora). */
-#undef HAVE_THEORA
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define if valgrind should be used */
-#undef HAVE_VALGRIND
-
-/* Define to enable Xiph Vorbis audio codec (used by vorbis). */
-#undef HAVE_VORBIS
-
-/* defined if vorbis_synthesis_restart is present */
-#undef HAVE_VORBIS_SYNTHESIS_RESTART
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#define HAVE_WINSOCK2_H 1
-
-/* Define to enable X libraries and plugins (used by ximagesink). */
-#undef HAVE_X
-
-/* Define to enable X Shared Memory extension. */
-#undef HAVE_XSHM
-
-/* Define to enable X11 XVideo extensions (used by xvimagesink). */
-#undef HAVE_XVIDEO
-
-/* the host CPU */
-#define HOST_CPU "i686"
-
-/* prefix */
-#undef ISO_CODES_PREFIX
-
-/* */
-#undef ISO_CODES_VERSION
-
-/* directory in which the detected libvisual's plugins are located */
-#undef LIBVISUAL_PLUGINSBASEDIR
-
-/* gettext locale dir */
-#define LOCALEDIR PREFIX "\\share\\locale"
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#undef LT_OBJDIR
-
-/* Define if you have no native hstrerror() function. */
-#undef NO_HSTRERROR
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-#undef NO_MINUS_C_MINUS_O
-
-/* Name of package */
-#define PACKAGE "gst-plugins-base"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "GStreamer Base Plug-ins"
-
-/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.34"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "gst-plugins-base"
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.10.34"
-
-/* directory where plugins are located */
-#ifdef _DEBUG
-# define PLUGINDIR PREFIX "\\debug\\lib\\gstreamer-0.10"
-#else
-# define PLUGINDIR PREFIX "\\lib\\gstreamer-0.10"
-#endif
-
-/* The size of `char', as computed by sizeof. */
-#undef SIZEOF_CHAR
-
-/* The size of `int', as computed by sizeof. */
-#undef SIZEOF_INT
-
-/* The size of `long', as computed by sizeof. */
-#undef SIZEOF_LONG
-
-/* The size of `short', as computed by sizeof. */
-#undef SIZEOF_SHORT
-
-/* The size of `void*', as computed by sizeof. */
-#undef SIZEOF_VOIDP
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* "Define if building for android" */
-#undef USE_TREMOLO
-
-/* Version number of package */
-#define VERSION "0.10.34"
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-# undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define to 1 if the X Window System is missing or not being used. */
-#undef X_DISPLAY_MISSING
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-#undef _LARGEFILE_SOURCE
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
"x-server-ip-address"},
{GST_RTSP_HDR_X_SESSIONCOOKIE, "GST_RTSP_HDR_X_SESSIONCOOKIE",
"x-sessioncookie"},
+ {GST_RTSP_HDR_RTCP_INTERVAL, "GST_RTSP_HDR_RTCP_INTERVAL",
+ "rtcp-interval"},
{GST_RTSP_HDR_LAST, "GST_RTSP_HDR_LAST", "last"},
{0, NULL, NULL}
};
EXPORTS
+ _gst_audio_decoder_error
gst_audio_buffer_clip
gst_audio_channel_position_get_type
gst_audio_check_channel_positions
gst_audio_clock_new
gst_audio_clock_new_full
gst_audio_clock_reset
+ gst_audio_decoder_finish_frame
+ gst_audio_decoder_get_audio_info
+ gst_audio_decoder_get_byte_time
+ gst_audio_decoder_get_delay
+ gst_audio_decoder_get_drainable
+ gst_audio_decoder_get_latency
+ gst_audio_decoder_get_max_errors
+ gst_audio_decoder_get_min_latency
+ gst_audio_decoder_get_needs_format
+ gst_audio_decoder_get_parse_state
+ gst_audio_decoder_get_plc
+ gst_audio_decoder_get_plc_aware
+ gst_audio_decoder_get_tolerance
+ gst_audio_decoder_get_type
+ gst_audio_decoder_set_byte_time
+ gst_audio_decoder_set_drainable
+ gst_audio_decoder_set_latency
+ gst_audio_decoder_set_max_errors
+ gst_audio_decoder_set_min_latency
+ gst_audio_decoder_set_needs_format
+ gst_audio_decoder_set_plc
+ gst_audio_decoder_set_plc_aware
+ gst_audio_decoder_set_tolerance
gst_audio_default_registry_mixer_filter
gst_audio_duration_from_pad_buffer
+ gst_audio_encoder_finish_frame
+ gst_audio_encoder_get_audio_info
+ gst_audio_encoder_get_drainable
+ gst_audio_encoder_get_frame_max
+ gst_audio_encoder_get_frame_samples_max
+ gst_audio_encoder_get_frame_samples_min
+ gst_audio_encoder_get_hard_min
+ gst_audio_encoder_get_hard_resync
+ gst_audio_encoder_get_latency
+ gst_audio_encoder_get_lookahead
+ gst_audio_encoder_get_mark_granule
+ gst_audio_encoder_get_perfect_timestamp
+ gst_audio_encoder_get_tolerance
+ gst_audio_encoder_get_type
+ gst_audio_encoder_merge_tags
+ gst_audio_encoder_proxy_getcaps
+ gst_audio_encoder_set_drainable
+ gst_audio_encoder_set_frame_max
+ gst_audio_encoder_set_frame_samples_max
+ gst_audio_encoder_set_frame_samples_min
+ gst_audio_encoder_set_hard_min
+ gst_audio_encoder_set_hard_resync
+ gst_audio_encoder_set_latency
+ gst_audio_encoder_set_lookahead
+ gst_audio_encoder_set_mark_granule
+ gst_audio_encoder_set_perfect_timestamp
+ gst_audio_encoder_set_tolerance
gst_audio_filter_class_add_pad_templates
gst_audio_filter_get_type
gst_audio_fixate_channel_positions
gst_audio_frame_byte_size
gst_audio_frame_length
gst_audio_get_channel_positions
+ gst_audio_iec61937_frame_size
+ gst_audio_iec61937_payload
+ gst_audio_info_clear
+ gst_audio_info_convert
+ gst_audio_info_copy
+ gst_audio_info_free
+ gst_audio_info_from_caps
+ gst_audio_info_init
+ gst_audio_info_to_caps
gst_audio_is_buffer_framed
gst_audio_set_caps_channel_positions_list
gst_audio_set_channel_positions
gst_audio_src_get_type
gst_audio_structure_set_int
gst_base_audio_sink_create_ringbuffer
+ gst_base_audio_sink_get_alignment_threshold
+ gst_base_audio_sink_get_discont_wait
gst_base_audio_sink_get_drift_tolerance
gst_base_audio_sink_get_provide_clock
gst_base_audio_sink_get_slave_method
gst_base_audio_sink_get_type
+ gst_base_audio_sink_set_alignment_threshold
+ gst_base_audio_sink_set_discont_wait
gst_base_audio_sink_set_drift_tolerance
gst_base_audio_sink_set_provide_clock
gst_base_audio_sink_set_slave_method
gst_codec_utils_aac_get_sample_rate_from_index
gst_codec_utils_h264_caps_set_level_and_profile
gst_codec_utils_h264_get_level
+ gst_codec_utils_h264_get_level_idc
gst_codec_utils_h264_get_profile
gst_codec_utils_mpeg4video_caps_set_level_and_profile
gst_codec_utils_mpeg4video_get_level
gst_discoverer_audio_info_get_bitrate
gst_discoverer_audio_info_get_channels
gst_discoverer_audio_info_get_depth
+ gst_discoverer_audio_info_get_language
gst_discoverer_audio_info_get_max_bitrate
gst_discoverer_audio_info_get_sample_rate
gst_discoverer_audio_info_get_type
gst_discoverer_info_get_stream_info
gst_discoverer_info_get_stream_list
gst_discoverer_info_get_streams
+ gst_discoverer_info_get_subtitle_streams
gst_discoverer_info_get_tags
gst_discoverer_info_get_type
gst_discoverer_info_get_uri
gst_discoverer_stream_info_get_tags
gst_discoverer_stream_info_get_type
gst_discoverer_stream_info_list_free
+ gst_discoverer_subtitle_info_get_language
+ gst_discoverer_subtitle_info_get_type
gst_discoverer_video_info_get_bitrate
gst_discoverer_video_info_get_depth
gst_discoverer_video_info_get_framerate_denom
gst_encoding_list_all_targets
gst_encoding_list_available_categories
gst_encoding_profile_find
+ gst_encoding_profile_from_discoverer
gst_encoding_profile_get_description
gst_encoding_profile_get_format
gst_encoding_profile_get_input_caps
gst_tag_from_id3_tag
gst_tag_from_id3_user_tag
gst_tag_from_vorbis_tag
+ gst_tag_get_id3v2_tag_size
gst_tag_get_language_code_iso_639_1
gst_tag_get_language_code_iso_639_2B
gst_tag_get_language_code_iso_639_2T
gst_tag_get_language_codes
gst_tag_get_language_name
+ gst_tag_get_license_description
+ gst_tag_get_license_flags
+ gst_tag_get_license_jurisdiction
+ gst_tag_get_license_nick
+ gst_tag_get_license_title
+ gst_tag_get_license_version
+ gst_tag_get_licenses
gst_tag_id3_genre_count
gst_tag_id3_genre_get
gst_tag_image_data_to_image_buffer
gst_tag_image_type_get_type
+ gst_tag_license_flags_get_type
gst_tag_list_add_id3_image
gst_tag_list_from_exif_buffer
gst_tag_list_from_exif_buffer_with_tiff_header
+ gst_tag_list_from_id3v2_tag
gst_tag_list_from_vorbiscomment_buffer
gst_tag_list_from_xmp_buffer
gst_tag_list_new_from_id3v1
gst_tag_list_to_vorbiscomment_buffer
gst_tag_list_to_xmp_buffer
gst_tag_list_to_xmp_buffer_full
+ gst_tag_mux_get_type
gst_tag_parse_extended_comment
gst_tag_register_musicbrainz_tags
gst_tag_to_id3_tag
EXPORTS
+ gst_video_buffer_get_overlay_composition
+ gst_video_buffer_set_overlay_composition
gst_video_calculate_display_ratio
gst_video_convert_frame
gst_video_convert_frame_async
+ gst_video_event_is_force_key_unit
+ gst_video_event_new_downstream_force_key_unit
gst_video_event_new_still_frame
+ gst_video_event_new_upstream_force_key_unit
+ gst_video_event_parse_downstream_force_key_unit
gst_video_event_parse_still_frame
+ gst_video_event_parse_upstream_force_key_unit
gst_video_filter_get_type
gst_video_format_convert
gst_video_format_from_fourcc
gst_video_format_to_fourcc
gst_video_frame_rate
gst_video_get_size
+ gst_video_get_size_from_caps
+ gst_video_overlay_composition_add_rectangle
+ gst_video_overlay_composition_blend
+ gst_video_overlay_composition_copy
+ gst_video_overlay_composition_get_rectangle
+ gst_video_overlay_composition_get_seqnum
+ gst_video_overlay_composition_get_type
+ gst_video_overlay_composition_make_writable
+ gst_video_overlay_composition_n_rectangles
+ gst_video_overlay_composition_new
+ gst_video_overlay_rectangle_copy
+ gst_video_overlay_rectangle_get_pixels_argb
+ gst_video_overlay_rectangle_get_pixels_unscaled_argb
+ gst_video_overlay_rectangle_get_render_rectangle
+ gst_video_overlay_rectangle_get_seqnum
+ gst_video_overlay_rectangle_get_type
+ gst_video_overlay_rectangle_new_argb
+ gst_video_overlay_rectangle_set_render_rectangle
gst_video_parse_caps_chroma_site
gst_video_parse_caps_color_matrix
gst_video_parse_caps_framerate