aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-06-08 09:16:25 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-06-08 09:16:25 +0200
commitbed72dff4210fac83b878ac3b0f3ecb78d30d1d2 (patch)
tree9dd932b51f35262b1051648bb79e174f72d275da
parent50f12103f5a136f45bd274ac6a99006a3db5ca4d (diff)
Imported Upstream version 0.11.92upstream/0.11.92
-rw-r--r--ChangeLog724
-rw-r--r--Makefile.in9
-rw-r--r--NEWS9
-rw-r--r--RELEASE30
-rw-r--r--common/Makefile.in9
-rwxr-xr-xcommon/gstdoc-scangobj30
-rw-r--r--common/m4/Makefile.am1
-rw-r--r--common/m4/Makefile.in10
-rw-r--r--common/m4/as-compiler-flag.m432
-rw-r--r--common/m4/as-objc.m456
-rw-r--r--common/m4/gst-arch.m440
-rw-r--r--common/m4/gst-args.m48
-rw-r--r--common/m4/gst-error.m485
-rw-r--r--common/m4/gtk-doc.m433
-rw-r--r--config.h.in31
-rwxr-xr-xconfigure424
-rw-r--r--configure.ac2
-rw-r--r--docs/Makefile.in9
-rw-r--r--docs/design/Makefile.in9
-rw-r--r--docs/design/part-negotiation.txt16
-rw-r--r--docs/design/part-segments.txt2
-rw-r--r--docs/faq/Makefile.in9
-rw-r--r--docs/gst/Makefile.in9
-rw-r--r--docs/gst/gstreamer-sections.txt10
-rw-r--r--docs/gst/html/GstBin.html2
-rw-r--r--docs/gst/html/GstElement.html18
-rw-r--r--docs/gst/html/GstElementFactory.html34
-rw-r--r--docs/gst/html/GstObject.html2
-rw-r--r--docs/gst/html/GstPad.html22
-rw-r--r--docs/gst/html/GstPadTemplate.html2
-rw-r--r--docs/gst/html/GstPluginFeature.html30
-rw-r--r--docs/gst/html/GstTagSetter.html8
-rw-r--r--docs/gst/html/GstTypeFindFactory.html2
-rw-r--r--docs/gst/html/api-index-full.html46
-rw-r--r--docs/gst/html/gst-building.html4
-rw-r--r--docs/gst/html/gst-running.html4
-rw-r--r--docs/gst/html/gstreamer-Gst.html4
-rw-r--r--docs/gst/html/gstreamer-GstBuffer.html4
-rw-r--r--docs/gst/html/gstreamer-GstBufferPool.html2
-rw-r--r--docs/gst/html/gstreamer-GstCaps.html2
-rw-r--r--docs/gst/html/gstreamer-GstEvent.html44
-rw-r--r--docs/gst/html/gstreamer-GstGError.html2
-rw-r--r--docs/gst/html/gstreamer-GstIterator.html2
-rw-r--r--docs/gst/html/gstreamer-GstMessage.html14
-rw-r--r--docs/gst/html/gstreamer-GstQuery.html9
-rw-r--r--docs/gst/html/gstreamer-GstStructure.html5
-rw-r--r--docs/gst/html/gstreamer-GstTagList.html515
-rw-r--r--docs/gst/html/gstreamer-GstToc.html31
-rw-r--r--docs/gst/html/gstreamer.devhelp223
-rw-r--r--docs/gst/html/index.html2
-rw-r--r--docs/gst/html/index.sgml11
-rw-r--r--docs/libs/Makefile.in9
-rw-r--r--docs/libs/html/GstBaseSink.html16
-rw-r--r--docs/libs/html/GstBaseSrc.html2
-rw-r--r--docs/libs/html/GstBaseTransform.html4
-rw-r--r--docs/libs/html/gstreamer-libs.devhelp26
-rw-r--r--docs/libs/html/index.html2
-rw-r--r--docs/manual/Makefile.in9
-rw-r--r--docs/plugins/Makefile.in9
-rw-r--r--docs/plugins/gstreamer-plugins.args22
-rw-r--r--docs/plugins/html/ch01.html2
-rw-r--r--docs/plugins/html/ch02.html2
-rw-r--r--docs/plugins/html/gstreamer-plugins-capsfilter.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-fakesink.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-fakesrc.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-fdsink.html4
-rw-r--r--docs/plugins/html/gstreamer-plugins-fdsrc.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-filesink.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-filesrc.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-funnel.html4
-rw-r--r--docs/plugins/html/gstreamer-plugins-identity.html4
-rw-r--r--docs/plugins/html/gstreamer-plugins-input-selector.html48
-rw-r--r--docs/plugins/html/gstreamer-plugins-multiqueue.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-output-selector.html4
-rw-r--r--docs/plugins/html/gstreamer-plugins-plugin-coreelements.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-queue.html4
-rw-r--r--docs/plugins/html/gstreamer-plugins-queue2.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-tee.html6
-rw-r--r--docs/plugins/html/gstreamer-plugins-typefind.html4
-rw-r--r--docs/plugins/html/gstreamer-plugins-valve.html4
-rw-r--r--docs/plugins/html/gstreamer-plugins.devhelp286
-rw-r--r--docs/plugins/html/index.html2
-rw-r--r--docs/plugins/html/index.sgml2
-rw-r--r--docs/plugins/inspect/plugin-coreelements.xml2
-rw-r--r--docs/pwg/Makefile.in9
-rw-r--r--docs/slides/Makefile.in9
-rw-r--r--docs/xsl/Makefile.in9
-rw-r--r--gst/Makefile.in9
-rw-r--r--gst/gst.c3
-rw-r--r--gst/gst_private.h47
-rw-r--r--gst/gstbin.c94
-rw-r--r--gst/gstcaps.c2
-rw-r--r--gst/gstcompat.h2
-rw-r--r--gst/gstdebugutils.c2
-rw-r--r--gst/gstelement.c48
-rw-r--r--gst/gstelementfactory.c34
-rw-r--r--gst/gstelementfactory.h41
-rw-r--r--gst/gstevent.c36
-rw-r--r--gst/gstevent.h6
-rw-r--r--gst/gstmessage.c24
-rw-r--r--gst/gstpad.c139
-rw-r--r--gst/gstpad.h20
-rw-r--r--gst/gstpluginfeature.c20
-rw-r--r--gst/gstpluginfeature.h33
-rw-r--r--gst/gstquark.c6
-rw-r--r--gst/gstquark.h14
-rw-r--r--gst/gstquery.c6
-rw-r--r--gst/gstregistry.c2
-rw-r--r--gst/gststructure.c2
-rw-r--r--gst/gsttaglist.c446
-rw-r--r--gst/gsttaglist.h123
-rw-r--r--gst/gsttagsetter.c4
-rw-r--r--gst/gsttoc.c271
-rw-r--r--gst/gsttoc.h10
-rw-r--r--gst/gsturi.c3
-rw-r--r--gst/gstutils.c7
-rw-r--r--gst/parse/Makefile.in9
-rw-r--r--gstreamer.doap10
-rw-r--r--gstreamer.spec2
-rw-r--r--libs/Makefile.in9
-rw-r--r--libs/gst/Makefile.in9
-rw-r--r--libs/gst/base/Makefile.in9
-rw-r--r--libs/gst/base/gstadapter.c21
-rw-r--r--libs/gst/base/gstbaseparse.c9
-rw-r--r--libs/gst/base/gstbasesink.c57
-rw-r--r--libs/gst/base/gstbasesink.h12
-rw-r--r--libs/gst/base/gstbasesrc.c87
-rw-r--r--libs/gst/base/gsttypefindhelper.c3
-rw-r--r--libs/gst/check/Makefile.in9
-rw-r--r--libs/gst/check/gstcheck.c4
-rw-r--r--libs/gst/check/libcheck/Makefile.in9
-rw-r--r--libs/gst/controller/Makefile.in9
-rw-r--r--libs/gst/helpers/Makefile.in9
-rw-r--r--libs/gst/net/Makefile.in9
-rw-r--r--m4/Makefile.in9
-rw-r--r--pkgconfig/Makefile.in9
-rw-r--r--plugins/Makefile.in9
-rw-r--r--plugins/elements/Makefile.in9
-rw-r--r--plugins/elements/gstfakesrc.c4
-rw-r--r--plugins/elements/gstfakesrc.h3
-rw-r--r--plugins/elements/gstfilesrc.c6
-rw-r--r--plugins/elements/gstfunnel.c62
-rw-r--r--plugins/elements/gstinputselector.c679
-rw-r--r--plugins/elements/gstinputselector.h14
-rw-r--r--plugins/elements/gstqueue2.c31
-rw-r--r--plugins/elements/gsttypefindelement.c6
-rw-r--r--po/af.gmobin15346 -> 15346 bytes
-rw-r--r--po/af.po11
-rw-r--r--po/az.gmobin1716 -> 1716 bytes
-rw-r--r--po/az.po10
-rw-r--r--po/be.gmobin5090 -> 5090 bytes
-rw-r--r--po/be.po10
-rw-r--r--po/bg.gmobin44078 -> 44078 bytes
-rw-r--r--po/bg.po12
-rw-r--r--po/ca.gmobin34417 -> 34417 bytes
-rw-r--r--po/ca.po14
-rw-r--r--po/cs.gmobin33872 -> 33872 bytes
-rw-r--r--po/cs.po14
-rw-r--r--po/da.gmobin32509 -> 32509 bytes
-rw-r--r--po/da.po13
-rw-r--r--po/de.gmobin34244 -> 34244 bytes
-rw-r--r--po/de.po13
-rw-r--r--po/el.gmobin44854 -> 44854 bytes
-rw-r--r--po/el.po13
-rw-r--r--po/en_GB.gmobin11610 -> 11610 bytes
-rw-r--r--po/en_GB.po10
-rw-r--r--po/eo.gmobin4341 -> 4341 bytes
-rw-r--r--po/eo.po10
-rw-r--r--po/es.gmobin34427 -> 34427 bytes
-rw-r--r--po/es.po12
-rw-r--r--po/eu.gmobin30078 -> 30078 bytes
-rw-r--r--po/eu.po12
-rw-r--r--po/fi.gmobin32937 -> 32937 bytes
-rw-r--r--po/fi.po14
-rw-r--r--po/fr.gmobin34566 -> 34566 bytes
-rw-r--r--po/fr.po12
-rw-r--r--po/gl.gmobin34182 -> 34182 bytes
-rw-r--r--po/gl.po12
-rw-r--r--po/gstreamer-1.0.pot408
-rw-r--r--po/hu.gmobin33909 -> 33909 bytes
-rw-r--r--po/hu.po12
-rw-r--r--po/id.gmobin32234 -> 32234 bytes
-rw-r--r--po/id.po12
-rw-r--r--po/it.gmobin34112 -> 34112 bytes
-rw-r--r--po/it.po12
-rw-r--r--po/ja.gmobin14247 -> 14247 bytes
-rw-r--r--po/ja.po11
-rw-r--r--po/lt.gmobin31890 -> 31890 bytes
-rw-r--r--po/lt.po12
-rw-r--r--po/nb.gmobin9914 -> 9914 bytes
-rw-r--r--po/nb.po10
-rw-r--r--po/nl.gmobin33299 -> 33299 bytes
-rw-r--r--po/nl.po12
-rw-r--r--po/pl.gmobin33655 -> 33655 bytes
-rw-r--r--po/pl.po12
-rw-r--r--po/pt_BR.gmobin33883 -> 33883 bytes
-rw-r--r--po/pt_BR.po14
-rw-r--r--po/ro.gmobin33314 -> 33314 bytes
-rw-r--r--po/ro.po12
-rw-r--r--po/ru.gmobin43488 -> 43488 bytes
-rw-r--r--po/ru.po12
-rw-r--r--po/rw.gmobin689 -> 689 bytes
-rw-r--r--po/rw.po10
-rw-r--r--po/sk.gmobin33512 -> 33512 bytes
-rw-r--r--po/sk.po12
-rw-r--r--po/sl.gmobin33246 -> 33246 bytes
-rw-r--r--po/sl.po12
-rw-r--r--po/sq.gmobin12764 -> 12764 bytes
-rw-r--r--po/sq.po10
-rw-r--r--po/sr.gmobin42963 -> 42963 bytes
-rw-r--r--po/sr.po12
-rw-r--r--po/sv.gmobin32824 -> 32824 bytes
-rw-r--r--po/sv.po12
-rw-r--r--po/tr.gmobin12142 -> 12142 bytes
-rw-r--r--po/tr.po10
-rw-r--r--po/uk.gmobin43708 -> 43708 bytes
-rw-r--r--po/uk.po12
-rw-r--r--po/vi.gmobin35093 -> 35093 bytes
-rw-r--r--po/vi.po14
-rw-r--r--po/zh_CN.gmobin25668 -> 25668 bytes
-rw-r--r--po/zh_CN.po12
-rw-r--r--po/zh_TW.gmobin7316 -> 7316 bytes
-rw-r--r--po/zh_TW.po10
-rw-r--r--tests/Makefile.in9
-rw-r--r--tests/benchmarks/Makefile.in9
-rw-r--r--tests/check/Makefile.in9
-rw-r--r--tests/check/elements/funnel.c86
-rw-r--r--tests/check/elements/valve.c13
-rw-r--r--tests/check/gst/gstbin.c113
-rw-r--r--tests/check/gst/gstelementfactory.c1
-rw-r--r--tests/check/gst/gstevent.c2
-rw-r--r--tests/check/gst/gstmessage.c2
-rw-r--r--tests/check/gst/gstplugin.c8
-rw-r--r--tests/check/gst/gsttag.c107
-rw-r--r--tests/check/gst/gsttagsetter.c16
-rw-r--r--tests/check/gst/gstutils.c3
-rw-r--r--tests/examples/Makefile.in9
-rw-r--r--tests/examples/adapter/Makefile.in9
-rw-r--r--tests/examples/controller/Makefile.in9
-rw-r--r--tests/examples/helloworld/Makefile.in9
-rw-r--r--tests/examples/helloworld/helloworld.c5
-rw-r--r--tests/examples/launch/Makefile.in9
-rw-r--r--tests/examples/manual/Makefile.in9
-rw-r--r--tests/examples/metadata/Makefile.in9
-rw-r--r--tests/examples/metadata/read-metadata.c4
-rw-r--r--tests/examples/queue/Makefile.in9
-rw-r--r--tests/examples/stepping/Makefile.in9
-rw-r--r--tests/examples/streams/Makefile.in9
-rw-r--r--tests/examples/typefind/Makefile.in9
-rw-r--r--tests/misc/Makefile.in9
-rw-r--r--tools/Makefile.in9
-rw-r--r--tools/gst-inspect.c61
-rw-r--r--tools/gst-launch.c47
-rw-r--r--win32/common/config.h39
-rw-r--r--win32/common/gstenumtypes.c1
-rw-r--r--win32/common/libgstreamer.def9
256 files changed, 5097 insertions, 1781 deletions
diff --git a/ChangeLog b/ChangeLog
index 14be091..01605f3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,729 @@
+=== release 0.11.92 ===
+
+2012-06-07 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ releasing 0.11.92, "High Hopes"
+
+2012-06-06 18:11:13 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * gst/gstregistry.c:
+ registry: We name the registry after the target cpu
+ And not the host cpu
+ Conflicts:
+ gst/gstregistry.c
+
+2012-06-06 18:18:18 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From 1fab359 to 03a0e57
+
+2012-06-06 15:45:11 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tests/check/gst/gsttoc.c:
+ tests: fix unit test after event change
+ Someone forgot to run make check before pushing...
+
+2012-06-06 11:06:32 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * libs/gst/base/gstadapter.c:
+ gstadapter: Align the comment description with public api instead of internal one.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677536
+
+2012-06-06 15:29:49 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstelement.c:
+ element: fix pad cleanup in dispose
+ In the dispose handler we first need to release all the request pads and then
+ remove the remaining pads. This is because it is possible that releasing the
+ request pad might also cleanly remove some of the other dynamic pads, like
+ what rtpsession does.
+ https://bugzilla.gnome.org/show_bug.cgi?id=677436
+
+2012-06-06 14:14:31 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/gstevent.c:
+ * gst/gstevent.h:
+ event: Don't make the TOC event a multi-sticky event
+ Elements are supposed to merge upstream events.
+
+2009-10-13 17:24:34 +0200 Havard Graff <havard.graff@tandberg.com>
+
+ * gst/gstpad.c:
+ Make sure that unlinked pads do not cause a return false on latency events.
+ Context: Latency configuration should not be
+ messed up because of not-linked pads. In general,
+ one return FALSE on latency distribution causes
+ the "overall" pipeline latency configuration to
+ fail. This shows up as noise in logs (warning).
+ Conflicts:
+ gst/gstpad.c
+
+2012-06-06 12:52:09 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstevent.c:
+ * gst/gstevent.h:
+ * libs/gst/base/gstbaseparse.c:
+ * tests/check/gst/gstevent.c:
+ * tests/check/gst/gsttoc.c:
+ * tests/check/gst/gstutils.c:
+ event: add name to sticky_multi events
+ The name of the event is used to store multiple sticky events of a certain type
+ on a pad.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676859
+
+2012-06-06 09:59:55 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * docs/design/part-negotiation.txt:
+ design: Also mention that the order of the filter caps is important
+
+2012-06-06 09:15:04 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstquery.c:
+ query: improve docs
+
+2012-06-06 09:13:11 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: only serialized events can't pass after EOS
+ Only serialized events can't be sent on pads that are EOS. Otherwise a seek
+ event would be refused as well.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677520
+
+2012-06-05 14:38:25 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * docs/design/part-negotiation.txt:
+ docs: talk about the filter caps
+
+2012-06-02 16:44:59 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/gst/gsttag.c:
+ tests: add unit test for tag list writability
+
+2012-06-02 16:38:35 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gstmessage.c:
+ * tests/check/gst/gstmessage.c:
+ * tests/check/gst/gsttag.c:
+ * tests/check/gst/gsttagsetter.c:
+ * tests/examples/metadata/read-metadata.c:
+ gst_tag_list_free -> gst_tag_list_unref
+
+2012-06-02 16:29:45 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/random/porting-to-0.11.txt:
+ docs: expand taglist section in porting-to-0.11 docs a bit
+
+2012-06-05 11:28:38 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * docs/design/part-negotiation.txt:
+ docs: update negotiation docs
+ Mention that the acceptcaps query does not have to be recursive
+
+2012-06-05 09:40:14 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * plugins/elements/gstqueue2.c:
+ queue2: remove obsolete caps code
+
+2012-06-05 09:39:41 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstutils.c:
+ utils: improve debug
+
+2012-06-05 09:21:10 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tests/check/gst/gstutils.c:
+ tests: fix unit test
+ Before we can change the caps on a sinkpad with fixed caps we need to unfix the
+ pad caps.
+
+2012-06-05 09:10:05 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: don't pause task on EOS
+ Elements should not rely on core to pause tasks on EOS.
+
+2012-06-05 09:00:01 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: fix event type check
+
+2012-06-04 16:19:26 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: fix 'res' may be used uninitialized in this function
+
+2012-06-04 13:00:53 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/funnel.c:
+ funnel: Fix unit test
+
+2012-06-04 12:57:59 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * tests/check/elements/valve.c:
+ valve: Fix unit test
+
+2012-06-04 11:46:42 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/gstpad.c:
+ * gst/gstpad.h:
+ pad: Don't accept any buffers or events after EOS
+
+2012-06-04 11:13:02 +0200 Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+ * libs/gst/base/gstbaseparse.c:
+ baseparse: also perform state processing upon non-OK return
+ ... since processing might still continue (if e.g. NOT_LINKED)
+ and then proper state (e.g. offset) needs to be maintained
+ (e.g. to arrange for a new frame setup).
+
+2012-06-04 11:25:47 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: Always return errors for EOS events immediately
+ For non-EOS events things will error out later during data
+ flow but after EOS events no data flow is happening.
+ See bug #677340.
+
+2012-06-04 09:27:35 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: Only forward caps events to a pad if it accepts the caps
+ Fixes bug #677335.
+
+2012-06-02 20:01:01 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/gstpad.c:
+ Revert "pad: Return FALSE if pushing of sticky events failed"
+ This reverts commit 0f924b922c712059d7752fc15b832551745ff27e.
+ Sticky events should always return TRUE when pushing and will
+ only cause failures during data flow later.
+
+2012-06-02 16:18:46 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: fix variable-set-but-not-used compiler warning
+
+2012-06-02 16:55:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: If pushing a sticky event failed, make sure to at least push any pending EOS events
+ Otherwise a pipeline where one sticky event fails to be sent will
+ never forward EOS events downstream. This can cause pipelines to
+ wait forever for EOS on errors.
+
+2012-06-02 16:02:07 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * gst/gstpad.c:
+ pad: Return FALSE if pushing of sticky events failed
+ Instead of just ignoring failure of pushing sticky events and
+ returning TRUE as if everything is fine.
+
+2012-06-01 16:34:16 +0200 Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
+
+ * plugins/elements/gstinputselector.c:
+ inputselector: Correctly get current running time when syncing to the segment information
+ Fixes bug #677263.
+
+2012-06-01 10:28:30 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From f1b5a96 to 1fab359
+
+2012-05-25 22:58:57 -0500 Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+ * tests/check/elements/funnel.c:
+ tests: Add funnel test to cover EOS event handling
+ Ported from f3b2dd6f in the 0.10 branch
+
+2012-05-25 22:52:33 -0500 Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+ * plugins/elements/gstfunnel.c:
+ funnel: Only emit EOS event if all sinkpads have received one
+ If multiple sources are plugged into the funnel and one of the
+ sources emits an EOS, that event is propogated through the funnel
+ even though other sources connected to the funnel may still be
+ pushing data. This patch waits to send an EOS event until the
+ funnel has received an EOS event on each sinkpad.
+ Ported from d397ea97 in 0.10 branch.
+
+2012-05-29 19:24:25 -0500 Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+ * tests/check/elements/funnel.c:
+ tests: Fix invalid read when releasing request pads in funnel tests
+
+2012-05-29 19:23:07 -0500 Mike Ruprecht <mike.ruprecht@collabora.co.uk>
+
+ * plugins/elements/gstfunnel.c:
+ funnel: Fix buffer leak
+
+2012-05-31 17:45:29 +0200 Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
+
+ * plugins/elements/gstinputselector.c:
+ inputselector: Don't try to sync on the segment if it has no TIME format
+ ...and wait until it is actually configured and has a format before
+ trying to sync.
+
+2012-05-31 17:03:54 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * plugins/elements/gstinputselector.c:
+ inputselector: No need to broadcast the signal in flush-stop
+ Everything stopped at this point already.
+ Conflicts:
+ plugins/elements/gstinputselector.c
+
+2012-05-31 13:07:49 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From 92b7266 to f1b5a96
+
+2012-05-31 10:10:41 +0100 Bastien Nocera <hadess@hadess.net>
+
+ * plugins/elements/gstqueue2.c:
+ queue2: Fix property name in the docs
+ temp-template, not temp-tmpl
+ https://bugzilla.gnome.org/show_bug.cgi?id=677170
+
+2012-05-28 14:29:00 -0300 Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>
+
+ * plugins/elements/gstinputselector.c:
+ * plugins/elements/gstinputselector.h:
+ inputselector: Properly sync when changing streams
+ This adds properties to use the clock time for deciding when
+ to drop buffers for inactive pads and a property to buffer all
+ not rendered buffers for the active pad to allow pad switching
+ without losing any buffers at all.
+ Conflicts:
+ plugins/elements/gstinputselector.c
+
+2012-05-30 12:44:56 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From ec1c4a8 to 92b7266
+
+2012-05-30 11:18:39 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From 3429ba6 to ec1c4a8
+
+2012-05-29 08:48:36 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gsttaglist.c:
+ taglist: add guards to make sure taglist is writable when modifying it
+ Now that taglists are refcounted we need to check if they're
+ writable before modifying them.
+
+2012-05-28 23:54:10 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gsttaglist.c:
+ * gst/gsttaglist.h:
+ * win32/common/libgstreamer.def:
+ taglist: avoid unnecessary string copying when registering tags
+ Add gst_tag_register_static() - no need to copy all those
+ string constants, whether translated or not.
+ API: gst_tag_register_static()
+
+2012-05-28 00:08:56 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * libs/gst/check/gstcheck.c:
+ check: check for GLib-GIO criticals as well
+
+2012-05-28 00:08:18 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gsttagsetter.c:
+ * gst/gsttoc.c:
+ * plugins/elements/gstinputselector.c:
+ * tools/gst-launch.c:
+ gst_tag_list_free() -> gst_tag_list_unref()
+
+2012-05-27 23:58:27 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/gst/gstreamer-sections.txt:
+ * docs/random/porting-to-0.11.txt:
+ * gst/gstcompat.h:
+ * gst/gsttaglist.c:
+ * gst/gsttaglist.h:
+ * tests/check/gst/gsttag.c:
+ * win32/common/libgstreamer.def:
+ taglist: make GstTagList a GstMiniObject
+ Which adds refcounting support, and other things.
+
+2012-05-27 20:31:30 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gstcaps.c:
+ caps: log freeing of caps at same log level as creation, i.e. TRACE
+
+2012-05-26 11:37:49 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gstevent.c:
+ * gst/gstmessage.c:
+ * gst/gstquark.c:
+ * gst/gstquark.h:
+ message, event: update for tag lists not being structures any more
+
+2012-05-21 00:31:29 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gsttaglist.c:
+ * gst/gsttaglist.h:
+ taglist: make proper struct not just a GstStructure
+
+2012-05-25 10:28:40 +0200 Josep Torra <josep@fluendo.com>
+
+ * gst/gst.c:
+ * gst/gstdebugutils.c:
+ debugutils: Fix static linking on OS X
+ The linking behaviour of external variables that are not initialized
+ in the compilation unit where they are defined is undefined. On OS X
+ this causes a linking failure when statically linking GStreamer.
+
+2012-05-25 09:17:17 +0100 Luis de Bethencourt <luis@debethencourt.com>
+
+ * scripts/five-bugs-a-day.pl:
+ five-bugs-a-day: use splice to trim the bug list
+
+2012-05-24 23:30:29 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * plugins/elements/gstfakesrc.c:
+ * plugins/elements/gstfakesrc.h:
+ fakesrc: put byte position rather than buffer count into GST_BUFFER_OFFSET
+ If we're sending a segment in BYTE format, the offset
+ should be in bytes as well.
+
+2012-05-24 11:48:19 +0100 Luis de Bethencourt <luis@debethencourt.com>
+
+ * docs/design/part-segments.txt:
+ docs: fix a typo in part-segments.txt
+
+2012-05-24 11:02:53 +0200 Brian Cameron <brian.cameron at oracle.com>
+
+ * libs/gst/base/gsttypefindhelper.c:
+ typefind: fix prototype of helper_find_suggest
+ The proto for helper_find_suggest has a different argument than the actual
+ function in the same file has. This causes the Sun Studio compiler to fail.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676624
+ Conflicts:
+ libs/gst/base/gsttypefindhelper.c
+
+2012-05-24 08:07:14 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * scripts/five-bugs-a-day.pl:
+ scripts: remove a stray print from debugging and fix up cron entry docs
+
+2012-05-24 09:03:12 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * scripts/five-bugs-a-day.pl:
+ five-bugs-a-day: Make #! to perl more portable
+
+2012-05-24 07:56:48 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * scripts/five-bugs-a-day.pl:
+ scripts: remove fixed 'known issue' from five-bugs-a-day script
+ This was with commas actually, and should be fixed now.
+
+2012-05-24 07:54:50 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * scripts/five-bugs-a-day.pl:
+ scripts: add five-bugs-a-day script
+ Cron fodder.
+
+2012-05-22 14:27:48 +0300 Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+ * tests/examples/helloworld/helloworld.c:
+ tests: rename playbin2 to playbin and adding some debug info
+
+2012-05-22 18:27:36 +0200 Edward Hervey <edward@collabora.com>
+
+ * gst/gsturi.c:
+ uri: Add some debug statements
+
+2012-05-22 13:51:47 +0200 Edward Hervey <edward.hervey@collabora.co.uk>
+
+ * win32/common/libgstreamer.def:
+ win32: Update defs file
+
+2012-05-21 09:14:39 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tests/check/gst/gstbin.c:
+ bin: port unit test to 0.11
+
+2012-05-21 15:14:51 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * gst/gstelement.c:
+ * gst/gstutils.c:
+ docs: improve the seeking docs more.
+ Also mention it on _element_seek{,_simple} and be more precise why it happens.
+
+2012-05-21 13:17:21 +0200 Stefan Sauer <ensonic@users.sf.net>
+
+ * gst/gstelement.c:
+ * gst/gstevent.c:
+ docs: fix a typo and clarify event handling a bit more
+ Tell about async_done messages for some events and review the _event_new_seek
+ docs.
+
+2012-05-18 15:04:35 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * gst/gstbin.c:
+ * tests/check/gst/gstbin.c:
+ bin: try harder to avoid state changes in wrong direction
+ When the bin does an upward state change, try to avoid doing a downward state
+ change on the child and vice versa.
+ Add some more unit tests for this fix.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=621833
+
+2012-05-18 20:11:55 +0300 Anton Belka <antonbelka@gmail.com>
+
+ * tools/gst-launch.c:
+ gst-launch: fix -c, --toc message
+
+2012-05-21 01:48:29 +0300 Anton Belka <antonbelka@gmail.com>
+
+ * gst/gsttoc.c:
+ * gst/gsttoc.h:
+ toc: Add boxed types for GstToc and GstTocEntry
+
+2012-05-20 18:23:57 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gsttoc.c:
+ * gst/gsttoc.h:
+ toc: fix type of pad parameter to gst_toc_entry_new_with_pad()
+
+2012-05-20 18:16:45 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gsttoc.c:
+ toc: use correct GType for tag lists
+
+2012-05-20 18:06:22 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gsttoc.c:
+ toc: avoid unnecessary GValue acrobatics
+
+2012-05-20 17:48:55 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gst.c:
+ * gst/gst_private.h:
+ * gst/gstquark.c:
+ * gst/gstquark.h:
+ * gst/gsttoc.c:
+ toc: use global quark table
+
+2012-05-20 17:10:24 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gstquark.c:
+ toc: fix internal TOC query and event structure names
+ Make them consistent with all the other query and event names.
+
+2012-05-19 17:24:52 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gst_private.h:
+ * gst/gstpluginfeature.h:
+ pluginfeature: make GstPluginFeature structure private
+ Make GstPluginFeature opaque until we have time to
+ clean it up a little. Only GstElementFactory and
+ GstTypefindFactory derive from it, and they are
+ opaque already, and we currently don't support
+ custom plugin features in the registry anyway.
+
+2012-05-19 17:23:43 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tests/check/gst/gstplugin.c:
+ * tools/gst-inspect.c:
+ tools, tests: don't access the GstPluginFeature structure directly
+
+2012-05-19 17:16:35 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gstpluginfeature.c:
+ * gst/gstpluginfeature.h:
+ * win32/common/libgstreamer.def:
+ pluginfeature: add gst_plugin_feature_get_plugin()
+ Add function to retrieve plugin that provides this feature.
+ API: gst_plugin_feature_get_plugin()
+
+2012-05-19 16:21:39 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * common:
+ common: update for gstscanobj changes
+
+2012-05-19 15:51:53 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * gst/gst_private.h:
+ * gst/gstelementfactory.h:
+ * tests/check/gst/gstelementfactory.c:
+ elementfactory: make object struct opaque for now
+ Make GstElementFactory opaque until we have time to
+ clean it up a little. It's not something anyone
+ would need to derive from.
+
+2012-05-19 14:59:14 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * tools/gst-inspect.c:
+ tools: don't use private GstElementFactory API in gst-inspect
+
+2012-05-19 14:52:29 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gstelementfactory.c:
+ * gst/gstelementfactory.h:
+ * win32/common/libgstreamer.def:
+ elementfactory: add gst_element_factory_get_metadata_keys()
+ API: gst_element_factory_get_metadata_keys()
+
+2012-05-18 09:52:09 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * tools/gst-launch.c:
+ launch: improve EOS on shutdown handling
+ When the -e option is selected, also wait for EOS when the pipeline produced an
+ error.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=630997
+
+2012-05-16 18:53:15 +0300 Anton Belka <antonbelka@gmail.com>
+
+ * gst/gststructure.c:
+ docs: fix gst_structure_to_string() docs
+
+2012-05-16 13:24:23 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * libs/gst/base/gstbasesink.c:
+ basesink: throttle-time is used
+
+2012-05-16 12:08:44 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * libs/gst/base/gstbasesink.c:
+ * libs/gst/base/gstbasesink.h:
+ basesink: add prepare method
+ Add a prepare method that is called before sync happens. The purpose of this
+ method is to prepare the rendering of the giving buffer so that the following
+ render() call after sync is a quick as possible.
+
+2012-05-16 09:16:26 +0200 Wim Taymans <wim.taymans@collabora.co.uk>
+
+ * libs/gst/base/gstbasesrc.c:
+ basesrc: avoid potential deadlock
+ In gst_base_src_start_complete() we do a perform_seek() that will eventually
+ start the streaming thread which acquires the live lock and then goes to sleep
+ in the case of appsrc. Right after we perform seek we also try to acquire the
+ live lock which might then deadlock.
+ fix this by taking the stream lock before performing the seek. This makes sure
+ that the streaming thread cannot start and grab the live lock until we are done
+ and release the stream lock again.
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676048
+
+2012-05-15 19:11:15 +0100 Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+ * plugins/elements/gstfilesrc.c:
+ filesrc: remove references to mmap in comments and debug messages
+
+2012-05-15 16:38:30 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gsttoc.c:
+ * gst/gsttoc.h:
+ * tools/gst-launch.c:
+ * win32/common/libgstreamer.def:
+ gst: Rename gst_toc_entry_type_to_string() to gst_toc_entry_type_get_nick()
+ It's more consistent.
+
+2012-05-15 14:59:07 +0300 Anton Belka <antonbelka@gmail.com>
+
+ * tools/gst-launch.c:
+ gst-launch: fix print_toc_entry()
+
+2012-05-15 14:48:35 +0300 Anton Belka <antonbelka@gmail.com>
+
+ * docs/gst/gstreamer-sections.txt:
+ * gst/gsttoc.c:
+ * gst/gsttoc.h:
+ * win32/common/libgstreamer.def:
+ toc: API: Add gst_toc_entry_type_to_string()
+
+2012-05-14 03:57:50 +0200 Alban Browaeys <prahal@yahoo.com>
+
+ * plugins/elements/gsttypefindelement.c:
+ typefindelement: if sink pad is activated do not change mode
+ In commit bf0964b6 a check for pad is activated was not carried.
+ This leads to attempt to pull while in push mode when force_caps
+ is set. In this case without the attached check even when activated
+ in pull mode we activate back to push mode.
+ This is from comment in previous code , case number eight:
+ 8. if the sink pad is activated, we are in pull mode. succeed.
+ - otherwise activate both pads in push mode and succeed.
+ Putting it back fixes playback of webm in webkit+gstreamer 1.0 .
+ Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676003
+
+2012-05-13 16:59:24 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * configure.ac:
+ Back to development
+
=== release 0.11.91 ===
-2012-05-13 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2012-05-13 16:02:36 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * ChangeLog:
+ * NEWS:
+ * RELEASE:
+ * common:
* configure.ac:
- releasing 0.11.91, "I will give you five magic beans\!"
+ * docs/plugins/inspect/plugin-coreelements.xml:
+ * gstreamer.doap:
+ * win32/common/config.h:
+ * win32/common/gstenumtypes.c:
+ Release 0.11.91
+
+2012-05-13 16:02:18 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * po/af.po:
+ * po/az.po:
+ * po/be.po:
+ * po/bg.po:
+ * po/ca.po:
+ * po/cs.po:
+ * po/da.po:
+ * po/de.po:
+ * po/el.po:
+ * po/en_GB.po:
+ * po/eo.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/nb.po:
+ * po/nl.po:
+ * po/pl.po:
+ * po/pt_BR.po:
+ * po/ro.po:
+ * po/ru.po:
+ * po/rw.po:
+ * po/sk.po:
+ * po/sl.po:
+ * po/sq.po:
+ * po/sr.po:
+ * po/sv.po:
+ * po/tr.po:
+ * po/uk.po:
+ * po/vi.po:
+ * po/zh_CN.po:
+ * po/zh_TW.po:
+ Update .po files
+
+2012-05-13 15:55:43 +0200 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+ * common:
+ Automatic update of common submodule
+ From dc70203 to 3429ba6
2012-05-09 14:22:20 +0200 Sebastian Rasmussen <sebrn@axis.com>
diff --git a/Makefile.in b/Makefile.in
index e0990cf..4c28bc0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -62,6 +62,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/config.h.in \
$(srcdir)/gst-element-check.m4.in $(srcdir)/gstreamer.spec.in \
@@ -324,6 +325,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -476,7 +481,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/NEWS b/NEWS
index cc7988f..a794dc9 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,11 @@
-This is GStreamer 0.11.91 "I will give you five magic beans!"
+This is GStreamer 0.11.92 "High Hopes"
+
+New features in 0.11.92:
+
+ * Parallel installability with 0.10.x series
+ * API cleanup and minor API improvements
+ * GstTagList is a refcounted type now
+ * Lots of bugfixes, cleanup and other improvements
New features in 0.11.91:
diff --git a/RELEASE b/RELEASE
index bc68642..fe51c74 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
-Release notes for GStreamer 0.11.91 "I will give you five magic beans!"
+Release notes for GStreamer 0.11.92 "High Hopes"
@@ -8,12 +8,14 @@ in the 0.11.x unstable series of the
core of the GStreamer streaming media framework.
+
The 0.11.x series is an unstable series targeted at developers and will
eventually lead up to the stable 1.0 series.
It is not API or ABI compatible with the stable 0.10.x series.
It is, however, parallel installable with the 0.10.x series.
+
The 0.11.x series has improved memory management and features
various cleanups and enhancements.
@@ -40,10 +42,9 @@ contains a set of less supported plug-ins that haven't passed the
Features of this release
* Parallel installability with 0.10.x series
- * Threadsafe design and API
- * API cleanup and minor improvements
- * More hiding of structs that don't need to be public
- * Addition of SNAP flag for seek events
+ * API cleanup and minor API improvements
+ * GstTagList is a refcounted type now
+ * Lots of bugfixes, cleanup and other improvements
There were no bugs fixed in this release
@@ -72,26 +73,25 @@ will create more lists as necessary.
Applications
-Various applications have early ports to GStreamer 0.11 including Totem, RhythmBox,
-Webkit, Jokosher, Transmageddon and others. We're working on porting more applications.
+Various applications have early ports to GStreamer 0.11 including Totem, RhythmBox, Webkit, Jokosher, Transmageddon and others. We're working on porting more applications.
Contributors to this release
+ * Alban Browaeys
+ * Andre Moreira Magalhaes (andrunko)
* Anton Belka
+ * Bastien Nocera
+ * Brian Cameron
* Edward Hervey
+ * Havard Graff
+ * Josep Torra
+ * Luis de Bethencourt
* Mark Nauwelaerts
- * Matej Knopp
- * Raimo Järvi
- * Reynaldo H. Verdejo Pinochet
+ * Mike Ruprecht
* Sebastian Dröge
- * Sebastian Rasmussen
* Sreerenj Balachandran
* Stefan Sauer
- * Thiago Santos
* Tim-Philipp Müller
- * Vincent Penquerc'h
* Wim Taymans
- * Youness Alaoui
- * Руслан Ижбулатов
  \ No newline at end of file
diff --git a/common/Makefile.in b/common/Makefile.in
index db3ce35..2e793ef 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = common
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -257,6 +258,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index b0699c7..0d69a86 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -245,11 +245,13 @@ get_object_types (void)
if (gst_plugin_get_filename (plugin) == NULL)
continue;
- $debug_log ("plugin: %s source: %s", plugin->desc.name, source);
+ $debug_log ("plugin: %s source: %s", gst_plugin_get_name (plugin), source);
if (reinspect) {
+ gchar *basename;
+
inspect_name = g_strdup_printf ("$INSPECT_DIR" G_DIR_SEPARATOR_S "plugin-%s.xml",
- plugin->desc.name);
+ gst_plugin_get_name (plugin));
inspect = fopen (inspect_name, "w");
if (inspect == NULL) {
g_error ("Could not open %s for writing: %s\\n", inspect_name,
@@ -257,23 +259,27 @@ get_object_types (void)
}
g_free (inspect_name);
+ basename = g_path_get_basename (gst_plugin_get_filename (plugin));
+
/* output plugin data */
fputs ("<plugin>\\n",inspect);
- fputs (xmlprint(2, "name", plugin->desc.name),inspect);
- fputs (xmlprint(2, "description", plugin->desc.description),inspect);
- fputs (xmlprint(2, "filename", plugin->filename),inspect);
- fputs (xmlprint(2, "basename", plugin->basename),inspect);
- fputs (xmlprint(2, "version", plugin->desc.version),inspect);
- fputs (xmlprint(2, "license", plugin->desc.license),inspect);
- fputs (xmlprint(2, "source", plugin->desc.source),inspect);
- fputs (xmlprint(2, "package", plugin->desc.package),inspect);
- fputs (xmlprint(2, "origin", plugin->desc.origin),inspect);
+ fputs (xmlprint(2, "name", gst_plugin_get_name (plugin)),inspect);
+ fputs (xmlprint(2, "description", gst_plugin_get_description (plugin)),inspect);
+ fputs (xmlprint(2, "filename", gst_plugin_get_filename (plugin)),inspect);
+ fputs (xmlprint(2, "basename", basename),inspect);
+ fputs (xmlprint(2, "version", gst_plugin_get_version (plugin)),inspect);
+ fputs (xmlprint(2, "license", gst_plugin_get_license (plugin)),inspect);
+ fputs (xmlprint(2, "source", gst_plugin_get_source (plugin)),inspect);
+ fputs (xmlprint(2, "package", gst_plugin_get_package (plugin)),inspect);
+ fputs (xmlprint(2, "origin", gst_plugin_get_origin (plugin)),inspect);
fputs (" <elements>\\n", inspect);
+
+ g_free (basename);
}
features =
gst_registry_get_feature_list_by_plugin (gst_registry_get (),
- plugin->desc.name);
+ gst_plugin_get_name (plugin));
/* sort factories by feature->name */
features = g_list_sort (features, gst_feature_sort_compare);
diff --git a/common/m4/Makefile.am b/common/m4/Makefile.am
index 2ddb8a7..856d6e3 100644
--- a/common/m4/Makefile.am
+++ b/common/m4/Makefile.am
@@ -8,7 +8,6 @@ EXTRA_DIST = \
as-gcc-inline-assembly.m4 \
as-libtool.m4 \
as-libtool-tags.m4 \
- as-objc.m4 \
as-python.m4 \
as-scrub-include.m4 \
as-version.m4 \
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 8767f43..d2580d9 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = common/m4
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
@@ -383,7 +392,6 @@ EXTRA_DIST = \
as-gcc-inline-assembly.m4 \
as-libtool.m4 \
as-libtool-tags.m4 \
- as-objc.m4 \
as-python.m4 \
as-scrub-include.m4 \
as-version.m4 \
diff --git a/common/m4/as-compiler-flag.m4 b/common/m4/as-compiler-flag.m4
index 882a4c7..8bb853a 100644
--- a/common/m4/as-compiler-flag.m4
+++ b/common/m4/as-compiler-flag.m4
@@ -62,3 +62,35 @@ AC_DEFUN([AS_CXX_COMPILER_FLAG],
AC_MSG_RESULT([$flag_ok])
])
+dnl AS_OBJC_COMPILER_FLAG(CPPFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
+dnl Tries to compile with the given CPPFLAGS.
+dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
+dnl and ACTION-IF-NOT-ACCEPTED otherwise.
+
+AC_DEFUN([AS_OBJC_COMPILER_FLAG],
+[
+ AC_REQUIRE([AC_PROG_OBJC])
+
+ AC_MSG_CHECKING([to see if Objective C compiler understands $1])
+
+ save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $1"
+
+ AC_LANG_PUSH([Objective C])
+
+ AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
+ CPPFLAGS="$save_CPPFLAGS"
+
+ if test "X$flag_ok" = Xyes ; then
+ $2
+ true
+ else
+ $3
+ true
+ fi
+
+ AC_LANG_POP([Objective C])
+
+ AC_MSG_RESULT([$flag_ok])
+])
+
diff --git a/common/m4/as-objc.m4 b/common/m4/as-objc.m4
deleted file mode 100644
index 1e7066a..0000000
--- a/common/m4/as-objc.m4
+++ /dev/null
@@ -1,56 +0,0 @@
-
-
-# AC_PROG_OBJC([LIST-OF-COMPILERS])
-#
-AC_DEFUN([AS_PROG_OBJC],
-[
-AC_CHECK_TOOLS(OBJC,
- [m4_default([$1], [objcc objc gcc cc CC])],
- none)
-AC_SUBST(OBJC)
-OBJC_LDFLAGS="-lobjc"
-AC_SUBST(OBJC_LDFLAGS)
-if test "x$OBJC" != xnone ; then
- _AM_DEPENDENCIES(OBJC)
- AC_MSG_CHECKING([if Objective C compiler works])
- cat >>conftest.m <<EOF
-#include <objc/Object.h>
-@interface Moo:Object
-{
-}
-- moo;
-int main();
-@end
-
-@implementation Moo
-- moo
-{
- exit(0);
-}
-
-int main()
-{
- id moo;
- moo = [[Moo new]];
- [[moo moo]];
- return 1;
-}
-@end
-EOF
- ${OBJC} conftest.m ${OBJC_LDFLAGS} >&5 2>&5
- if test -f a.out -o -f a.exe ; then
- result=yes
- else
- result=no
- echo failed program is: >&5
- cat conftest.m >&5
- fi
- rm -f conftest.m a.out a.exe
- AC_MSG_RESULT([$result])
-else
- _AM_DEPENDENCIES(OBJC)
-fi
-
-])
-
-
diff --git a/common/m4/gst-arch.m4 b/common/m4/gst-arch.m4
index 2e935d2..ff0954a 100644
--- a/common/m4/gst-arch.m4
+++ b/common/m4/gst-arch.m4
@@ -6,31 +6,32 @@ dnl defines HOST_CPU
AC_DEFUN([AG_GST_ARCH],
[
AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use host_ variables
+ AC_REQUIRE([AC_CANONICAL_TARGET]) dnl we use target_ variables
dnl Determine CPU
- case "x${host_cpu}" in
+ case "x${target_cpu}" in
xi?86 | xk? | xi?86_64)
- case $host_os in
+ case $target_os in
solaris*)
AC_CHECK_DECL([__i386], [I386_ABI="yes"], [I386_ABI="no"])
AC_CHECK_DECL([__amd64], [AMD64_ABI="yes"], [AMD64_ABI="no"])
if test "x$I386_ABI" = "xyes" ; then
HAVE_CPU_I386=yes
- AC_DEFINE(HAVE_CPU_I386, 1, [Define if the host CPU is an x86])
+ AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
fi
if test "x$AMD64_ABI" = "xyes" ; then
HAVE_CPU_X86_64=yes
- AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the host CPU is a x86_64])
+ AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the target CPU is a x86_64])
fi
;;
*)
HAVE_CPU_I386=yes
- AC_DEFINE(HAVE_CPU_I386, 1, [Define if the host CPU is an x86])
+ AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
dnl FIXME could use some better detection
dnl (ie CPUID)
- case "x${host_cpu}" in
+ case "x${target_cpu}" in
xi386 | xi486) ;;
*)
AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;;
@@ -40,43 +41,43 @@ AC_DEFUN([AG_GST_ARCH],
;;
xpowerpc)
HAVE_CPU_PPC=yes
- AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the host CPU is a PowerPC]) ;;
+ AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PowerPC]) ;;
xpowerpc64)
HAVE_CPU_PPC64=yes
- AC_DEFINE(HAVE_CPU_PPC64, 1, [Define if the host CPU is a 64 bit PowerPC]) ;;
+ AC_DEFINE(HAVE_CPU_PPC64, 1, [Define if the target CPU is a 64 bit PowerPC]) ;;
xalpha*)
HAVE_CPU_ALPHA=yes
- AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the host CPU is an Alpha]) ;;
+ AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
xarm*)
HAVE_CPU_ARM=yes
- AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the host CPU is an ARM]) ;;
+ AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
xsparc*)
HAVE_CPU_SPARC=yes
- AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the host CPU is a SPARC]) ;;
+ AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a SPARC]) ;;
xmips*)
HAVE_CPU_MIPS=yes
- AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the host CPU is a MIPS]) ;;
+ AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
xhppa*)
HAVE_CPU_HPPA=yes
- AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the host CPU is a HPPA]) ;;
+ AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
xs390*)
HAVE_CPU_S390=yes
- AC_DEFINE(HAVE_CPU_S390, 1, [Define if the host CPU is a S390]) ;;
+ AC_DEFINE(HAVE_CPU_S390, 1, [Define if the target CPU is a S390]) ;;
xia64*)
HAVE_CPU_IA64=yes
- AC_DEFINE(HAVE_CPU_IA64, 1, [Define if the host CPU is a IA64]) ;;
+ AC_DEFINE(HAVE_CPU_IA64, 1, [Define if the target CPU is a IA64]) ;;
xm68k*)
HAVE_CPU_M68K=yes
- AC_DEFINE(HAVE_CPU_M68K, 1, [Define if the host CPU is a M68K]) ;;
+ AC_DEFINE(HAVE_CPU_M68K, 1, [Define if the target CPU is a M68K]) ;;
xx86_64)
HAVE_CPU_X86_64=yes
- AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the host CPU is a x86_64]) ;;
+ AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the target CPU is a x86_64]) ;;
xcris)
HAVE_CPU_CRIS=yes
- AC_DEFINE(HAVE_CPU_CRIS, 1, [Define if the host CPU is a CRIS]) ;;
+ AC_DEFINE(HAVE_CPU_CRIS, 1, [Define if the target CPU is a CRIS]) ;;
xcrisv32)
HAVE_CPU_CRISV32=yes
- AC_DEFINE(HAVE_CPU_CRISV32, 1, [Define if the host CPU is a CRISv32]) ;;
+ AC_DEFINE(HAVE_CPU_CRISV32, 1, [Define if the target CPU is a CRISv32]) ;;
esac
dnl Determine endianness
@@ -98,6 +99,7 @@ AC_DEFUN([AG_GST_ARCH],
AM_CONDITIONAL(HAVE_CPU_CRISV32, test "x$HAVE_CPU_CRISV32" = "xyes")
AC_DEFINE_UNQUOTED(HOST_CPU, "$host_cpu", [the host CPU])
+ AC_DEFINE_UNQUOTED(TARGET_CPU, "$target_cpu", [the target CPU])
])
dnl check if unaligned memory access works correctly
diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4
index 2dc0184..4872e3c 100644
--- a/common/m4/gst-args.m4
+++ b/common/m4/gst-args.m4
@@ -111,13 +111,13 @@ AC_DEFUN([AG_GST_ARG_GCOV],
dnl if gcov is used, we do not want default -O2 CFLAGS
if test "x$GST_GCOV_ENABLED" = "xyes"
then
- CFLAGS="-O0"
+ CFLAGS="$CFLAGS -O0"
AC_SUBST(CFLAGS)
- CXXFLAGS="-O0"
+ CXXFLAGS="$CXXFLAGS -O0"
AC_SUBST(CXXFLAGS)
- FFLAGS="-O0"
+ FFLAGS="$FFLAGS -O0"
AC_SUBST(FFLAGS)
- CCASFLAGS="-O0"
+ CCASFLAGS="$CCASFLAGS -O0"
AC_SUBST(CCASFLAGS)
AC_MSG_NOTICE([gcov enabled, setting CFLAGS and friends to $CFLAGS])
fi
diff --git a/common/m4/gst-error.m4 b/common/m4/gst-error.m4
index f8f2364..e12a04c 100644
--- a/common/m4/gst-error.m4
+++ b/common/m4/gst-error.m4
@@ -196,6 +196,91 @@ AC_DEFUN([AG_GST_SET_ERROR_CXXFLAGS],
AC_MSG_NOTICE([set ERROR_CXXFLAGS to $ERROR_CXXFLAGS])
])
+dnl Sets WARNING_OBJCFLAGS and ERROR_OBJCFLAGS to something the compiler
+dnl will accept and AC_SUBST them so they are available in Makefile
+dnl
+dnl WARNING_OBJCFLAGS will contain flags to make the compiler emit more
+dnl warnings.
+dnl ERROR_OBJCFLAGS will contain flags to make those warnings fatal,
+dnl unless ADD-WERROR is set to "no"
+dnl
+dnl If MORE_FLAGS is set, tries to add each of the given flags
+dnl to WARNING_CFLAGS if the compiler supports them. Each flag is
+dnl tested separately.
+dnl
+dnl These flags can be overridden at make time:
+dnl make ERROR_OBJCFLAGS=
+AC_DEFUN([AG_GST_SET_ERROR_OBJCFLAGS],
+[
+ AC_REQUIRE([AC_PROG_OBJC])
+ AC_REQUIRE([AS_OBJC_COMPILER_FLAG])
+
+ ERROR_OBJCFLAGS=""
+ WARNING_OBJCFLAGS=""
+
+ dnl if we support -Wall, set it unconditionally
+ AS_OBJC_COMPILER_FLAG(-Wall, WARNING_OBJCFLAGS="$WARNING_OBJCFLAGS -Wall")
+
+ dnl if asked for, add -Werror if supported
+ if test "x$1" != "xno"
+ then
+ AS_OBJC_COMPILER_FLAG(-Werror, ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -Werror")
+
+ if test "x$ERROR_OBJCFLAGS" != "x"
+ then
+ dnl Add -fno-strict-aliasing for GLib versions before 2.19.8
+ dnl as before G_LOCK and friends caused strict aliasing compiler
+ dnl warnings.
+ PKG_CHECK_EXISTS([glib-2.0 < 2.19.8], [
+ AS_OBJC_COMPILER_FLAG([-fno-strict-aliasing],
+ ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -fno-strict-aliasing")
+ ])
+ else
+ dnl if -Werror isn't suported, try -errwarn=%all
+ AS_OBJC_COMPILER_FLAG([-errwarn=%all], ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS -errwarn=%all")
+ if test "x$ERROR_OBJCFLAGS" != "x"; then
+ dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,
+ dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH,
+ dnl no%E_MACRO_REDEFINED (Sun Forte case)
+ dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon
+ dnl "statement not reached" disabled because there is g_assert_not_reached () in some places
+ dnl "macro redefined" because of gst/gettext.h
+ dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'?
+ dnl FIXME: do any of these work with the c++ compiler? if not, why
+ dnl do we check at all?
+ for f in 'no%E_EMPTY_DECLARATION' \
+ 'no%E_STATEMENT_NOT_REACHED' \
+ 'no%E_ARGUEMENT_MISMATCH' \
+ 'no%E_MACRO_REDEFINED' \
+ 'no%E_LOOP_NOT_ENTERED_AT_TOP'
+ do
+ AS_OBJC_COMPILER_FLAG([-errwarn=%all,$f], ERROR_OBJCFLAGS="$ERROR_OBJCFLAGS,$f")
+ done
+ fi
+ fi
+ fi
+
+ if test "x$2" != "x"
+ then
+ UNSUPPORTED=""
+ list="$2"
+ for each in $list
+ do
+ AS_OBJC_COMPILER_FLAG($each,
+ WARNING_OBJCFLAGS="$WARNING_OBJCFLAGS $each",
+ UNSUPPORTED="$UNSUPPORTED $each")
+ done
+ if test "X$UNSUPPORTED" != X ; then
+ AC_MSG_NOTICE([unsupported compiler flags: $UNSUPPORTED])
+ fi
+ fi
+
+ AC_SUBST(WARNING_OBJCFLAGS)
+ AC_SUBST(ERROR_OBJCFLAGS)
+ AC_MSG_NOTICE([set WARNING_OBJCFLAGS to $WARNING_OBJCFLAGS])
+ AC_MSG_NOTICE([set ERROR_OBJCFLAGS to $ERROR_OBJCFLAGS])
+])
+
dnl Sets the default error level for debugging messages
AC_DEFUN([AG_GST_SET_LEVEL_DEFAULT],
[
diff --git a/common/m4/gtk-doc.m4 b/common/m4/gtk-doc.m4
index 39a4e7d..0c1a305 100644
--- a/common/m4/gtk-doc.m4
+++ b/common/m4/gtk-doc.m4
@@ -6,8 +6,15 @@ dnl Usage:
dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
AC_DEFUN([GTK_DOC_CHECK],
[
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+
+ dnl check for tools we added during development
+ AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check])
+ AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true])
+ AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf])
+
dnl for overriding the documentation installation directory
AC_ARG_WITH([html-dir],
AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
@@ -26,7 +33,13 @@ AC_DEFUN([GTK_DOC_CHECK],
[PKG_CHECK_EXISTS([gtk-doc],,
AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))],
[PKG_CHECK_EXISTS([gtk-doc >= $1],,
- AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))])
+ AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))])
+ dnl don't check for glib if we build glib
+ if test "x$PACKAGE_NAME" != "xglib"; then
+ dnl don't fail if someone does not have glib
+ PKG_CHECK_MODULES(GTKDOC_DEPS, glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0,,)
+ fi
+ dnl don't rely on sed being pulled in implicitly. Fixes Solaris build.
if test -z "$SED"; then
AC_PROG_SED
fi
@@ -35,8 +48,24 @@ AC_DEFUN([GTK_DOC_CHECK],
AC_MSG_CHECKING([whether to build gtk-doc documentation])
AC_MSG_RESULT($enable_gtk_doc)
- AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,)
+ dnl enable/disable output formats
+ AC_ARG_ENABLE([gtk-doc-html],
+ AS_HELP_STRING([--enable-gtk-doc-html],
+ [build documentation in html format [[default=yes]]]),,
+ [enable_gtk_doc_html=yes])
+ AC_ARG_ENABLE([gtk-doc-pdf],
+ AS_HELP_STRING([--enable-gtk-doc-pdf],
+ [build documentation in pdf format [[default=no]]]),,
+ [enable_gtk_doc_pdf=no])
+
+ if test -z "$GTKDOC_MKPDF"; then
+ enable_gtk_doc_pdf=no
+ fi
+
AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes])
+ AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes])
+ AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes])
AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"])
+ AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"])
])
diff --git a/config.h.in b/config.h.in
index d78a08e..43b0e35 100644
--- a/config.h.in
+++ b/config.h.in
@@ -75,46 +75,46 @@
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
-/* Define if the host CPU is an Alpha */
+/* Define if the target CPU is an Alpha */
#undef HAVE_CPU_ALPHA
-/* Define if the host CPU is an ARM */
+/* Define if the target CPU is an ARM */
#undef HAVE_CPU_ARM
-/* Define if the host CPU is a CRIS */
+/* Define if the target CPU is a CRIS */
#undef HAVE_CPU_CRIS
-/* Define if the host CPU is a CRISv32 */
+/* Define if the target CPU is a CRISv32 */
#undef HAVE_CPU_CRISV32
-/* Define if the host CPU is a HPPA */
+/* Define if the target CPU is a HPPA */
#undef HAVE_CPU_HPPA
-/* Define if the host CPU is an x86 */
+/* Define if the target CPU is an x86 */
#undef HAVE_CPU_I386
-/* Define if the host CPU is a IA64 */
+/* Define if the target CPU is a IA64 */
#undef HAVE_CPU_IA64
-/* Define if the host CPU is a M68K */
+/* Define if the target CPU is a M68K */
#undef HAVE_CPU_M68K
-/* Define if the host CPU is a MIPS */
+/* Define if the target CPU is a MIPS */
#undef HAVE_CPU_MIPS
-/* Define if the host CPU is a PowerPC */
+/* Define if the target CPU is a PowerPC */
#undef HAVE_CPU_PPC
-/* Define if the host CPU is a 64 bit PowerPC */
+/* Define if the target CPU is a 64 bit PowerPC */
#undef HAVE_CPU_PPC64
-/* Define if the host CPU is a S390 */
+/* Define if the target CPU is a S390 */
#undef HAVE_CPU_S390
-/* Define if the host CPU is a SPARC */
+/* Define if the target CPU is a SPARC */
#undef HAVE_CPU_SPARC
-/* Define if the host CPU is a x86_64 */
+/* Define if the target CPU is a x86_64 */
#undef HAVE_CPU_X86_64
/* Define if the GNU dcgettext() function is already present or preinstalled.
@@ -359,6 +359,9 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+/* the target CPU */
+#undef TARGET_CPU
+
/* Define if we should poison deallocated memory */
#undef USE_POISONING
diff --git a/configure b/configure
index e0afcc6..19506a2 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer 0.11.91.
+# Generated by GNU Autoconf 2.69 for GStreamer 0.11.92.
#
# Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
#
@@ -591,8 +591,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='GStreamer'
PACKAGE_TARNAME='gstreamer'
-PACKAGE_VERSION='0.11.91'
-PACKAGE_STRING='GStreamer 0.11.91'
+PACKAGE_VERSION='0.11.92'
+PACKAGE_STRING='GStreamer 0.11.92'
PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
PACKAGE_URL=''
@@ -715,12 +715,22 @@ PYTHON_EXEC_PREFIX
PYTHON_PREFIX
PYTHON_VERSION
PYTHON
+GTK_DOC_USE_REBASE_FALSE
+GTK_DOC_USE_REBASE_TRUE
GTK_DOC_USE_LIBTOOL_FALSE
GTK_DOC_USE_LIBTOOL_TRUE
+GTK_DOC_BUILD_PDF_FALSE
+GTK_DOC_BUILD_PDF_TRUE
+GTK_DOC_BUILD_HTML_FALSE
+GTK_DOC_BUILD_HTML_TRUE
ENABLE_GTK_DOC_FALSE
ENABLE_GTK_DOC_TRUE
-GTKDOC_CHECK
+GTKDOC_DEPS_LIBS
+GTKDOC_DEPS_CFLAGS
HTML_DIR
+GTKDOC_MKPDF
+GTKDOC_REBASE
+GTKDOC_CHECK
DOC_PS_FALSE
DOC_PS_TRUE
DOC_PDF_FALSE
@@ -803,6 +813,10 @@ HAVE_CPU_PPC_FALSE
HAVE_CPU_PPC_TRUE
HAVE_CPU_I386_FALSE
HAVE_CPU_I386_TRUE
+target_os
+target_vendor
+target_cpu
+target
BUILD_FAILING_TESTS_FALSE
BUILD_FAILING_TESTS_TRUE
BUILD_TESTS_FALSE
@@ -1041,6 +1055,8 @@ enable_introspection
enable_docbook
with_html_dir
enable_gtk_doc
+enable_gtk_doc_html
+enable_gtk_doc_pdf
enable_gobject_cast_checks
enable_glib_asserts
enable_check
@@ -1065,6 +1081,8 @@ CXX
CXXFLAGS
CCC
CXXCPP
+GTKDOC_DEPS_CFLAGS
+GTKDOC_DEPS_LIBS
GLIB_CFLAGS
GLIB_LIBS
GIO_CFLAGS
@@ -1609,7 +1627,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures GStreamer 0.11.91 to adapt to many kinds of systems.
+\`configure' configures GStreamer 0.11.92 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1674,12 +1692,13 @@ Program names:
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
+ --target=TARGET configure for building compilers for TARGET [HOST]
_ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GStreamer 0.11.91:";;
+ short | recursive ) echo "Configuration of GStreamer 0.11.92:";;
esac
cat <<\_ACEOF
@@ -1724,6 +1743,8 @@ Optional Features:
Enable introspection for this build
--enable-docbook use docbook to build documentation [default=no]
--enable-gtk-doc use gtk-doc to build documentation [[default=no]]
+ --enable-gtk-doc-html build documentation in html format [[default=yes]]
+ --enable-gtk-doc-pdf build documentation in pdf format [[default=no]]
--enable-gobject-cast-checks=[no/auto/yes]
Enable GObject cast checks
--enable-glib-asserts=[no/auto/yes]
@@ -1777,6 +1798,10 @@ Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
CXXCPP C++ preprocessor
+ GTKDOC_DEPS_CFLAGS
+ C compiler flags for GTKDOC_DEPS, overriding pkg-config
+ GTKDOC_DEPS_LIBS
+ linker flags for GTKDOC_DEPS, overriding pkg-config
GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
GLIB_LIBS linker flags for GLIB, overriding pkg-config
GIO_CFLAGS C compiler flags for GIO, overriding pkg-config
@@ -1848,7 +1873,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-GStreamer configure 0.11.91
+GStreamer configure 0.11.92
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2621,7 +2646,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GStreamer $as_me 0.11.91, which was
+It was created by GStreamer $as_me 0.11.92, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -3444,7 +3469,7 @@ fi
# Define the identity of the package.
PACKAGE='gstreamer'
- VERSION='0.11.91'
+ VERSION='0.11.92'
cat >>confdefs.h <<_ACEOF
@@ -3567,9 +3592,9 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
- PACKAGE_VERSION_MAJOR=$(echo 0.11.91 | cut -d'.' -f1)
- PACKAGE_VERSION_MINOR=$(echo 0.11.91 | cut -d'.' -f2)
- PACKAGE_VERSION_MICRO=$(echo 0.11.91 | cut -d'.' -f3)
+ PACKAGE_VERSION_MAJOR=$(echo 0.11.92 | cut -d'.' -f1)
+ PACKAGE_VERSION_MINOR=$(echo 0.11.92 | cut -d'.' -f2)
+ PACKAGE_VERSION_MICRO=$(echo 0.11.92 | cut -d'.' -f3)
@@ -3580,7 +3605,7 @@ $as_echo "$am_cv_prog_tar_ustar" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
$as_echo_n "checking nano version... " >&6; }
- NANO=$(echo 0.11.91 | cut -d'.' -f4)
+ NANO=$(echo 0.11.92 | cut -d'.' -f4)
if test x"$NANO" = x || test "x$NANO" = "x0" ; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -15204,13 +15229,13 @@ _ACEOF
if test "x$GST_GCOV_ENABLED" = "xyes"
then
- CFLAGS="-O0"
+ CFLAGS="$CFLAGS -O0"
- CXXFLAGS="-O0"
+ CXXFLAGS="$CXXFLAGS -O0"
- FFLAGS="-O0"
+ FFLAGS="$FFLAGS -O0"
- CCASFLAGS="-O0"
+ CCASFLAGS="$CCASFLAGS -O0"
{ $as_echo "$as_me:${as_lineno-$LINENO}: gcov enabled, setting CFLAGS and friends to $CFLAGS" >&5
$as_echo "$as_me: gcov enabled, setting CFLAGS and friends to $CFLAGS" >&6;}
@@ -15490,11 +15515,50 @@ fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if ${ac_cv_target+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "x$target_alias" = x; then
+ ac_cv_target=$ac_cv_host
+else
+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+ test "$program_prefix$program_suffix$program_transform_name" = \
+ NONENONEs,x,x, &&
+ program_prefix=${target_alias}-
- case "x${host_cpu}" in
+ case "x${target_cpu}" in
xi?86 | xk? | xi?86_64)
- case $host_os in
+ case $target_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" = xyes; then :
@@ -15530,7 +15594,7 @@ $as_echo "#define HAVE_CPU_X86_64 1" >>confdefs.h
$as_echo "#define HAVE_CPU_I386 1" >>confdefs.h
- case "x${host_cpu}" in
+ case "x${target_cpu}" in
xi386 | xi486) ;;
*)
@@ -15951,6 +16015,11 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+cat >>confdefs.h <<_ACEOF
+#define TARGET_CPU "$target_cpu"
+_ACEOF
+
+
HOST_CPU=$host_cpu
@@ -22136,6 +22205,135 @@ fi
+
+ # Extract the first word of "gtkdoc-check", so it can be a program name with args.
+set dummy gtkdoc-check; 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_path_GTKDOC_CHECK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_CHECK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
+if test -n "$GTKDOC_CHECK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
+$as_echo "$GTKDOC_CHECK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ for ac_prog in gtkdoc-rebase
+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_path_GTKDOC_REBASE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_REBASE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE
+if test -n "$GTKDOC_REBASE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5
+$as_echo "$GTKDOC_REBASE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$GTKDOC_REBASE" && break
+done
+test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true"
+
+ # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args.
+set dummy gtkdoc-mkpdf; 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_path_GTKDOC_MKPDF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GTKDOC_MKPDF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF
+if test -n "$GTKDOC_MKPDF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5
+$as_echo "$GTKDOC_MKPDF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+
# Check whether --with-html-dir was given.
if test "${with_html_dir+set}" = set; then :
withval=$with_html_dir;
@@ -22163,9 +22361,101 @@ fi
test $ac_status = 0; }; then
:
else
- as_fn_error $? "You need to have gtk-doc >= 1.3 installed to build gtk-doc" "$LINENO" 5
+ as_fn_error $? "You need to have gtk-doc >= 1.3 installed to build $PACKAGE_NAME" "$LINENO" 5
+fi
+ if test "x$PACKAGE_NAME" != "xglib"; then
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKDOC_DEPS" >&5
+$as_echo_n "checking for GTKDOC_DEPS... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$GTKDOC_DEPS_CFLAGS"; then
+ pkg_cv_GTKDOC_DEPS_CFLAGS="$GTKDOC_DEPS_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GTKDOC_DEPS_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$GTKDOC_DEPS_LIBS"; then
+ pkg_cv_GTKDOC_DEPS_LIBS="$GTKDOC_DEPS_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_GTKDOC_DEPS_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0" 2>/dev/null`
+else
+ pkg_failed=yes
fi
- if test -z "$SED"; then
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0"`
+ else
+ GTKDOC_DEPS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$GTKDOC_DEPS_PKG_ERRORS" >&5
+
+ as_fn_error $? "Package requirements (glib-2.0 >= 2.10.0 gobject-2.0 >= 2.10.0) were not met:
+
+$GTKDOC_DEPS_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
+and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" "$LINENO" 5
+elif test $pkg_failed = untried; 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 $? "The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables GTKDOC_DEPS_CFLAGS
+and GTKDOC_DEPS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ GTKDOC_DEPS_CFLAGS=$pkg_cv_GTKDOC_DEPS_CFLAGS
+ GTKDOC_DEPS_LIBS=$pkg_cv_GTKDOC_DEPS_LIBS
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ :
+fi
+ fi
+ if test -z "$SED"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
$as_echo_n "checking for a sed that does not truncate output... " >&6; }
if ${ac_cv_path_SED+:} false; then :
@@ -22243,50 +22533,24 @@ $as_echo_n "checking whether to build gtk-doc documentation... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5
$as_echo "$enable_gtk_doc" >&6; }
- for ac_prog in gtkdoc-check
-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_path_GTKDOC_CHECK+:} false; then :
- $as_echo_n "(cached) " >&6
+ # Check whether --enable-gtk-doc-html was given.
+if test "${enable_gtk_doc_html+set}" = set; then :
+ enableval=$enable_gtk_doc_html;
else
- case $GTKDOC_CHECK in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
+ enable_gtk_doc_html=yes
fi
-GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK
-if test -n "$GTKDOC_CHECK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5
-$as_echo "$GTKDOC_CHECK" >&6; }
+
+ # Check whether --enable-gtk-doc-pdf was given.
+if test "${enable_gtk_doc_pdf+set}" = set; then :
+ enableval=$enable_gtk_doc_pdf;
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ enable_gtk_doc_pdf=no
fi
- test -n "$GTKDOC_CHECK" && break
-done
+ if test -z "$GTKDOC_MKPDF"; then
+ enable_gtk_doc_pdf=no
+ fi
if test x$enable_gtk_doc = xyes; then
@@ -22297,6 +22561,22 @@ else
ENABLE_GTK_DOC_FALSE=
fi
+ if test x$enable_gtk_doc_html = xyes; then
+ GTK_DOC_BUILD_HTML_TRUE=
+ GTK_DOC_BUILD_HTML_FALSE='#'
+else
+ GTK_DOC_BUILD_HTML_TRUE='#'
+ GTK_DOC_BUILD_HTML_FALSE=
+fi
+
+ if test x$enable_gtk_doc_pdf = xyes; then
+ GTK_DOC_BUILD_PDF_TRUE=
+ GTK_DOC_BUILD_PDF_FALSE='#'
+else
+ GTK_DOC_BUILD_PDF_TRUE='#'
+ GTK_DOC_BUILD_PDF_FALSE=
+fi
+
if test -n "$LIBTOOL"; then
GTK_DOC_USE_LIBTOOL_TRUE=
GTK_DOC_USE_LIBTOOL_FALSE='#'
@@ -22305,6 +22585,14 @@ else
GTK_DOC_USE_LIBTOOL_FALSE=
fi
+ if test -n "$GTKDOC_REBASE"; then
+ GTK_DOC_USE_REBASE_TRUE=
+ GTK_DOC_USE_REBASE_FALSE='#'
+else
+ GTK_DOC_USE_REBASE_TRUE='#'
+ GTK_DOC_USE_REBASE_FALSE=
+fi
+
@@ -25768,10 +26056,22 @@ if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then
+ as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then
+ as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then
as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then
+ as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${ENABLE_PLUGIN_DOCS_TRUE}" && test -z "${ENABLE_PLUGIN_DOCS_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_PLUGIN_DOCS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -26209,7 +26509,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by GStreamer $as_me 0.11.91, which was
+This file was extended by GStreamer $as_me 0.11.92, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -26275,7 +26575,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-GStreamer config.status 0.11.91
+GStreamer config.status 0.11.92
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index 4b0aa00..7612b34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ AC_PREREQ(2.62)
dnl initialize autoconf
dnl when going to/from release please set the nano (fourth number) right !
dnl releases only do Wall, git and prerelease does Werror too
-AC_INIT(GStreamer, 0.11.91,
+AC_INIT(GStreamer, 0.11.92,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gstreamer)
AG_GST_INIT
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 942e178..4539a19 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = docs
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/version.entities.in
@@ -257,6 +258,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index ed6ed53..a79dc0b 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = docs/design
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/design/part-negotiation.txt b/docs/design/part-negotiation.txt
index 89ae38b..bc94032 100644
--- a/docs/design/part-negotiation.txt
+++ b/docs/design/part-negotiation.txt
@@ -31,6 +31,12 @@ Queries
A pad can ask the peer pad for its supported GstCaps. It does this with
the CAPS query. The list of supported caps can be used to choose an
appropriate GstCaps for the data transfer.
+The CAPS query works recursively, elements should take their peers into
+consideration when constructing the possible caps. Because the result caps
+can be very large, the filter can be used to restrict the caps. Only the
+caps that match the filter will be returned as the result caps. The
+order of the filter caps gives the order of preference of the caller and
+should be taken into account for the returned caps.
(in) "filter", GST_TYPE_CAPS (default NULL)
- a GstCaps to filter the results against
@@ -39,11 +45,15 @@ appropriate GstCaps for the data transfer.
- the result caps
+
A pad can ask the peer pad if it supports a given caps. It does this with
-the ACCEPT_CAPS query.
+the ACCEPT_CAPS query. The caps must be fixed.
+The ACCEPT_CAPS query is not required to work recursively, it can simply
+return TRUE if a subsequent CAPS event with those caps would return
+success.
(in) "caps", GST_TYPE_CAPS
- - a GstCaps to check
+ - a GstCaps to check, must be fixed
(out) "result", G_TYPE_BOOLEAN (default FALSE)
- TRUE if the caps are accepted
@@ -56,7 +66,7 @@ When a media format is negotiated, peer elements are notified of the GstCaps
with the CAPS event. The caps must be fixed.
"caps", GST_TYPE_CAPS
- - the negotiated GstCaps
+ - the negotiated GstCaps, must be fixed
Operation
diff --git a/docs/design/part-segments.txt b/docs/design/part-segments.txt
index 88f44ac..56a2e1a 100644
--- a/docs/design/part-segments.txt
+++ b/docs/design/part-segments.txt
@@ -84,7 +84,7 @@ Use case: FLUSHING seek
the stream_time of the seek that was performed.
The stop time is important when the video format contains B frames. The
- video decoder receives a P frame first, which is can decode but not push yet.
+ video decoder receives a P frame first, which it can decode but not push yet.
When it receives a B frame, it can decode the B frame and push the B frame
followed by the previously decoded P frame. If the P frame is outside of the
segment, the decoder knows it should not send the P frame.
diff --git a/docs/faq/Makefile.in b/docs/faq/Makefile.in
index 5b8a72f..c652973 100644
--- a/docs/faq/Makefile.in
+++ b/docs/faq/Makefile.in
@@ -73,6 +73,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = $(srcdir)/../htmlinstall.mak $(srcdir)/../manuals.mak \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/common/upload-doc.mak
@@ -271,6 +272,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -423,7 +428,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/gst/Makefile.in b/docs/gst/Makefile.in
index d2d4c7b..3cd35f6 100644
--- a/docs/gst/Makefile.in
+++ b/docs/gst/Makefile.in
@@ -69,6 +69,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gstreamer.types.in $(top_srcdir)/common/gtk-doc.mak \
$(top_srcdir)/common/upload-doc.mak
@@ -240,6 +241,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -392,7 +397,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 8e7ebfb..6aa4058 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -814,6 +814,7 @@ gst_element_register
gst_element_factory_find
gst_element_factory_get_element_type
gst_element_factory_get_metadata
+gst_element_factory_get_metadata_keys
gst_element_factory_get_num_pad_templates
gst_element_factory_get_uri_type
gst_element_factory_get_uri_protocols
@@ -2042,6 +2043,7 @@ gst_plugin_feature_set_rank
gst_plugin_feature_set_name
gst_plugin_feature_get_rank
gst_plugin_feature_get_name
+gst_plugin_feature_get_plugin
gst_plugin_feature_load
gst_plugin_feature_list_copy
gst_plugin_feature_list_free
@@ -2517,6 +2519,7 @@ GST_TAG_APPLICATION_DATA
GST_TAG_IMAGE_ORIENTATION
gst_tag_register
+gst_tag_register_static
gst_tag_merge_use_first
gst_tag_merge_strings_with_comma
gst_tag_exists
@@ -2530,13 +2533,15 @@ gst_tag_list_new_empty
gst_tag_list_new_valist
gst_tag_list_new_from_string
gst_tag_list_to_string
-gst_is_tag_list
gst_tag_list_is_empty
gst_tag_list_is_equal
gst_tag_list_copy
+gst_tag_list_ref
+gst_tag_list_unref
+gst_tag_list_is_writable
+gst_tag_list_make_writable
gst_tag_list_insert
gst_tag_list_merge
-gst_tag_list_free
gst_tag_list_get_tag_size
gst_tag_list_n_tags
gst_tag_list_nth_tag_name
@@ -2702,6 +2707,7 @@ gst_toc_copy
gst_toc_find_entry
gst_toc_entry_get_start_stop
gst_toc_entry_set_start_stop
+gst_toc_entry_type_get_nick
<SUBSECTION Standard>
GST_TYPE_TOC_ENTRY_TYPE
<SUBSECTION Private>
diff --git a/docs/gst/html/GstBin.html b/docs/gst/html/GstBin.html
index be76ba1..1587b4c 100644
--- a/docs/gst/html/GstBin.html
+++ b/docs/gst/html/GstBin.html
@@ -157,7 +157,7 @@ element is removed from the bin.
<p>
</p>
<div class="refsect2">
-<a name="idp11074672"></a><h3>Notes</h3>
+<a name="idp10089840"></a><h3>Notes</h3>
<p>
A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> internally intercepts every <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> posted by its children and
implements the following default behaviour for each of them:
diff --git a/docs/gst/html/GstElement.html b/docs/gst/html/GstElement.html
index 332a2bf..87250a8 100644
--- a/docs/gst/html/GstElement.html
+++ b/docs/gst/html/GstElement.html
@@ -3473,6 +3473,9 @@ upstream events or a random linked source pad for downstream events.
This function takes owership of the provided event so you should
<a class="link" href="gstreamer-GstEvent.html#gst-event-ref" title="gst_event_ref ()"><code class="function">gst_event_ref()</code></a> it if you want to reuse the event after this call.
</p>
+<p>
+MT safe.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -3488,8 +3491,8 @@ This function takes owership of the provided event so you should
<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 was handled.
-MT safe.</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 was handled. Events that trigger a preroll (such
+as flushing seeks and steps) will emit <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></a>.</td>
</tr>
</tbody>
</table></div>
@@ -3546,8 +3549,8 @@ with <a class="link" href="GstClock.html#GST-MSECOND:CAPS" title="GST_MSECOND"><
<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 operation succeeded (the seek might not always be
-executed instantly though)</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 operation succeeded. Flushing seeks will trigger a
+preroll, which will emit <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></a>.</td>
</tr>
</tbody>
</table></div>
@@ -3569,6 +3572,9 @@ Sends a seek event to an element. See <a class="link" href="gstreamer-GstEvent.h
the parameters. The seek event is sent to the element using
<a class="link" href="GstElement.html#gst-element-send-event" title="gst_element_send_event ()"><code class="function">gst_element_send_event()</code></a>.
</p>
+<p>
+MT safe.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -3607,8 +3613,8 @@ the parameters. The seek event is sent to the element using
<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 was handled.
-MT safe.</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 was handled. Flushing seeks will trigger a
+preroll, which will emit <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-ASYNC-DONE:CAPS"><code class="literal">GST_MESSAGE_ASYNC_DONE</code></a>.</td>
</tr>
</tbody>
</table></div>
diff --git a/docs/gst/html/GstElementFactory.html b/docs/gst/html/GstElementFactory.html
index 720eac0..6b75503 100644
--- a/docs/gst/html/GstElementFactory.html
+++ b/docs/gst/html/GstElementFactory.html
@@ -42,7 +42,7 @@
<pre class="synopsis">
#include &lt;gst/gst.h&gt;
-struct <a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="struct GstElementFactory">GstElementFactory</a>;
+ <a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="GstElementFactory">GstElementFactory</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="GstElementFactory.html#gst-element-register" title="gst_element_register ()">gst_element_register</a> (<em class="parameter"><code><a class="link" href="GstPlugin.html" title="GstPlugin"><span class="type">GstPlugin</span></a> *plugin</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>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> rank</code></em>,
@@ -52,6 +52,8 @@ struct <a class="link" href="GstElementFactory.html#GstElementFacto
(<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</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="GstElementFactory.html#gst-element-factory-get-metadata" title="gst_element_factory_get_metadata ()">gst_element_factory_get_metadata</a> (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</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>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> ** <a class="link" href="GstElementFactory.html#gst-element-factory-get-metadata-keys" title="gst_element_factory_get_metadata_keys ()">gst_element_factory_get_metadata_keys</a>
+ (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</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="GstElementFactory.html#gst-element-factory-get-num-pad-templates" title="gst_element_factory_get_num_pad_templates ()">gst_element_factory_get_num_pad_templates</a>
(<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
<a class="link" href="gstreamer-GstUriHandler.html#GstURIType" title="enum GstURIType"><span class="returnvalue">GstURIType</span></a> <a class="link" href="GstElementFactory.html#gst-element-factory-get-uri-type" title="gst_element_factory_get_uri_type ()">gst_element_factory_get_uri_type</a> (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);
@@ -139,7 +141,7 @@ The following code example shows you how to create a GstFileSrc element.
<p>
</p>
<div class="example">
-<a name="idp19312496"></a><p class="title"><b>Example 6. Using an element factory</b></p>
+<a name="idp17385776"></a><p class="title"><b>Example 6. Using an element factory</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -183,8 +185,8 @@ Last reviewed on 2005-11-23 (0.9.5)
<div class="refsect1">
<a name="GstElementFactory.details"></a><h2>Details</h2>
<div class="refsect2">
-<a name="GstElementFactory-struct"></a><h3>struct GstElementFactory</h3>
-<pre class="programlisting">struct GstElementFactory;</pre>
+<a name="GstElementFactory-struct"></a><h3>GstElementFactory</h3>
+<pre class="programlisting">typedef struct _GstElementFactory GstElementFactory;</pre>
<p>
The opaque <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> data structure.
</p>
@@ -309,6 +311,30 @@ metadata with the given <em class="parameter"><code>key</code></em>.</td>
</div>
<hr>
<div class="refsect2">
+<a name="gst-element-factory-get-metadata-keys"></a><h3>gst_element_factory_get_metadata_keys ()</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_element_factory_get_metadata_keys
+ (<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);</pre>
+<p>
+Get the available keys for the metadata on <em class="parameter"><code>factory</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>factory,</code></em> :</span></p></td>
+<td>a <a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</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-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of key strings, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when
+there is no metadata. 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 needd.</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-element-factory-get-num-pad-templates"></a><h3>gst_element_factory_get_num_pad_templates ()</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_element_factory_get_num_pad_templates
(<em class="parameter"><code><a class="link" href="GstElementFactory.html" title="GstElementFactory"><span class="type">GstElementFactory</span></a> *factory</code></em>);</pre>
diff --git a/docs/gst/html/GstObject.html b/docs/gst/html/GstObject.html
index 13bb8b8..049fed9 100644
--- a/docs/gst/html/GstObject.html
+++ b/docs/gst/html/GstObject.html
@@ -185,7 +185,7 @@ of the object.
<p>
</p>
<div class="refsect2">
-<a name="idp27000992"></a><h3>controlled properties</h3>
+<a name="idp27569216"></a><h3>controlled properties</h3>
<p>
Controlled properties offers a lightweight way to adjust gobject
properties over stream-time. It works by using time-stamped value pairs that
diff --git a/docs/gst/html/GstPad.html b/docs/gst/html/GstPad.html
index 1167786..5487d34 100644
--- a/docs/gst/html/GstPad.html
+++ b/docs/gst/html/GstPad.html
@@ -502,13 +502,14 @@ The direction of a pad.
<pre class="programlisting">typedef enum {
GST_PAD_FLAG_BLOCKED = (GST_OBJECT_FLAG_LAST &lt;&lt; 0),
GST_PAD_FLAG_FLUSHING = (GST_OBJECT_FLAG_LAST &lt;&lt; 1),
- GST_PAD_FLAG_BLOCKING = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
- GST_PAD_FLAG_NEED_PARENT = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
- GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
- GST_PAD_FLAG_PENDING_EVENTS = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
- GST_PAD_FLAG_FIXED_CAPS = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
- GST_PAD_FLAG_PROXY_CAPS = (GST_OBJECT_FLAG_LAST &lt;&lt; 7),
- GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST &lt;&lt; 8),
+ GST_PAD_FLAG_EOS = (GST_OBJECT_FLAG_LAST &lt;&lt; 2),
+ GST_PAD_FLAG_BLOCKING = (GST_OBJECT_FLAG_LAST &lt;&lt; 3),
+ GST_PAD_FLAG_NEED_PARENT = (GST_OBJECT_FLAG_LAST &lt;&lt; 4),
+ GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST &lt;&lt; 5),
+ GST_PAD_FLAG_PENDING_EVENTS = (GST_OBJECT_FLAG_LAST &lt;&lt; 6),
+ GST_PAD_FLAG_FIXED_CAPS = (GST_OBJECT_FLAG_LAST &lt;&lt; 7),
+ GST_PAD_FLAG_PROXY_CAPS = (GST_OBJECT_FLAG_LAST &lt;&lt; 8),
+ GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST &lt;&lt; 9),
/* padding */
GST_PAD_FLAG_LAST = (GST_OBJECT_FLAG_LAST &lt;&lt; 16)
} GstPadFlags;
@@ -526,7 +527,12 @@ Pad state flags
</tr>
<tr>
<td><p><a name="GST-PAD-FLAG-FLUSHING:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_FLUSHING</code></span></p></td>
-<td>is pad refusing buffers
+<td>is pad flushing
+</td>
+</tr>
+<tr>
+<td><p><a name="GST-PAD-FLAG-EOS:CAPS"></a><span class="term"><code class="literal">GST_PAD_FLAG_EOS</code></span></p></td>
+<td>is pad in EOS state
</td>
</tr>
<tr>
diff --git a/docs/gst/html/GstPadTemplate.html b/docs/gst/html/GstPadTemplate.html
index 82811af..f7527bb 100644
--- a/docs/gst/html/GstPadTemplate.html
+++ b/docs/gst/html/GstPadTemplate.html
@@ -132,7 +132,7 @@ or <a class="link" href="GstPad.html#gst-pad-new-from-static-template" title="gs
The following code example shows the code to create a pad from a padtemplate.
</p>
<div class="example">
-<a name="idp21238544"></a><p class="title"><b>Example 11. Create a pad from a padtemplate</b></p>
+<a name="idp12278624"></a><p class="title"><b>Example 11. Create a pad from a padtemplate</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
diff --git a/docs/gst/html/GstPluginFeature.html b/docs/gst/html/GstPluginFeature.html
index 72102c5..d1f0d10 100644
--- a/docs/gst/html/GstPluginFeature.html
+++ b/docs/gst/html/GstPluginFeature.html
@@ -42,7 +42,7 @@
<pre class="synopsis">
#include &lt;gst/gst.h&gt;
-struct <a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="struct GstPluginFeature">GstPluginFeature</a>;
+ <a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="GstPluginFeature">GstPluginFeature</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="GstPluginFeature.html#GstPluginFeatureFilter" title="GstPluginFeatureFilter ()">*GstPluginFeatureFilter</a>) (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</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="GstPluginFeature.html#GstRank" title="enum GstRank">GstRank</a>;
@@ -52,6 +52,7 @@ enum <a class="link" href="GstPluginFeature.html#GstRank" title="
name)
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-rank" title="gst_plugin_feature_get_rank ()">gst_plugin_feature_get_rank</a> (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);
#define <a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-name" title="gst_plugin_feature_get_name()">gst_plugin_feature_get_name</a> (feature)
+<a class="link" href="GstPlugin.html" title="GstPlugin"><span class="returnvalue">GstPlugin</span></a> * <a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-plugin" title="gst_plugin_feature_get_plugin ()">gst_plugin_feature_get_plugin</a> (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);
<a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="returnvalue">GstPluginFeature</span></a> * <a class="link" href="GstPluginFeature.html#gst-plugin-feature-load" title="gst_plugin_feature_load ()">gst_plugin_feature_load</a> (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</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="GstPluginFeature.html#gst-plugin-feature-list-copy" title="gst_plugin_feature_list_copy ()">gst_plugin_feature_list_copy</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> *list</code></em>);
<span class="returnvalue">void</span> <a class="link" href="GstPluginFeature.html#gst-plugin-feature-list-free" title="gst_plugin_feature_list_free ()">gst_plugin_feature_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> *list</code></em>);
@@ -85,8 +86,8 @@ This is a base class for anything that can be added to a <a class="link" href="G
<div class="refsect1">
<a name="GstPluginFeature.details"></a><h2>Details</h2>
<div class="refsect2">
-<a name="GstPluginFeature-struct"></a><h3>struct GstPluginFeature</h3>
-<pre class="programlisting">struct GstPluginFeature;</pre>
+<a name="GstPluginFeature-struct"></a><h3>GstPluginFeature</h3>
+<pre class="programlisting">typedef struct _GstPluginFeature GstPluginFeature;</pre>
<p>
Opaque <a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> structure.
</p>
@@ -259,6 +260,29 @@ For a nameless plugin feature, this returns NULL.
</div>
<hr>
<div class="refsect2">
+<a name="gst-plugin-feature-get-plugin"></a><h3>gst_plugin_feature_get_plugin ()</h3>
+<pre class="programlisting"><a class="link" href="GstPlugin.html" title="GstPlugin"><span class="returnvalue">GstPlugin</span></a> * gst_plugin_feature_get_plugin (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);</pre>
+<p>
+Get the plugin that provides this feature.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>feature</code></em> :</span></p></td>
+<td>a feature</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the plugin that provides this feature, or <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
+Unref with <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_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>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-plugin-feature-load"></a><h3>gst_plugin_feature_load ()</h3>
<pre class="programlisting"><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="returnvalue">GstPluginFeature</span></a> * gst_plugin_feature_load (<em class="parameter"><code><a class="link" href="GstPluginFeature.html" title="GstPluginFeature"><span class="type">GstPluginFeature</span></a> *feature</code></em>);</pre>
<p>
diff --git a/docs/gst/html/GstTagSetter.html b/docs/gst/html/GstTagSetter.html
index 1e65197..f672c21 100644
--- a/docs/gst/html/GstTagSetter.html
+++ b/docs/gst/html/GstTagSetter.html
@@ -49,7 +49,7 @@
struct <a class="link" href="GstTagSetter.html#GstTagSetterInterface" title="struct GstTagSetterInterface">GstTagSetterInterface</a>;
<span class="returnvalue">void</span> <a class="link" href="GstTagSetter.html#gst-tag-setter-reset-tags" title="gst_tag_setter_reset_tags ()">gst_tag_setter_reset_tags</a> (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
<span class="returnvalue">void</span> <a class="link" href="GstTagSetter.html#gst-tag-setter-merge-tags" title="gst_tag_setter_merge_tags ()">gst_tag_setter_merge_tags</a> (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
<span class="returnvalue">void</span> <a class="link" href="GstTagSetter.html#gst-tag-setter-add-tags" title="gst_tag_setter_add_tags ()">gst_tag_setter_add_tags</a> (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>,
@@ -72,7 +72,7 @@ struct <a class="link" href="GstTagSetter.html#GstTagSetterInterfac
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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><span class="type">va_list</span> var_args</code></em>);
-const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="GstTagSetter.html#gst-tag-setter-get-tag-list" title="gst_tag_setter_get_tag_list ()">gst_tag_setter_get_tag_list</a> (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
+const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="GstTagSetter.html#gst-tag-setter-get-tag-list" title="gst_tag_setter_get_tag_list ()">gst_tag_setter_get_tag_list</a> (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
<span class="returnvalue">void</span> <a class="link" href="GstTagSetter.html#gst-tag-setter-set-tag-merge-mode" title="gst_tag_setter_set_tag_merge_mode ()">gst_tag_setter_set_tag_merge_mode</a> (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
<a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="returnvalue">GstTagMergeMode</span></a> <a class="link" href="GstTagSetter.html#gst-tag-setter-get-tag-merge-mode" title="gst_tag_setter_get_tag_merge_mode ()">gst_tag_setter_get_tag_merge_mode</a> (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);
@@ -224,7 +224,7 @@ state-change handler.
<div class="refsect2">
<a name="gst-tag-setter-merge-tags"></a><h3>gst_tag_setter_merge_tags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_setter_merge_tags (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
<p>
Merges the given list into the setter's list using the given mode.
@@ -422,7 +422,7 @@ The list must be terminated with NULL.
<hr>
<div class="refsect2">
<a name="gst-tag-setter-get-tag-list"></a><h3>gst_tag_setter_get_tag_list ()</h3>
-<pre class="programlisting">const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_setter_get_tag_list (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);</pre>
+<pre class="programlisting">const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_setter_get_tag_list (<em class="parameter"><code><a class="link" href="GstTagSetter.html" title="GstTagSetter"><span class="type">GstTagSetter</span></a> *setter</code></em>);</pre>
<p>
Returns the current list of tags the setter uses. The list should not be
modified or freed.
diff --git a/docs/gst/html/GstTypeFindFactory.html b/docs/gst/html/GstTypeFindFactory.html
index af4e90c..6816cca 100644
--- a/docs/gst/html/GstTypeFindFactory.html
+++ b/docs/gst/html/GstTypeFindFactory.html
@@ -72,7 +72,7 @@ the section <GTKDOCLINK HREF="gstreamer-Writing-typefind-functions">
<p>
</p>
<div class="example">
-<a name="idp33150528"></a><p class="title"><b>Example 13. how to write a simple typefinder</b></p>
+<a name="idp27362848"></a><p class="title"><b>Example 13. how to write a simple typefinder</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
diff --git a/docs/gst/html/api-index-full.html b/docs/gst/html/api-index-full.html
index b651c45..c2da1fe 100644
--- a/docs/gst/html/api-index-full.html
+++ b/docs/gst/html/api-index-full.html
@@ -1739,7 +1739,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="struct GstElementFactory">GstElementFactory</a>, struct in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
+<a class="link" href="GstElementFactory.html#GstElementFactory-struct" title="GstElementFactory">GstElementFactory</a>, struct in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
</dt>
<dd></dd>
<dt>
@@ -1847,6 +1847,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="GstElementFactory.html#gst-element-factory-get-metadata-keys" title="gst_element_factory_get_metadata_keys ()">gst_element_factory_get_metadata_keys</a>, function in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="GstElementFactory.html#gst-element-factory-get-num-pad-templates" title="gst_element_factory_get_num_pad_templates ()">gst_element_factory_get_num_pad_templates</a>, function in <a class="link" href="GstElementFactory.html" title="GstElementFactory">GstElementFactory</a>
</dt>
<dd></dd>
@@ -2730,10 +2734,6 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-is-tag-list" title="gst_is_tag_list ()">gst_is_tag_list</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator">GstIterator</a>, struct in <a class="link" href="gstreamer-GstIterator.html" title="GstIterator">GstIterator</a>
</dt>
<dd></dd>
@@ -4439,7 +4439,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="struct GstPluginFeature">GstPluginFeature</a>, struct in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
+<a class="link" href="GstPluginFeature.html#GstPluginFeature-struct" title="GstPluginFeature">GstPluginFeature</a>, struct in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
</dt>
<dd></dd>
<dt>
@@ -4491,6 +4491,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-plugin" title="gst_plugin_feature_get_plugin ()">gst_plugin_feature_get_plugin</a>, function in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="GstPluginFeature.html#gst-plugin-feature-get-rank" title="gst_plugin_feature_get_rank ()">gst_plugin_feature_get_rank</a>, function in <a class="link" href="GstPluginFeature.html" title="GstPluginFeature">GstPluginFeature</a>
</dt>
<dd></dd>
@@ -5887,7 +5891,7 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>, struct in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList">GstTagList</a>, struct in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
</dt>
<dd></dd>
<dt>
@@ -6187,10 +6191,6 @@
</dt>
<dd></dd>
<dt>
-<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()">gst_tag_list_free</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
-</dt>
-<dd></dd>
-<dt>
<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
</dt>
<dd></dd>
@@ -6307,6 +6307,14 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-writable" title="gst_tag_list_is_writable()">gst_tag_list_is_writable</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()">gst_tag_list_make_writable</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-merge" title="gst_tag_list_merge ()">gst_tag_list_merge</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
</dt>
<dd></dd>
@@ -6339,6 +6347,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()">gst_tag_list_ref</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-remove-tag" title="gst_tag_list_remove_tag ()">gst_tag_list_remove_tag</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
</dt>
<dd></dd>
@@ -6347,6 +6359,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()">gst_tag_list_unref</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gstreamer-GstTagList.html#GST-TAG-LOCATION:CAPS" title="GST_TAG_LOCATION">GST_TAG_LOCATION</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
</dt>
<dd></dd>
@@ -6395,6 +6411,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-register-static" title="gst_tag_register_static ()">gst_tag_register_static</a>, function in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gstreamer-GstTagList.html#GST-TAG-SERIAL:CAPS" title="GST_TAG_SERIAL">GST_TAG_SERIAL</a>, macro in <a class="link" href="gstreamer-GstTagList.html" title="GstTagList">GstTagList</a>
</dt>
<dd></dd>
@@ -6707,6 +6727,10 @@
</dt>
<dd></dd>
<dt>
+<a class="link" href="gstreamer-GstToc.html#gst-toc-entry-type-get-nick" title="gst_toc_entry_type_get_nick ()">gst_toc_entry_type_get_nick</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
+</dt>
+<dd></dd>
+<dt>
<a class="link" href="gstreamer-GstToc.html#gst-toc-find-entry" title="gst_toc_find_entry ()">gst_toc_find_entry</a>, function in <a class="link" href="gstreamer-GstToc.html" title="GstToc">GstToc</a>
</dt>
<dd></dd>
diff --git a/docs/gst/html/gst-building.html b/docs/gst/html/gst-building.html
index 54d9fa8..be3ad7b 100644
--- a/docs/gst/html/gst-building.html
+++ b/docs/gst/html/gst-building.html
@@ -31,7 +31,7 @@ How to build the GStreamer framework and applications using it.
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp11675168"></a><h2>Building GStreamer on UNIX</h2>
+<a name="idp7256800"></a><h2>Building GStreamer on UNIX</h2>
<p>
On UNIX, GStreamer uses the standard GNU build system,
using <span class="application">autoconf</span> for package
@@ -92,7 +92,7 @@ How to build the GStreamer framework and applications using it.
</p>
</div>
<div class="refsect1">
-<a name="idp10432048"></a><h2>Building GStreamer Applications</h2>
+<a name="idp9676688"></a><h2>Building GStreamer Applications</h2>
<p>
Applications and libraries can use <span class="command"><strong>pkg-config</strong></span> to get all the
needed compiler and linker flags to build against GStreamer. Please note that
diff --git a/docs/gst/html/gst-running.html b/docs/gst/html/gst-running.html
index a7fe706..764295b 100644
--- a/docs/gst/html/gst-running.html
+++ b/docs/gst/html/gst-running.html
@@ -31,9 +31,9 @@ How to run and debug your GStreamer application
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7942416"></a><h2>Running and debugging GStreamer Applications</h2>
+<a name="idp7869392"></a><h2>Running and debugging GStreamer Applications</h2>
<div class="refsect2">
-<a name="idp8901600"></a><h3>Environment variables</h3>
+<a name="idp11982640"></a><h3>Environment variables</h3>
<p>
GStreamer inspects a few of environment variables in addition to standard
variables like <code class="envar">LANG</code>, <code class="envar">PATH</code> or <code class="envar">HOME</code>.
diff --git a/docs/gst/html/gstreamer-Gst.html b/docs/gst/html/gstreamer-Gst.html
index 06c170d..bd6c4a1 100644
--- a/docs/gst/html/gstreamer-Gst.html
+++ b/docs/gst/html/gstreamer-Gst.html
@@ -83,7 +83,7 @@ options, as shown in the following example.
<p>
</p>
<div class="example">
-<a name="idp7531552"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
+<a name="idp7414080"></a><p class="title"><b>Example 1. Initializing the gstreamer library</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -119,7 +119,7 @@ You can also use GOption to initialize your own parameters as shown in
the next code fragment:
</p>
<div class="example">
-<a name="idp10114464"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
+<a name="idp12345008"></a><p class="title"><b>Example 2. Initializing own parameters when initializing gstreamer</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
diff --git a/docs/gst/html/gstreamer-GstBuffer.html b/docs/gst/html/gstreamer-GstBuffer.html
index ffe7688..153939c 100644
--- a/docs/gst/html/gstreamer-GstBuffer.html
+++ b/docs/gst/html/gstreamer-GstBuffer.html
@@ -191,7 +191,7 @@ The following example creates a buffer that can hold a given video frame
with a given width, height and bits per plane.
</p>
<div class="example">
-<a name="idp12554816"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
+<a name="idp13953280"></a><p class="title"><b>Example 3. Creating a buffer for a video frame</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -229,7 +229,7 @@ to create a buffer with preallocated data of a given size.
<p>
Buffers can contain a list of <a class="link" href="gstreamer-GstMemory.html#GstMemory" title="struct GstMemory"><span class="type">GstMemory</span></a> objects. You can retrieve how many
memory objects with <a class="link" href="gstreamer-GstBuffer.html#gst-buffer-n-memory" title="gst_buffer_n_memory ()"><code class="function">gst_buffer_n_memory()</code></a> and you can get a pointer
-to memory with <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBuffer.html#gst-buffer-peek-memory"><code class="function">gst_buffer_peek_memory()</code></a>
+to memory with <code class="function">gst_buffer_peek_memory()</code>
</p>
<p>
A buffer will usually have timestamps, and a duration, but neither of these
diff --git a/docs/gst/html/gstreamer-GstBufferPool.html b/docs/gst/html/gstreamer-GstBufferPool.html
index 57f202b..537aeb7 100644
--- a/docs/gst/html/gstreamer-GstBufferPool.html
+++ b/docs/gst/html/gstreamer-GstBufferPool.html
@@ -628,7 +628,7 @@ nothing and return FALSE.
<p>
<em class="parameter"><code>config</code></em> is a <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="struct GstStructure"><span class="type">GstStructure</span></a> that contains the configuration parameters for
the pool. A default and mandatory set of parameters can be configured with
-<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstBufferPool.html#gst-buffer-pool-config-set"><code class="function">gst_buffer_pool_config_set()</code></a>. This function takes ownership of <em class="parameter"><code>config</code></em>.
+<code class="function">gst_buffer_pool_config_set()</code>. This function takes ownership of <em class="parameter"><code>config</code></em>.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
diff --git a/docs/gst/html/gstreamer-GstCaps.html b/docs/gst/html/gstreamer-GstCaps.html
index 32e8d20..ed50c3c 100644
--- a/docs/gst/html/gstreamer-GstCaps.html
+++ b/docs/gst/html/gstreamer-GstCaps.html
@@ -160,7 +160,7 @@ A <a class="link" href="gstreamer-GstCaps.html#GstCaps" title="struct GstCaps"><
<p>
</p>
<div class="example">
-<a name="idp15658784"></a><p class="title"><b>Example 4. Creating caps</b></p>
+<a name="idp16595824"></a><p class="title"><b>Example 4. Creating caps</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
diff --git a/docs/gst/html/gstreamer-GstEvent.html b/docs/gst/html/gstreamer-GstEvent.html
index dbb850c..0dfda61 100644
--- a/docs/gst/html/gstreamer-GstEvent.html
+++ b/docs/gst/html/gstreamer-GstEvent.html
@@ -93,9 +93,10 @@ const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="str
<em class="parameter"><code>const <a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> **segment</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstEvent.html#gst-event-copy-segment" title="gst_event_copy_segment ()">gst_event_copy_segment</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstSegment.html#GstSegment" title="struct GstSegment"><span class="type">GstSegment</span></a> *segment</code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_tag</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-new-tag" title="gst_event_new_tag ()">gst_event_new_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> *name</code></em>,
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-tag" title="gst_event_parse_tag ()">gst_event_parse_tag</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);
<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-new-buffer-size" title="gst_event_new_buffer_size ()">gst_event_new_buffer_size</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
<em class="parameter"><code><span class="type">gint64</span> minsize</code></em>,
<em class="parameter"><code><span class="type">gint64</span> maxsize</code></em>,
@@ -147,7 +148,8 @@ enum <a class="link" href="gstreamer-GstEvent.html#GstSeekFlags"
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *rate</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> *flush</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> *intermediate</code></em>);
-<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-new-sink-message" title="gst_event_new_sink_message ()">gst_event_new_sink_message</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);
+<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-new-sink-message" title="gst_event_new_sink_message ()">gst_event_new_sink_message</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><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstEvent.html#gst-event-parse-sink-message" title="gst_event_parse_sink_message ()">gst_event_parse_sink_message</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> **msg</code></em>);
<a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * <a class="link" href="gstreamer-GstEvent.html#gst-event-new-reconfigure" title="gst_event_new_reconfigure ()">gst_event_new_reconfigure</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
@@ -216,7 +218,7 @@ To do that <a class="link" href="gstreamer-GstEvent.html#gst-event-new-seek" tit
the needed parameters to specify seeking time and mode.
</p>
<div class="example">
-<a name="idp20931696"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
+<a name="idp21515712"></a><p class="title"><b>Example 8. performing a seek on a pipeline</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -398,7 +400,7 @@ the given flags
GST_EVENT_BUFFERSIZE = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
GST_EVENT_SINK_MESSAGE = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
GST_EVENT_EOS = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
- GST_EVENT_TOC = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+ GST_EVENT_TOC = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
/* non-sticky downstream serialized */
GST_EVENT_SEGMENT_DONE = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
@@ -1500,14 +1502,24 @@ given by <em class="parameter"><code>segment</code></em>.
<hr>
<div class="refsect2">
<a name="gst-event-new-tag"></a><h3>gst_event_new_tag ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * gst_event_new_tag (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * gst_event_new_tag (<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><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
<p>
Generates a metadata tag event from the given <em class="parameter"><code>taglist</code></em>.
</p>
+<p>
+Since the TAG event has the <a class="link" href="gstreamer-GstEvent.html#GST-EVENT-TYPE-STICKY-MULTI:CAPS"><code class="literal">GST_EVENT_TYPE_STICKY_MULTI</code></a> flag set, the
+<em class="parameter"><code>name</code></em> will be used to keep track of multiple tag events.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name of the event. <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>taglist</code></em> :</span></p></td>
<td>metadata list. The event will take ownership
of the taglist. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
@@ -1525,7 +1537,7 @@ of the taglist. <span class="annotation">[<acronym title="Free data after the co
<div class="refsect2">
<a name="gst-event-parse-tag"></a><h3>gst_event_parse_tag ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_event_parse_tag (<em class="parameter"><code><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="type">GstEvent</span></a> *event</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
<p>
Parses a tag <em class="parameter"><code>event</code></em> and stores the results in the given <em class="parameter"><code>taglist</code></em> location.
No reference to the taglist will be returned, it remains valid only until
@@ -1994,8 +2006,8 @@ from the newly configured start position.
</p>
<p>
For negative rates, playback will start from the newly configured stop
-position (if any). If the stop position if updated, it must be different from
--1 for negative rates.
+position (if any). If the stop position is updated, it must be different from
+-1 (<a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>) for negative rates.
</p>
<p>
It is not possible to seek relative to the current playback position, to do
@@ -2289,16 +2301,24 @@ boolean in. <span class="annotation">[<acronym title="Parameter for returning re
<hr>
<div class="refsect2">
<a name="gst-event-new-sink-message"></a><h3>gst_event_new_sink_message ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * gst_event_new_sink_message (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstEvent.html#GstEvent" title="struct GstEvent"><span class="returnvalue">GstEvent</span></a> * gst_event_new_sink_message (<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><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
<p>
Create a new sink-message event. The purpose of the sink-message event is
to instruct a sink to post the message contained in the event synchronized
with the stream.
</p>
+<p>
+<em class="parameter"><code>name</code></em> is used to store multiple sticky events on one pad.
+</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>a name for the event</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="parameter"><code>msg</code></em> :</span></p></td>
<td>the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> to be posted. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
</td>
@@ -2637,6 +2657,10 @@ inform elements that some kind of the TOC was found.
<col align="left" valign="top">
<tbody>
<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>a name for the event</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="parameter"><code>toc</code></em> :</span></p></td>
<td>
<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> structure.</td>
diff --git a/docs/gst/html/gstreamer-GstGError.html b/docs/gst/html/gstreamer-GstGError.html
index 95800d6..f82a9e1 100644
--- a/docs/gst/html/gstreamer-GstGError.html
+++ b/docs/gst/html/gstreamer-GstGError.html
@@ -115,7 +115,7 @@ Elements throw errors using the <a class="link" href="GstElement.html#GST-ELEMEN
<p>
</p>
<div class="example">
-<a name="idp10587088"></a><p class="title"><b>Example 7. Throwing an error</b></p>
+<a name="idp6925664"></a><p class="title"><b>Example 7. Throwing an error</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
diff --git a/docs/gst/html/gstreamer-GstIterator.html b/docs/gst/html/gstreamer-GstIterator.html
index 5915092..82147a4 100644
--- a/docs/gst/html/gstreamer-GstIterator.html
+++ b/docs/gst/html/gstreamer-GstIterator.html
@@ -122,7 +122,7 @@ The basic use pattern of an iterator is as follows:
<p>
</p>
<div class="example">
-<a name="idp21102944"></a><p class="title"><b>Example 9. Using an iterator</b></p>
+<a name="idp22563824"></a><p class="title"><b>Example 9. Using an iterator</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
diff --git a/docs/gst/html/gstreamer-GstMessage.html b/docs/gst/html/gstreamer-GstMessage.html
index 0e9d89b..c4cf15f 100644
--- a/docs/gst/html/gstreamer-GstMessage.html
+++ b/docs/gst/html/gstreamer-GstMessage.html
@@ -84,9 +84,9 @@ const <a class="link" href="gstreamer-GstStructure.html#GstStructure" title="str
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **gerror</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> **debug</code></em>);
<a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> * <a class="link" href="gstreamer-GstMessage.html#gst-message-new-tag" title="gst_message_new_tag ()">gst_message_new_tag</a> (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-tag" title="gst_message_parse_tag ()">gst_message_parse_tag</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **tag_list</code></em>);
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **tag_list</code></em>);
<a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> * <a class="link" href="gstreamer-GstMessage.html#gst-message-new-buffering" title="gst_message_new_buffering ()">gst_message_new_buffering</a> (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><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#gint"><span class="type">gint</span></a> percent</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstMessage.html#gst-message-parse-buffering" title="gst_message_parse_buffering ()">gst_message_parse_buffering</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
@@ -273,7 +273,7 @@ The basic use pattern of posting a message on a <a class="link" href="GstBus.htm
<p>
</p>
<div class="example">
-<a name="idp29547376"></a><p class="title"><b>Example 10. Posting a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a></b></p>
+<a name="idp30136752"></a><p class="title"><b>Example 10. Posting a <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a></b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -1265,7 +1265,7 @@ or NULL. <span class="annotation">[<acronym title="Parameter for returning resul
<div class="refsect2">
<a name="gst-message-new-tag"></a><h3>gst_message_new_tag ()</h3>
<pre class="programlisting"><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="returnvalue">GstMessage</span></a> * gst_message_new_tag (<em class="parameter"><code><a class="link" href="GstObject.html" title="GstObject"><span class="type">GstObject</span></a> *src</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *tag_list</code></em>);</pre>
<p>
Create a new tag message. The message will take ownership of the tag list.
The message is posted by elements that discovered a new taglist.
@@ -1296,7 +1296,7 @@ MT safe. <span class="annotation">[<acronym title="Free data after the code is d
<div class="refsect2">
<a name="gst-message-parse-tag"></a><h3>gst_message_parse_tag ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_message_parse_tag (<em class="parameter"><code><a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> *message</code></em>,
- <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> **tag_list</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> **tag_list</code></em>);</pre>
<p>
Extracts the tag list from the GstMessage. The tag list returned in the
output argument is a copy; the caller must free it when done.
@@ -1330,7 +1330,7 @@ Typical usage of this function might be:
<span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstMessage.html#gst-message-parse-tag">gst_message_parse_tag</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">, &amp;</span>tags<span class="gtkdoc opt">);</span>
<span class="function"><a href="http://library.gnome.org/devel/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Got tags from element %s</span><span class="gtkdoc esc">\n</span><span class="string">&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html#GST-OBJECT-NAME:CAPS">GST_OBJECT_NAME</a></span> <span class="gtkdoc opt">(</span>msg<span class="gtkdoc opt">-&gt;</span>src<span class="gtkdoc opt">));</span>
<span class="function">handle_tags</span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
- <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#gst-tag-list-free">gst_tag_list_free</a></span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
+ <span class="function"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#gst-tag-list-unref">gst_tag_list_unref</a></span> <span class="gtkdoc opt">(</span>tags<span class="gtkdoc opt">);</span>
<span class="keyword">break</span><span class="gtkdoc opt">;</span>
<span class="gtkdoc opt">}</span>
<span class="gtkdoc opt">...</span>
@@ -2871,7 +2871,7 @@ MT safe.</td>
<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> **toc</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> *updated</code></em>);</pre>
<p>
-Extract the TOC from the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>. The TOC returned in the
+Extract thef TOC from the <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a>. The TOC returned in the
output argument is a copy; the caller must free it with
<a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()"><code class="function">gst_toc_free()</code></a> when done.
</p>
diff --git a/docs/gst/html/gstreamer-GstQuery.html b/docs/gst/html/gstreamer-GstQuery.html
index 8e70d71..0e8a04a 100644
--- a/docs/gst/html/gstreamer-GstQuery.html
+++ b/docs/gst/html/gstreamer-GstQuery.html
@@ -287,7 +287,7 @@ The following example shows how to query the duration of a pipeline:
<p>
</p>
<div class="example">
-<a name="idp39112944"></a><p class="title"><b>Example 12. Query duration on a pipeline</b></p>
+<a name="idp39385888"></a><p class="title"><b>Example 12. Query duration on a pipeline</b></p>
<div class="example-contents">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -1694,7 +1694,7 @@ or NULL. <span class="annotation">[<acronym title="Parameter for returning resul
Constructs a new query object for querying the caps.
</p>
<p>
-The CAPS query should return the* allowable caps for a pad in the context
+The CAPS query should return the allowable caps for a pad in the context
of the element's state, its link to other elements, and the devices or files
it has opened. These caps must be a subset of the pad template caps. In the
NULL state with no links, the CAPS query should ideally return the same caps
@@ -1709,6 +1709,11 @@ the CAPS query should return the most specific caps it reasonably can, since thi
helps with autoplugging.
</p>
<p>
+The <em class="parameter"><code>filter</code></em> is used to restrict the result caps, only the caps matching
+<em class="parameter"><code>filter</code></em> should be returned from the CAPS query. Specifying a filter might
+greatly reduce the amount of processing an element needs to do.
+</p>
+<p>
Free-function: gst_query_unref
</p>
<div class="variablelist"><table border="0">
diff --git a/docs/gst/html/gstreamer-GstStructure.html b/docs/gst/html/gstreamer-GstStructure.html
index e7be901..32ad2d4 100644
--- a/docs/gst/html/gstreamer-GstStructure.html
+++ b/docs/gst/html/gstreamer-GstStructure.html
@@ -2061,8 +2061,9 @@ Free-function: g_free
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>(transfer full)L a pointer to string allocated by <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-malloc"><code class="function">g_malloc()</code></a>.
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</td>
+<td>a pointer to string allocated by <a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-malloc"><code class="function">g_malloc()</code></a>.
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage. <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>
diff --git a/docs/gst/html/gstreamer-GstTagList.html b/docs/gst/html/gstreamer-GstTagList.html
index ece4620..64d1c15 100644
--- a/docs/gst/html/gstreamer-GstTagList.html
+++ b/docs/gst/html/gstreamer-GstTagList.html
@@ -40,10 +40,10 @@
<pre class="synopsis">
#include &lt;gst/gst.h&gt;
- <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList">GstTagList</a>;
+struct <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList">GstTagList</a>;
enum <a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode">GstTagMergeMode</a>;
enum <a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag">GstTagFlag</a>;
-<span class="returnvalue">void</span> (<a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()">*GstTagForeachFunc</a>) (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> (<a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()">*GstTagForeachFunc</a>) (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
<span class="returnvalue">void</span> (<a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()">*GstTagMergeFunc</a>) (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
@@ -134,6 +134,12 @@ enum <a class="link" href="gstreamer-GstTagList.html#GstTagFlag"
<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> *nick</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> *blurb</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()"><span class="type">GstTagMergeFunc</span></a> func</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-register-static" title="gst_tag_register_static ()">gst_tag_register_static</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><a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag"><span class="type">GstTagFlag</span></a> flag</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> 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> *nick</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> *blurb</code></em>,
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()"><span class="type">GstTagMergeFunc</span></a> func</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-merge-use-first" title="gst_tag_merge_use_first ()">gst_tag_merge_use_first</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *src</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma" title="gst_tag_merge_strings_with_comma ()">gst_tag_merge_strings_with_comma</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
@@ -144,145 +150,147 @@ const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.htm
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="gstreamer-GstTagList.html#gst-tag-get-description" title="gst_tag_get_description ()">gst_tag_get_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> *tag</code></em>);
<a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag"><span class="returnvalue">GstTagFlag</span></a> <a class="link" href="gstreamer-GstTagList.html#gst-tag-get-flag" title="gst_tag_get_flag ()">gst_tag_get_flag</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> *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="gstreamer-GstTagList.html#gst-tag-is-fixed" title="gst_tag_is_fixed ()">gst_tag_is_fixed</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> *tag</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()">gst_tag_list_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> *tag</code></em>,
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()">gst_tag_list_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> *tag</code></em>,
<em class="parameter"><code>...</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-empty" title="gst_tag_list_new_empty ()">gst_tag_list_new_empty</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-valist" title="gst_tag_list_new_valist ()">gst_tag_list_new_valist</a> (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-from-string" title="gst_tag_list_new_from_string ()">gst_tag_list_new_from_string</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>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()">gst_tag_list_to_string</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-is-tag-list" title="gst_is_tag_list ()">gst_is_tag_list</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> p</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="gstreamer-GstTagList.html#gst-tag-list-is-empty" title="gst_tag_list_is_empty ()">gst_tag_list_is_empty</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-is-equal" title="gst_tag_list_is_equal ()">gst_tag_list_is_equal</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-copy" title="gst_tag_list_copy ()">gst_tag_list_copy</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-insert" title="gst_tag_list_insert ()">gst_tag_list_insert</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-empty" title="gst_tag_list_new_empty ()">gst_tag_list_new_empty</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-valist" title="gst_tag_list_new_valist ()">gst_tag_list_new_valist</a> (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new-from-string" title="gst_tag_list_new_from_string ()">gst_tag_list_new_from_string</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>);
+<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-to-string" title="gst_tag_list_to_string ()">gst_tag_list_to_string</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-is-empty" title="gst_tag_list_is_empty ()">gst_tag_list_is_empty</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-is-equal" title="gst_tag_list_is_equal ()">gst_tag_list_is_equal</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-copy" title="gst_tag_list_copy ()">gst_tag_list_copy</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()">gst_tag_list_ref</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()">gst_tag_list_unref</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);
+#define <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-is-writable" title="gst_tag_list_is_writable()">gst_tag_list_is_writable</a> (taglist)
+#define <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()">gst_tag_list_make_writable</a> (taglist)
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-insert" title="gst_tag_list_insert ()">gst_tag_list_insert</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
-<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-merge" title="gst_tag_list_merge ()">gst_tag_list_merge</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
+<a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-merge" title="gst_tag_list_merge ()">gst_tag_list_merge</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()">gst_tag_list_free</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</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="gstreamer-GstTagList.html#gst-tag-list-get-tag-size" title="gst_tag_list_get_tag_size ()">gst_tag_list_get_tag_size</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</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="gstreamer-GstTagList.html#gst-tag-list-get-tag-size" title="gst_tag_list_get_tag_size ()">gst_tag_list_get_tag_size</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-n-tags" title="gst_tag_list_n_tags ()">gst_tag_list_n_tags</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name" title="gst_tag_list_nth_tag_name ()">gst_tag_list_nth_tag_name</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-n-tags" title="gst_tag_list_n_tags ()">gst_tag_list_n_tags</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name" title="gst_tag_list_nth_tag_name ()">gst_tag_list_nth_tag_name</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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#guint"><span class="type">guint</span></a> index</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add" title="gst_tag_list_add ()">gst_tag_list_add</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add" title="gst_tag_list_add ()">gst_tag_list_add</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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>...</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-value" title="gst_tag_list_add_value ()">gst_tag_list_add_value</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-value" title="gst_tag_list_add_value ()">gst_tag_list_add_value</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-values" title="gst_tag_list_add_values ()">gst_tag_list_add_values</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-values" title="gst_tag_list_add_values ()">gst_tag_list_add_values</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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>...</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist" title="gst_tag_list_add_valist ()">gst_tag_list_add_valist</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist" title="gst_tag_list_add_valist ()">gst_tag_list_add_valist</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist-values" title="gst_tag_list_add_valist_values ()">gst_tag_list_add_valist_values</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-add-valist-values" title="gst_tag_list_add_valist_values ()">gst_tag_list_add_valist_values</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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><span class="type">va_list</span> var_args</code></em>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-remove-tag" title="gst_tag_list_remove_tag ()">gst_tag_list_remove_tag</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-remove-tag" title="gst_tag_list_remove_tag ()">gst_tag_list_remove_tag</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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>);
-<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-foreach" title="gst_tag_list_foreach ()">gst_tag_list_foreach</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-foreach" title="gst_tag_list_foreach ()">gst_tag_list_foreach</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()"><span class="type">GstTagForeachFunc</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>);
-const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-value-index" title="gst_tag_list_get_value_index ()">gst_tag_list_get_value_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> * <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-value-index" title="gst_tag_list_get_value_index ()">gst_tag_list_get_value_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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="gstreamer-GstTagList.html#gst-tag-list-copy-value" title="gst_tag_list_copy_value ()">gst_tag_list_copy_value</a> (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-boolean" title="gst_tag_list_get_boolean ()">gst_tag_list_get_boolean</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-boolean-index" title="gst_tag_list_get_boolean_index ()">gst_tag_list_get_boolean_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-boolean-index" title="gst_tag_list_get_boolean_index ()">gst_tag_list_get_boolean_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-int" title="gst_tag_list_get_int ()">gst_tag_list_get_int</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-int" title="gst_tag_list_get_int ()">gst_tag_list_get_int</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-int-index" title="gst_tag_list_get_int_index ()">gst_tag_list_get_int_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-int-index" title="gst_tag_list_get_int_index ()">gst_tag_list_get_int_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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 href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-uint" title="gst_tag_list_get_uint ()">gst_tag_list_get_uint</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-uint" title="gst_tag_list_get_uint ()">gst_tag_list_get_uint</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-uint-index" title="gst_tag_list_get_uint_index ()">gst_tag_list_get_uint_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-uint-index" title="gst_tag_list_get_uint_index ()">gst_tag_list_get_uint_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-int64" title="gst_tag_list_get_int64 ()">gst_tag_list_get_int64</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-int64" title="gst_tag_list_get_int64 ()">gst_tag_list_get_int64</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><span class="type">gint64</span> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-int64-index" title="gst_tag_list_get_int64_index ()">gst_tag_list_get_int64_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-int64-index" title="gst_tag_list_get_int64_index ()">gst_tag_list_get_int64_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><span class="type">gint64</span> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-uint64" title="gst_tag_list_get_uint64 ()">gst_tag_list_get_uint64</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-uint64" title="gst_tag_list_get_uint64 ()">gst_tag_list_get_uint64</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><span class="type">guint64</span> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-uint64-index" title="gst_tag_list_get_uint64_index ()">gst_tag_list_get_uint64_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-uint64-index" title="gst_tag_list_get_uint64_index ()">gst_tag_list_get_uint64_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><span class="type">guint64</span> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-float" title="gst_tag_list_get_float ()">gst_tag_list_get_float</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-float" title="gst_tag_list_get_float ()">gst_tag_list_get_float</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-float-index" title="gst_tag_list_get_float_index ()">gst_tag_list_get_float_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-float-index" title="gst_tag_list_get_float_index ()">gst_tag_list_get_float_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-double" title="gst_tag_list_get_double ()">gst_tag_list_get_double</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-double" title="gst_tag_list_get_double ()">gst_tag_list_get_double</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-double-index" title="gst_tag_list_get_double_index ()">gst_tag_list_get_double_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-double-index" title="gst_tag_list_get_double_index ()">gst_tag_list_get_double_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-string" title="gst_tag_list_get_string ()">gst_tag_list_get_string</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-string" title="gst_tag_list_get_string ()">gst_tag_list_get_string</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><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#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-string-index" title="gst_tag_list_get_string_index ()">gst_tag_list_get_string_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-string-index" title="gst_tag_list_get_string_index ()">gst_tag_list_get_string_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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>);
-<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-peek-string-index" title="gst_tag_list_peek_string_index ()">gst_tag_list_peek_string_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-peek-string-index" title="gst_tag_list_peek_string_index ()">gst_tag_list_peek_string_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-get-pointer" title="gst_tag_list_get_pointer ()">gst_tag_list_get_pointer</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-pointer" title="gst_tag_list_get_pointer ()">gst_tag_list_get_pointer</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-pointer-index" title="gst_tag_list_get_pointer_index ()">gst_tag_list_get_pointer_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-pointer-index" title="gst_tag_list_get_pointer_index ()">gst_tag_list_get_pointer_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</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="gstreamer-GstTagList.html#gst-tag-list-get-date" title="gst_tag_list_get_date ()">gst_tag_list_get_date</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-date" title="gst_tag_list_get_date ()">gst_tag_list_get_date</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</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="gstreamer-GstTagList.html#gst-tag-list-get-date-index" title="gst_tag_list_get_date_index ()">gst_tag_list_get_date_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-date-index" title="gst_tag_list_get_date_index ()">gst_tag_list_get_date_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</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="gstreamer-GstTagList.html#gst-tag-list-get-date-time" title="gst_tag_list_get_date_time ()">gst_tag_list_get_date_time</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-date-time" title="gst_tag_list_get_date_time ()">gst_tag_list_get_date_time</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</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="gstreamer-GstTagList.html#gst-tag-list-get-date-time-index" title="gst_tag_list_get_date_time_index ()">gst_tag_list_get_date_time_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-date-time-index" title="gst_tag_list_get_date_time_index ()">gst_tag_list_get_date_time_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</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="gstreamer-GstTagList.html#gst-tag-list-get-buffer" title="gst_tag_list_get_buffer ()">gst_tag_list_get_buffer</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-buffer" title="gst_tag_list_get_buffer ()">gst_tag_list_get_buffer</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</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="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" title="gst_tag_list_get_buffer_index ()">gst_tag_list_get_buffer_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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="gstreamer-GstTagList.html#gst-tag-list-get-buffer-index" title="gst_tag_list_get_buffer_index ()">gst_tag_list_get_buffer_index</a> (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);
@@ -303,11 +311,21 @@ Last reviewed on 2009-06-09 (0.10.23)
<div class="refsect1">
<a name="gstreamer-GstTagList.details"></a><h2>Details</h2>
<div class="refsect2">
-<a name="GstTagList"></a><h3>GstTagList</h3>
-<pre class="programlisting">typedef struct _GstTagList GstTagList;</pre>
+<a name="GstTagList"></a><h3>struct GstTagList</h3>
+<pre class="programlisting">struct GstTagList {
+ GstMiniObject mini_object;
+};
+</pre>
<p>
-Opaque <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> data structure.
+Object describing tags / metadata.
</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td><p><span class="term"><a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstTagList.mini-object"></a>mini_object</code></em>;</span></p></td>
+<td>the parent type</td>
+</tr></tbody>
+</table></div>
</div>
<hr>
<div class="refsect2">
@@ -336,7 +354,7 @@ In the table below this is shown for the cases that a tag exists in the list
<p>
</p>
<div class="table">
-<a name="idp43764672"></a><p class="title"><b>Table 1. merge mode</b></p>
+<a name="idp44575472"></a><p class="title"><b>Table 1. merge mode</b></p>
<div class="table-contents"><table summary="merge mode" border="1">
<colgroup>
<col>
@@ -494,7 +512,7 @@ Extra tag flags used when registering tags.
<hr>
<div class="refsect2">
<a name="GstTagForeachFunc"></a><h3>GstTagForeachFunc ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> (*GstTagForeachFunc) (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> (*GstTagForeachFunc) (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><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>
@@ -506,7 +524,7 @@ not modify the tag list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>the <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>
+<td>the <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
</td>
</tr>
<tr>
@@ -1073,7 +1091,7 @@ code. It is undefined what language or locale the language name is in.
<pre class="programlisting">#define GST_TAG_IMAGE "image"
</pre>
<p>
-image (sample) (sample caps should specify the content type and preferably
+image (sample) (sample taglist should specify the content type and preferably
also set "image-type" field as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttag.html#GstTagImageType"><span class="type">GstTagImageType</span></a>)
</p>
<p class="since">Since 0.10.6</p>
@@ -1085,7 +1103,7 @@ also set "image-type" field as <a href="http://gstreamer.freedesktop.org/data/do
</pre>
<p>
image that is meant for preview purposes, e.g. small icon-sized version
-(sample) (sample caps should specify the content type)
+(sample) (sample taglist should specify the content type)
</p>
<p class="since">Since 0.10.7</p>
</div>
@@ -1095,7 +1113,7 @@ image that is meant for preview purposes, e.g. small icon-sized version
<pre class="programlisting">#define GST_TAG_ATTACHMENT "attachment"
</pre>
<p>
-generic file attachment (sample) (sample caps should specify the content
+generic file attachment (sample) (sample taglist should specify the content
type and if possible set "filename" to the file name of the
attachment)
</p>
@@ -1484,6 +1502,54 @@ Two default merge functions are provided: <a class="link" href="gstreamer-GstTag
</div>
<hr>
<div class="refsect2">
+<a name="gst-tag-register-static"></a><h3>gst_tag_register_static ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_register_static (<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><a class="link" href="gstreamer-GstTagList.html#GstTagFlag" title="enum GstTagFlag"><span class="type">GstTagFlag</span></a> flag</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> 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> *nick</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> *blurb</code></em>,
+ <em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeFunc" title="GstTagMergeFunc ()"><span class="type">GstTagMergeFunc</span></a> func</code></em>);</pre>
+<p>
+Registers a new tag type for the use with GStreamer's type system.
+</p>
+<p>
+Same as <a class="link" href="gstreamer-GstTagList.html#gst-tag-register" title="gst_tag_register ()"><code class="function">gst_tag_register()</code></a>, but <em class="parameter"><code>name</code></em>, <em class="parameter"><code>nick</code></em>, and <em class="parameter"><code>blurb</code></em> must be
+static strings or inlined strings, as they will not be copied. (GStreamer
+plugins will be made resident once loaded, so this function can be used
+even from dynamically loaded plugins.)
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
+<td>the name or identifier string (string constant)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>flag</code></em> :</span></p></td>
+<td>a flag describing the type of tag info</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>the type this data is in</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>nick</code></em> :</span></p></td>
+<td>human-readable name or short description (string constant)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>blurb</code></em> :</span></p></td>
+<td>a human-readable description for this tag (string constant)</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
+<td>function for merging multiple values of this tag, or NULL</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
<a name="gst-tag-merge-use-first"></a><h3>gst_tag_merge_use_first ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_merge_use_first (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
<em class="parameter"><code>const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *src</code></em>);</pre>
@@ -1663,7 +1729,7 @@ Unfixed tags can contain lists of values.
<hr>
<div class="refsect2">
<a name="gst-tag-list-new"></a><h3>gst_tag_list_new ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_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> *tag</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_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> *tag</code></em>,
<em class="parameter"><code>...</code></em>);</pre>
<p>
Creates a new taglist and appends the values for the given tags. It expects
@@ -1675,7 +1741,7 @@ function. The tag list will make copies of any arguments passed
(e.g. strings, buffers).
</p>
<p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -1690,7 +1756,7 @@ Free-function: gst_tag_list_free
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()"><code class="function">gst_tag_list_free()</code></a>
+<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_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>
@@ -1701,12 +1767,12 @@ when no longer needed. <span class="annotation">[<acronym title="Free data after
<hr>
<div class="refsect2">
<a name="gst-tag-list-new-empty"></a><h3>gst_tag_list_new_empty ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_empty (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>
Creates a new empty GstTagList.
</p>
<p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -1720,13 +1786,13 @@ Free-function: gst_tag_list_free
<hr>
<div class="refsect2">
<a name="gst-tag-list-new-valist"></a><h3>gst_tag_list_new_valist ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_valist (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_valist (<em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
<p>
Just like <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()"><code class="function">gst_tag_list_new()</code></a>, only that it takes a va_list argument.
Useful mostly for language bindings.
</p>
<p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -1737,7 +1803,7 @@ Free-function: gst_tag_list_free
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-free" title="gst_tag_list_free ()"><code class="function">gst_tag_list_free()</code></a>
+<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>. Free with <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_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>
@@ -1748,7 +1814,7 @@ when no longer needed. <span class="annotation">[<acronym title="Free data after
<hr>
<div class="refsect2">
<a name="gst-tag-list-new-from-string"></a><h3>gst_tag_list_new_from_string ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_from_string (<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>);</pre>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_new_from_string (<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>);</pre>
<p>
Deserializes a tag list.
</p>
@@ -1762,7 +1828,7 @@ Deserializes a tag list.
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>, or NULL in case of an error.</td>
+<td>a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>, or NULL in case of an error.</td>
</tr>
</tbody>
</table></div>
@@ -1771,7 +1837,7 @@ Deserializes a tag list.
<hr>
<div class="refsect2">
<a name="gst-tag-list-to-string"></a><h3>gst_tag_list_to_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_tag_list_to_string (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_to_string (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
<p>
Serializes a tag list to a string.
</p>
@@ -1780,7 +1846,7 @@ Serializes a tag list to a string.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
</td>
</tr>
<tr>
@@ -1794,94 +1860,179 @@ string must be freed with <a href="http://library.gnome.org/devel/glib/unstable/
</div>
<hr>
<div class="refsect2">
-<a name="gst-is-tag-list"></a><h3>gst_is_tag_list ()</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_is_tag_list (<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> p</code></em>);</pre>
+<a name="gst-tag-list-is-empty"></a><h3>gst_tag_list_is_empty ()</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_is_empty (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
<p>
-Checks if the given pointer is a taglist.
+Checks if the given taglist is empty.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
-<td><p><span class="term"><em class="parameter"><code>p</code></em> :</span></p></td>
-<td>Object that might be a taglist</td>
+<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE, if the given pointer is a taglist</td>
+<td>TRUE if the taglist is empty, otherwise FALSE.</td>
</tr>
</tbody>
</table></div>
+<p class="since">Since 0.10.11</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-tag-list-is-empty"></a><h3>gst_tag_list_is_empty ()</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_is_empty (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<a name="gst-tag-list-is-equal"></a><h3>gst_tag_list_is_equal ()</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_is_equal (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);</pre>
<p>
-Checks if the given taglist is empty.
+Checks if the two given taglists are equal.
</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>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td><p><span class="term"><em class="parameter"><code>list1</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>list2</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the taglist is empty, otherwise FALSE.</td>
+<td>TRUE if the taglists are equal, otherwise FALSE</td>
</tr>
</tbody>
</table></div>
-<p class="since">Since 0.10.11</p>
+<p class="since">Since 0.10.36</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-tag-list-is-equal"></a><h3>gst_tag_list_is_equal ()</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_is_equal (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>);</pre>
+<a name="gst-tag-list-copy"></a><h3>gst_tag_list_copy ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_copy (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
<p>
-Checks if the two given taglists are equal.
+Creates a new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> as a copy of the old <em class="parameter"><code>taglist</code></em>. The new taglist
+will have a refcount of 1, owned by the caller, and will be writable as
+a result.
+</p>
+<p>
+Note that this function is the semantic equivalent of a <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</code></a>
+followed by a <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()"><code class="function">gst_tag_list_make_writable()</code></a>. If you only want to hold on to a
+reference to the data, you should use <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</code></a>.
+</p>
+<p>
+When you are finished with the taglist, call <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a> 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>list1</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
</tr>
<tr>
-<td><p><span class="term"><em class="parameter"><code>list2</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>the new <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
+</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-ref"></a><h3>gst_tag_list_ref ()</h3>
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_ref (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
+<p>
+Add a reference to a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> mini object.
+</p>
+<p>
+From this point on, until the caller calls <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-unref" title="gst_tag_list_unref ()"><code class="function">gst_tag_list_unref()</code></a> or
+<a class="link" href="gstreamer-GstTagList.html#gst-tag-list-make-writable" title="gst_tag_list_make_writable()"><code class="function">gst_tag_list_make_writable()</code></a>, it is guaranteed that the taglist object will
+not change. To use a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> object, you must always have a refcount on
+it -- either the one made implicitly by e.g. <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-new" title="gst_tag_list_new ()"><code class="function">gst_tag_list_new()</code></a>, or via
+taking one explicitly with 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>taglist</code></em> :</span></p></td>
+<td>the <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to reference</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
-<td>TRUE if the taglists are equal, otherwise FALSE</td>
+<td>the same <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> mini object.</td>
</tr>
</tbody>
</table></div>
-<p class="since">Since 0.10.36</p>
</div>
<hr>
<div class="refsect2">
-<a name="gst-tag-list-copy"></a><h3>gst_tag_list_copy ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_copy (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
+<a name="gst-tag-list-unref"></a><h3>gst_tag_list_unref ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_unref (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
<p>
-Copies a given <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.
+Unref a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>, and and free all its memory when the refcount reaches 0.
</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>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-is-writable"></a><h3>gst_tag_list_is_writable()</h3>
+<pre class="programlisting">#define gst_tag_list_is_writable(taglist) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (taglist))
+</pre>
<p>
-Free-function: gst_tag_list_free
+Tests if you can safely modify <em class="parameter"><code>taglist</code></em>. It is only safe to modify taglist
+when there is only one owner of the taglist - ie, the refcount is 1.
+</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>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
+</td>
+</tr></tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-tag-list-make-writable"></a><h3>gst_tag_list_make_writable()</h3>
+<pre class="programlisting">#define gst_tag_list_make_writable(taglist) GST_TAG_LIST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (taglist)))
+</pre>
+<p>
+Returns a writable copy of <em class="parameter"><code>taglist</code></em>.
+</p>
+<p>
+If there is only one reference count on <em class="parameter"><code>taglist</code></em>, the caller must be the
+owner, and so this function will return the taglist object unchanged. If on
+the other hand there is more than one reference on the object, a new taglist
+object will be returned (which will be a copy of <em class="parameter"><code>taglist</code></em>). The caller's
+reference on <em class="parameter"><code>taglist</code></em> will be removed, and instead the caller will own a
+reference to the returned object.
+</p>
+<p>
+In short, this function unrefs the taglist in the argument and refs the
+taglist that it returns. Don't access the argument after calling this
+function. See also: <a class="link" href="gstreamer-GstTagList.html#gst-tag-list-ref" title="gst_tag_list_ref ()"><code class="function">gst_tag_list_ref()</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>list</code></em> :</span></p></td>
-<td>list to copy</td>
+<td><p><span class="term"><em class="parameter"><code>taglist</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>. <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>copy of the given list. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
+<td>a writable taglist which may or may not be the
+same as <em class="parameter"><code>taglist</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>
@@ -1890,8 +2041,8 @@ Free-function: gst_tag_list_free
<hr>
<div class="refsect2">
<a name="gst-tag-list-insert"></a><h3>gst_tag_list_insert ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_insert (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_insert (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *into</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *from</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
<p>
Inserts the tags of the <em class="parameter"><code>from</code></em> list into the first list using the given mode.
@@ -1917,15 +2068,15 @@ Inserts the tags of the <em class="parameter"><code>from</code></em> list into t
<hr>
<div class="refsect2">
<a name="gst-tag-list-merge"></a><h3>gst_tag_list_merge ()</h3>
-<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_merge (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
+<pre class="programlisting"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="returnvalue">GstTagList</span></a> * gst_tag_list_merge (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list1</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list2</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
<p>
Merges the two given lists into a new list. If one of the lists is NULL, a
copy of the other is returned. If both lists are NULL, NULL is returned.
</p>
<p>
-Free-function: gst_tag_list_free
+Free-function: gst_tag_list_unref
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
@@ -1952,24 +2103,8 @@ Free-function: gst_tag_list_free
</div>
<hr>
<div class="refsect2">
-<a name="gst-tag-list-free"></a><h3>gst_tag_list_free ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_free (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
-<p>
-Frees the given list and all associated values.
-</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>the list to free. <span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
-</td>
-</tr></tbody>
-</table></div>
-</div>
-<hr>
-<div class="refsect2">
<a name="gst-tag-list-get-tag-size"></a><h3>gst_tag_list_get_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_list_get_tag_size (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<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_list_get_tag_size (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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>
Checks how many value are stored in this tag list for the given tag.
@@ -1995,7 +2130,7 @@ Checks how many value are stored in this tag list for the given tag.
<hr>
<div class="refsect2">
<a name="gst-tag-list-n-tags"></a><h3>gst_tag_list_n_tags ()</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_tag_list_n_tags (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_n_tags (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>);</pre>
<p>
Get the number of tags in <em class="parameter"><code>list</code></em>.
</p>
@@ -2004,7 +2139,7 @@ Get the number of tags in <em class="parameter"><code>list</code></em>.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
@@ -2016,7 +2151,7 @@ Get the number of tags in <em class="parameter"><code>list</code></em>.
<hr>
<div class="refsect2">
<a name="gst-tag-list-nth-tag-name"></a><h3>gst_tag_list_nth_tag_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_tag_list_nth_tag_name (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_nth_tag_name (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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#guint"><span class="type">guint</span></a> index</code></em>);</pre>
<p>
Get the name of the tag in <em class="parameter"><code>list</code></em> at <em class="parameter"><code>index</code></em>.
@@ -2026,7 +2161,7 @@ Get the name of the tag in <em class="parameter"><code>list</code></em> at <em c
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>.</td>
+<td>A <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>.</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>index</code></em> :</span></p></td>
@@ -2042,7 +2177,7 @@ Get the name of the tag in <em class="parameter"><code>list</code></em> at <em c
<hr>
<div class="refsect2">
<a name="gst-tag-list-add"></a><h3>gst_tag_list_add ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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>...</code></em>);</pre>
@@ -2074,7 +2209,7 @@ Sets the values for the given tags using the specified mode.
<hr>
<div class="refsect2">
<a name="gst-tag-list-add-value"></a><h3>gst_tag_list_add_value ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_value (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_value (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *value</code></em>);</pre>
@@ -2107,7 +2242,7 @@ Sets the GValue for a given tag using the specified mode.
<hr>
<div class="refsect2">
<a name="gst-tag-list-add-values"></a><h3>gst_tag_list_add_values ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_values (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_values (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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>...</code></em>);</pre>
@@ -2139,7 +2274,7 @@ Sets the GValues for the given tags using the specified mode.
<hr>
<div class="refsect2">
<a name="gst-tag-list-add-valist"></a><h3>gst_tag_list_add_valist ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_valist (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_valist (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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><span class="type">va_list</span> var_args</code></em>);</pre>
@@ -2171,7 +2306,7 @@ Sets the values for the given tags using the specified mode.
<hr>
<div class="refsect2">
<a name="gst-tag-list-add-valist-values"></a><h3>gst_tag_list_add_valist_values ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_valist_values (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_add_valist_values (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagMergeMode" title="enum GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</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><span class="type">va_list</span> var_args</code></em>);</pre>
@@ -2203,7 +2338,7 @@ Sets the GValues for the given tags using the specified mode.
<hr>
<div class="refsect2">
<a name="gst-tag-list-remove-tag"></a><h3>gst_tag_list_remove_tag ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_remove_tag (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_remove_tag (<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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>
Removes the given tag from the taglist.
@@ -2225,7 +2360,7 @@ Removes the given tag from the taglist.
<hr>
<div class="refsect2">
<a name="gst-tag-list-foreach"></a><h3>gst_tag_list_foreach ()</h3>
-<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_foreach (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting"><span class="returnvalue">void</span> gst_tag_list_foreach (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstTagList.html#GstTagForeachFunc" title="GstTagForeachFunc ()"><span class="type">GstTagForeachFunc</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>
<p>
@@ -2255,7 +2390,7 @@ is no tag, the function won't be called at all.
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-value-index"></a><h3>gst_tag_list_get_value_index ()</h3>
-<pre class="programlisting">const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> * gst_tag_list_get_value_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+<pre class="programlisting">const <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> * gst_tag_list_get_value_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>);</pre>
<p>
@@ -2267,7 +2402,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a>
</td>
</tr>
<tr>
@@ -2291,7 +2426,7 @@ tag wasn't available or the tag doesn't have as many entries. <span class="annot
<div class="refsect2">
<a name="gst-tag-list-copy-value"></a><h3>gst_tag_list_copy_value ()</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_copy_value (<em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Generic-values.html#GValue"><span class="type">GValue</span></a> *dest</code></em>,
- <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</code></em>,
+ <em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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>
Copies the contents for the given tag into the value,
@@ -2326,7 +2461,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-boolean"></a><h3>gst_tag_list_get_boolean ()</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_get_boolean (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_boolean (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *value</code></em>);</pre>
<p>
@@ -2338,7 +2473,7 @@ into one if multiple values are associated with the tag.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2360,7 +2495,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-boolean-index"></a><h3>gst_tag_list_get_boolean_index ()</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_get_boolean_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_boolean_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</code></em>);</pre>
@@ -2373,7 +2508,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2399,7 +2534,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-int"></a><h3>gst_tag_list_get_int ()</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_get_int (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_int (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> *value</code></em>);</pre>
<p>
@@ -2411,7 +2546,7 @@ into one if multiple values are associated with the tag.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2433,7 +2568,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-int-index"></a><h3>gst_tag_list_get_int_index ()</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_get_int_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_int_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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>);</pre>
@@ -2446,7 +2581,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2472,7 +2607,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-uint"></a><h3>gst_tag_list_get_uint ()</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_get_uint (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_uint (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *value</code></em>);</pre>
<p>
@@ -2484,7 +2619,7 @@ into one if multiple values are associated with the tag.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2506,7 +2641,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-uint-index"></a><h3>gst_tag_list_get_uint_index ()</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_get_uint_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_uint_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</code></em>);</pre>
@@ -2519,7 +2654,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2545,14 +2680,14 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-int64"></a><h3>gst_tag_list_get_int64 ()</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_get_int64 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_int64 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><span class="type">gint64</span> *value</code></em>);</pre>
</div>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-int64-index"></a><h3>gst_tag_list_get_int64_index ()</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_get_int64_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_int64_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><span class="type">gint64</span> *value</code></em>);</pre>
@@ -2565,7 +2700,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2591,7 +2726,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-uint64"></a><h3>gst_tag_list_get_uint64 ()</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_get_uint64 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_uint64 (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><span class="type">guint64</span> *value</code></em>);</pre>
<p>
@@ -2603,7 +2738,7 @@ into one if multiple values are associated with the tag.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2625,7 +2760,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-uint64-index"></a><h3>gst_tag_list_get_uint64_index ()</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_get_uint64_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_uint64_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><span class="type">guint64</span> *value</code></em>);</pre>
@@ -2638,7 +2773,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2664,7 +2799,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-float"></a><h3>gst_tag_list_get_float ()</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_get_float (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_float (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</code></em>);</pre>
<p>
@@ -2676,7 +2811,7 @@ into one if multiple values are associated with the tag.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2698,7 +2833,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-float-index"></a><h3>gst_tag_list_get_float_index ()</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_get_float_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_float_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *value</code></em>);</pre>
@@ -2711,7 +2846,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2737,7 +2872,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-double"></a><h3>gst_tag_list_get_double ()</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_get_double (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_double (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *value</code></em>);</pre>
<p>
@@ -2749,7 +2884,7 @@ into one if multiple values are associated with the tag.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2771,7 +2906,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-double-index"></a><h3>gst_tag_list_get_double_index ()</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_get_double_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_double_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</code></em>);</pre>
@@ -2784,7 +2919,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2810,7 +2945,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-string"></a><h3>gst_tag_list_get_string ()</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_get_string (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_string (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>);</pre>
<p>
@@ -2834,7 +2969,7 @@ Free-function: g_free
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2856,7 +2991,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-string-index"></a><h3>gst_tag_list_get_string_index ()</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_get_string_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_string_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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>);</pre>
@@ -2877,7 +3012,7 @@ Free-function: g_free
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2903,7 +3038,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-peek-string-index"></a><h3>gst_tag_list_peek_string_index ()</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_peek_string_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_peek_string_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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>);</pre>
@@ -2921,7 +3056,7 @@ be non-NULL and non-empty.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2947,7 +3082,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-pointer"></a><h3>gst_tag_list_get_pointer ()</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_get_pointer (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_pointer (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *value</code></em>);</pre>
<p>
@@ -2959,7 +3094,7 @@ into one if multiple values are associated with the tag.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -2981,7 +3116,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-pointer-index"></a><h3>gst_tag_list_get_pointer_index ()</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_get_pointer_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_pointer_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</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> *value</code></em>);</pre>
@@ -2994,7 +3129,7 @@ list.
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3020,7 +3155,7 @@ given list.</td>
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-date"></a><h3>gst_tag_list_get_date ()</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_get_date (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_date (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</code></em>);</pre>
<p>
@@ -3036,7 +3171,7 @@ Free-function: g_date_free
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3059,7 +3194,7 @@ given list or if it was <a href="http://library.gnome.org/devel/glib/unstable/gl
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-date-index"></a><h3>gst_tag_list_get_date_index ()</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_get_date_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_date_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a href="http://library.gnome.org/devel/glib/unstable/glib-Date-and-Time-Functions.html#GDate"><span class="type">GDate</span></a> **value</code></em>);</pre>
@@ -3076,7 +3211,7 @@ Free-function: g_date_free
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3102,7 +3237,7 @@ given list or if it was <a href="http://library.gnome.org/devel/glib/unstable/gl
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-date-time"></a><h3>gst_tag_list_get_date_time ()</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_get_date_time (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_date_time (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</code></em>);</pre>
<p>
@@ -3118,7 +3253,7 @@ Free-function: gst_date_time_unref
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3142,7 +3277,7 @@ thegiven list or if it was <a href="http://library.gnome.org/devel/glib/unstable
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-date-time-index"></a><h3>gst_tag_list_get_date_time_index ()</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_get_date_time_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_date_time_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstDateTime.html#GstDateTime" title="GstDateTime"><span class="type">GstDateTime</span></a> **value</code></em>);</pre>
@@ -3159,7 +3294,7 @@ Free-function: gst_date_time_unref
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3186,7 +3321,7 @@ given list or if it was <a href="http://library.gnome.org/devel/glib/unstable/gl
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-buffer"></a><h3>gst_tag_list_get_buffer ()</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_get_buffer (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_buffer (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);</pre>
<p>
@@ -3202,7 +3337,7 @@ Free-function: gst_buffer_unref
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
@@ -3226,7 +3361,7 @@ given list or if it was <a href="http://library.gnome.org/devel/glib/unstable/gl
<hr>
<div class="refsect2">
<a name="gst-tag-list-get-buffer-index"></a><h3>gst_tag_list_get_buffer_index ()</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_get_buffer_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *list</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_tag_list_get_buffer_index (<em class="parameter"><code>const <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct 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><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> index</code></em>,
<em class="parameter"><code><a class="link" href="gstreamer-GstBuffer.html#GstBuffer" title="struct GstBuffer"><span class="type">GstBuffer</span></a> **value</code></em>);</pre>
@@ -3243,7 +3378,7 @@ Free-function: gst_buffer_unref
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>list</code></em> :</span></p></td>
-<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
+<td>a <a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> to get the tag from</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
diff --git a/docs/gst/html/gstreamer-GstToc.html b/docs/gst/html/gstreamer-GstToc.html
index 716c27c..f7135f9 100644
--- a/docs/gst/html/gstreamer-GstToc.html
+++ b/docs/gst/html/gstreamer-GstToc.html
@@ -47,7 +47,7 @@ enum <a class="link" href="gstreamer-GstToc.html#GstTocEntryType"
<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> *uid</code></em>);
<a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> * <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-new-with-pad" title="gst_toc_entry_new_with_pad ()">gst_toc_entry_new_with_pad</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</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> *uid</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> pad</code></em>);
+ <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-free" title="gst_toc_entry_free ()">gst_toc_entry_free</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>);
<a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="returnvalue">GstToc</span></a> * <a class="link" href="gstreamer-GstToc.html#gst-toc-new" title="gst_toc_new ()">gst_toc_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstToc.html#gst-toc-free" title="gst_toc_free ()">gst_toc_free</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstToc" title="struct GstToc"><span class="type">GstToc</span></a> *toc</code></em>);
@@ -61,6 +61,7 @@ enum <a class="link" href="gstreamer-GstToc.html#GstTocEntryType"
<span class="returnvalue">void</span> <a class="link" href="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" title="gst_toc_entry_set_start_stop ()">gst_toc_entry_set_start_stop</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> *entry</code></em>,
<em class="parameter"><code><span class="type">gint64</span> start</code></em>,
<em class="parameter"><code><span class="type">gint64</span> stop</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="gstreamer-GstToc.html#gst-toc-entry-type-get-nick" title="gst_toc_entry_type_get_nick ()">gst_toc_entry_type_get_nick</a> (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>);
</pre>
</div>
<div class="refsect1">
@@ -127,7 +128,7 @@ Definition of TOC structure.
<td>list of <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> entries of the TOC.</td>
</tr>
<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstToc.tags"></a>tags</code></em>;</span></p></td>
+<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstToc.tags"></a>tags</code></em>;</span></p></td>
<td>tags related to the whole TOC.</td>
</tr>
<tr>
@@ -176,7 +177,7 @@ other demuxers could do something else), it should help to track updates of cert
<td>list of <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> objects, related to this <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a>.</td>
</tr>
<tr>
-<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstTocEntry.tags"></a>tags</code></em>;</span></p></td>
+<td><p><span class="term"><a class="link" href="gstreamer-GstTagList.html#GstTagList" title="struct GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstTocEntry.tags"></a>tags</code></em>;</span></p></td>
<td>tags related to this entry.</td>
</tr>
<tr>
@@ -245,7 +246,7 @@ Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struc
<a name="gst-toc-entry-new-with-pad"></a><h3>gst_toc_entry_new_with_pad ()</h3>
<pre class="programlisting"><a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="returnvalue">GstTocEntry</span></a> * gst_toc_entry_new_with_pad (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</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> *uid</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> pad</code></em>);</pre>
+ <em class="parameter"><code><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> *pad</code></em>);</pre>
<p>
Create new <a class="link" href="gstreamer-GstToc.html#GstTocEntry" title="struct GstTocEntry"><span class="type">GstTocEntry</span></a> structure with <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a> related.
</p>
@@ -468,6 +469,28 @@ Set <em class="parameter"><code>start</code></em> and <em class="parameter"><cod
</table></div>
<p class="since">Since 0.10.37</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="gst-toc-entry-type-get-nick"></a><h3>gst_toc_entry_type_get_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_toc_entry_type_get_nick (<em class="parameter"><code><a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a> type</code></em>);</pre>
+<p>
+Converts <em class="parameter"><code>type</code></em> to a string representation.
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
+<td>a <a class="link" href="gstreamer-GstToc.html#GstTocEntryType" title="enum GstTocEntryType"><span class="type">GstTocEntryType</span></a>.</td>
+</tr>
+<tr>
+<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
+<td>Returns the human-readable <em class="parameter"><code>type</code></em>. Can be NULL if an error occurred.</td>
+</tr>
+</tbody>
+</table></div>
+<p class="since">Since 0.11.92</p>
+</div>
</div>
<div class="refsect1">
<a name="gstreamer-GstToc.see-also"></a><h2>See Also</h2>
diff --git a/docs/gst/html/gstreamer.devhelp2 b/docs/gst/html/gstreamer.devhelp2
index a0e5b45..7c148fe 100644
--- a/docs/gst/html/gstreamer.devhelp2
+++ b/docs/gst/html/gstreamer.devhelp2
@@ -70,7 +70,7 @@
<sub name="Annotation Glossary" link="annotation-glossary.html"/>
</chapters>
<functions>
- <keyword type="" name="Environment variables" link="gst-running.html#idp8901600"/>
+ <keyword type="" name="Environment variables" link="gst-running.html#idp11982640"/>
<keyword type="function" name="gst_init ()" link="gstreamer-Gst.html#gst-init"/>
<keyword type="function" name="gst_init_check ()" link="gstreamer-Gst.html#gst-init-check"/>
<keyword type="function" name="gst_init_get_option_group ()" link="gstreamer-Gst.html#gst-init-get-option-group"/>
@@ -91,7 +91,7 @@
<keyword type="function" name="gst_atomic_queue_peek ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-peek" since="0.10.33"/>
<keyword type="function" name="gst_atomic_queue_pop ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-pop" since="0.10.33"/>
<keyword type="function" name="gst_atomic_queue_length ()" link="gstreamer-GstAtomicQueue.html#gst-atomic-queue-length" since="0.10.33"/>
- <keyword type="" name="Notes" link="GstBin.html#idp11074672"/>
+ <keyword type="" name="Notes" link="GstBin.html#idp10089840"/>
<keyword type="struct" name="struct GstBin" link="GstBin.html#GstBin-struct"/>
<keyword type="struct" name="struct GstBinClass" link="GstBin.html#GstBinClass"/>
<keyword type="function" name="gst_bin_new ()" link="GstBin.html#gst-bin-new"/>
@@ -538,11 +538,12 @@
<keyword type="signal" name="The &quot;no-more-pads&quot; signal" link="GstElement.html#GstElement-no-more-pads"/>
<keyword type="signal" name="The &quot;pad-added&quot; signal" link="GstElement.html#GstElement-pad-added"/>
<keyword type="signal" name="The &quot;pad-removed&quot; signal" link="GstElement.html#GstElement-pad-removed"/>
- <keyword type="struct" name="struct GstElementFactory" link="GstElementFactory.html#GstElementFactory-struct"/>
+ <keyword type="struct" name="GstElementFactory" link="GstElementFactory.html#GstElementFactory-struct"/>
<keyword type="function" name="gst_element_register ()" link="GstElementFactory.html#gst-element-register"/>
<keyword type="function" name="gst_element_factory_find ()" link="GstElementFactory.html#gst-element-factory-find"/>
<keyword type="function" name="gst_element_factory_get_element_type ()" link="GstElementFactory.html#gst-element-factory-get-element-type"/>
<keyword type="function" name="gst_element_factory_get_metadata ()" link="GstElementFactory.html#gst-element-factory-get-metadata"/>
+ <keyword type="function" name="gst_element_factory_get_metadata_keys ()" link="GstElementFactory.html#gst-element-factory-get-metadata-keys"/>
<keyword type="function" name="gst_element_factory_get_num_pad_templates ()" link="GstElementFactory.html#gst-element-factory-get-num-pad-templates"/>
<keyword type="function" name="gst_element_factory_get_uri_type ()" link="GstElementFactory.html#gst-element-factory-get-uri-type"/>
<keyword type="function" name="gst_element_factory_get_uri_protocols ()" link="GstElementFactory.html#gst-element-factory-get-uri-protocols"/>
@@ -890,7 +891,7 @@
<keyword type="function" name="gst_mini_object_replace ()" link="gstreamer-GstMiniObject.html#gst-mini-object-replace"/>
<keyword type="function" name="gst_mini_object_steal ()" link="gstreamer-GstMiniObject.html#gst-mini-object-steal"/>
<keyword type="function" name="gst_mini_object_take ()" link="gstreamer-GstMiniObject.html#gst-mini-object-take"/>
- <keyword type="" name="controlled properties" link="GstObject.html#idp27000992"/>
+ <keyword type="" name="controlled properties" link="GstObject.html#idp27569216"/>
<keyword type="struct" name="struct GstObject" link="GstObject.html#GstObject-struct"/>
<keyword type="struct" name="struct GstObjectClass" link="GstObject.html#GstObjectClass"/>
<keyword type="enum" name="enum GstObjectFlags" link="GstObject.html#GstObjectFlags"/>
@@ -1161,13 +1162,14 @@
<keyword type="enum" name="enum GstPluginDependencyFlags" link="GstPlugin.html#GstPluginDependencyFlags" since="0.10.22"/>
<keyword type="function" name="gst_plugin_add_dependency ()" link="GstPlugin.html#gst-plugin-add-dependency" since="0.10.22"/>
<keyword type="function" name="gst_plugin_add_dependency_simple ()" link="GstPlugin.html#gst-plugin-add-dependency-simple" since="0.10.22"/>
- <keyword type="struct" name="struct GstPluginFeature" link="GstPluginFeature.html#GstPluginFeature-struct"/>
+ <keyword type="struct" name="GstPluginFeature" link="GstPluginFeature.html#GstPluginFeature-struct"/>
<keyword type="function" name="GstPluginFeatureFilter ()" link="GstPluginFeature.html#GstPluginFeatureFilter"/>
<keyword type="enum" name="enum GstRank" link="GstPluginFeature.html#GstRank"/>
<keyword type="function" name="gst_plugin_feature_set_rank ()" link="GstPluginFeature.html#gst-plugin-feature-set-rank"/>
<keyword type="macro" name="gst_plugin_feature_set_name()" link="GstPluginFeature.html#gst-plugin-feature-set-name"/>
<keyword type="function" name="gst_plugin_feature_get_rank ()" link="GstPluginFeature.html#gst-plugin-feature-get-rank"/>
<keyword type="macro" name="gst_plugin_feature_get_name()" link="GstPluginFeature.html#gst-plugin-feature-get-name"/>
+ <keyword type="function" name="gst_plugin_feature_get_plugin ()" link="GstPluginFeature.html#gst-plugin-feature-get-plugin"/>
<keyword type="function" name="gst_plugin_feature_load ()" link="GstPluginFeature.html#gst-plugin-feature-load"/>
<keyword type="function" name="gst_plugin_feature_list_copy ()" link="GstPluginFeature.html#gst-plugin-feature-list-copy" since="0.10.26"/>
<keyword type="function" name="gst_plugin_feature_list_free ()" link="GstPluginFeature.html#gst-plugin-feature-list-free"/>
@@ -1408,7 +1410,7 @@
<keyword type="struct" name="struct GstSystemClock" link="GstSystemClock.html#GstSystemClock-struct"/>
<keyword type="function" name="gst_system_clock_obtain ()" link="GstSystemClock.html#gst-system-clock-obtain"/>
<keyword type="property" name="The &quot;clock-type&quot; property" link="GstSystemClock.html#GstSystemClock--clock-type"/>
- <keyword type="struct" name="GstTagList" link="gstreamer-GstTagList.html#GstTagList"/>
+ <keyword type="struct" name="struct GstTagList" link="gstreamer-GstTagList.html#GstTagList"/>
<keyword type="enum" name="enum GstTagMergeMode" link="gstreamer-GstTagList.html#GstTagMergeMode"/>
<keyword type="enum" name="enum GstTagFlag" link="gstreamer-GstTagList.html#GstTagFlag"/>
<keyword type="function" name="GstTagForeachFunc ()" link="gstreamer-GstTagList.html#GstTagForeachFunc"/>
@@ -1494,6 +1496,7 @@
<keyword type="macro" name="GST_TAG_APPLICATION_DATA" link="gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS" since="0.10.31"/>
<keyword type="macro" name="GST_TAG_IMAGE_ORIENTATION" link="gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS" since="0.10.30"/>
<keyword type="function" name="gst_tag_register ()" link="gstreamer-GstTagList.html#gst-tag-register"/>
+ <keyword type="function" name="gst_tag_register_static ()" link="gstreamer-GstTagList.html#gst-tag-register-static"/>
<keyword type="function" name="gst_tag_merge_use_first ()" link="gstreamer-GstTagList.html#gst-tag-merge-use-first"/>
<keyword type="function" name="gst_tag_merge_strings_with_comma ()" link="gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma"/>
<keyword type="function" name="gst_tag_exists ()" link="gstreamer-GstTagList.html#gst-tag-exists"/>
@@ -1507,13 +1510,15 @@
<keyword type="function" name="gst_tag_list_new_valist ()" link="gstreamer-GstTagList.html#gst-tag-list-new-valist" since="0.10.24"/>
<keyword type="function" name="gst_tag_list_new_from_string ()" link="gstreamer-GstTagList.html#gst-tag-list-new-from-string" since="0.10.36"/>
<keyword type="function" name="gst_tag_list_to_string ()" link="gstreamer-GstTagList.html#gst-tag-list-to-string" since="0.10.36"/>
- <keyword type="function" name="gst_is_tag_list ()" link="gstreamer-GstTagList.html#gst-is-tag-list"/>
<keyword type="function" name="gst_tag_list_is_empty ()" link="gstreamer-GstTagList.html#gst-tag-list-is-empty" since="0.10.11"/>
<keyword type="function" name="gst_tag_list_is_equal ()" link="gstreamer-GstTagList.html#gst-tag-list-is-equal" since="0.10.36"/>
<keyword type="function" name="gst_tag_list_copy ()" link="gstreamer-GstTagList.html#gst-tag-list-copy"/>
+ <keyword type="function" name="gst_tag_list_ref ()" link="gstreamer-GstTagList.html#gst-tag-list-ref"/>
+ <keyword type="function" name="gst_tag_list_unref ()" link="gstreamer-GstTagList.html#gst-tag-list-unref"/>
+ <keyword type="macro" name="gst_tag_list_is_writable()" link="gstreamer-GstTagList.html#gst-tag-list-is-writable"/>
+ <keyword type="macro" name="gst_tag_list_make_writable()" link="gstreamer-GstTagList.html#gst-tag-list-make-writable"/>
<keyword type="function" name="gst_tag_list_insert ()" link="gstreamer-GstTagList.html#gst-tag-list-insert"/>
<keyword type="function" name="gst_tag_list_merge ()" link="gstreamer-GstTagList.html#gst-tag-list-merge"/>
- <keyword type="function" name="gst_tag_list_free ()" link="gstreamer-GstTagList.html#gst-tag-list-free"/>
<keyword type="function" name="gst_tag_list_get_tag_size ()" link="gstreamer-GstTagList.html#gst-tag-list-get-tag-size"/>
<keyword type="function" name="gst_tag_list_n_tags ()" link="gstreamer-GstTagList.html#gst-tag-list-n-tags"/>
<keyword type="function" name="gst_tag_list_nth_tag_name ()" link="gstreamer-GstTagList.html#gst-tag-list-nth-tag-name"/>
@@ -1606,6 +1611,7 @@
<keyword type="function" name="gst_toc_find_entry ()" link="gstreamer-GstToc.html#gst-toc-find-entry" since="0.10.37"/>
<keyword type="function" name="gst_toc_entry_get_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-get-start-stop" since="0.10.37"/>
<keyword type="function" name="gst_toc_entry_set_start_stop ()" link="gstreamer-GstToc.html#gst-toc-entry-set-start-stop" since="0.10.37"/>
+ <keyword type="function" name="gst_toc_entry_type_get_nick ()" link="gstreamer-GstToc.html#gst-toc-entry-type-get-nick" since="0.11.92"/>
<keyword type="struct" name="GstTocSetter" link="gstreamer-GstTocSetter.html#GstTocSetter"/>
<keyword type="struct" name="struct GstTocSetterIFace" link="gstreamer-GstTocSetter.html#GstTocSetterIFace"/>
<keyword type="function" name="gst_toc_setter_get_toc ()" link="gstreamer-GstTocSetter.html#gst-toc-setter-get-toc" since="0.10.37"/>
@@ -2150,6 +2156,7 @@
<keyword type="constant" name="GST_PAD_SINK" link="GstPad.html#GST-PAD-SINK:CAPS"/>
<keyword type="constant" name="GST_PAD_FLAG_BLOCKED" link="GstPad.html#GST-PAD-FLAG-BLOCKED:CAPS"/>
<keyword type="constant" name="GST_PAD_FLAG_FLUSHING" link="GstPad.html#GST-PAD-FLAG-FLUSHING:CAPS"/>
+ <keyword type="constant" name="GST_PAD_FLAG_EOS" link="GstPad.html#GST-PAD-FLAG-EOS:CAPS"/>
<keyword type="constant" name="GST_PAD_FLAG_BLOCKING" link="GstPad.html#GST-PAD-FLAG-BLOCKING:CAPS"/>
<keyword type="constant" name="GST_PAD_FLAG_NEED_PARENT" link="GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS"/>
<keyword type="constant" name="GST_PAD_FLAG_NEED_RECONFIGURE" link="GstPad.html#GST-PAD-FLAG-NEED-RECONFIGURE:CAPS"/>
diff --git a/docs/gst/html/index.html b/docs/gst/html/index.html
index 7bf76d8..9b735b9 100644
--- a/docs/gst/html/index.html
+++ b/docs/gst/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Core Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Core 1.0 (0.11.90.1)
+ for GStreamer Core 1.0 (0.11.91.1)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/</a>.
</p></div>
diff --git a/docs/gst/html/index.sgml b/docs/gst/html/index.sgml
index 9aebeb6..cabc165 100644
--- a/docs/gst/html/index.sgml
+++ b/docs/gst/html/index.sgml
@@ -648,6 +648,7 @@
<ANCHOR id="gst-element-factory-find" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-find">
<ANCHOR id="gst-element-factory-get-element-type" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-element-type">
<ANCHOR id="gst-element-factory-get-metadata" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-metadata">
+<ANCHOR id="gst-element-factory-get-metadata-keys" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-metadata-keys">
<ANCHOR id="gst-element-factory-get-num-pad-templates" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-num-pad-templates">
<ANCHOR id="gst-element-factory-get-uri-type" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-uri-type">
<ANCHOR id="gst-element-factory-get-uri-protocols" href="gstreamer-1.0/GstElementFactory.html#gst-element-factory-get-uri-protocols">
@@ -1280,6 +1281,7 @@
<ANCHOR id="GstPadFlags" href="gstreamer-1.0/GstPad.html#GstPadFlags">
<ANCHOR id="GST-PAD-FLAG-BLOCKED:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-BLOCKED:CAPS">
<ANCHOR id="GST-PAD-FLAG-FLUSHING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-FLUSHING:CAPS">
+<ANCHOR id="GST-PAD-FLAG-EOS:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-EOS:CAPS">
<ANCHOR id="GST-PAD-FLAG-BLOCKING:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-BLOCKING:CAPS">
<ANCHOR id="GST-PAD-FLAG-NEED-PARENT:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-NEED-PARENT:CAPS">
<ANCHOR id="GST-PAD-FLAG-NEED-RECONFIGURE:CAPS" href="gstreamer-1.0/GstPad.html#GST-PAD-FLAG-NEED-RECONFIGURE:CAPS">
@@ -1629,6 +1631,7 @@
<ANCHOR id="gst-plugin-feature-set-name" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-set-name">
<ANCHOR id="gst-plugin-feature-get-rank" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-rank">
<ANCHOR id="gst-plugin-feature-get-name" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-name">
+<ANCHOR id="gst-plugin-feature-get-plugin" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-get-plugin">
<ANCHOR id="gst-plugin-feature-load" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-load">
<ANCHOR id="gst-plugin-feature-list-copy" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-list-copy">
<ANCHOR id="gst-plugin-feature-list-free" href="gstreamer-1.0/GstPluginFeature.html#gst-plugin-feature-list-free">
@@ -2046,6 +2049,7 @@
<ANCHOR id="GST-TAG-APPLICATION-DATA:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-APPLICATION-DATA:CAPS">
<ANCHOR id="GST-TAG-IMAGE-ORIENTATION:CAPS" href="gstreamer-1.0/gstreamer-GstTagList.html#GST-TAG-IMAGE-ORIENTATION:CAPS">
<ANCHOR id="gst-tag-register" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-register">
+<ANCHOR id="gst-tag-register-static" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-register-static">
<ANCHOR id="gst-tag-merge-use-first" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-merge-use-first">
<ANCHOR id="gst-tag-merge-strings-with-comma" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-merge-strings-with-comma">
<ANCHOR id="gst-tag-exists" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-exists">
@@ -2059,13 +2063,15 @@
<ANCHOR id="gst-tag-list-new-valist" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-valist">
<ANCHOR id="gst-tag-list-new-from-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-new-from-string">
<ANCHOR id="gst-tag-list-to-string" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-to-string">
-<ANCHOR id="gst-is-tag-list" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-is-tag-list">
<ANCHOR id="gst-tag-list-is-empty" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-empty">
<ANCHOR id="gst-tag-list-is-equal" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-equal">
<ANCHOR id="gst-tag-list-copy" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-copy">
+<ANCHOR id="gst-tag-list-ref" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-ref">
+<ANCHOR id="gst-tag-list-unref" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-unref">
+<ANCHOR id="gst-tag-list-is-writable" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-is-writable">
+<ANCHOR id="gst-tag-list-make-writable" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-make-writable">
<ANCHOR id="gst-tag-list-insert" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-insert">
<ANCHOR id="gst-tag-list-merge" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-merge">
-<ANCHOR id="gst-tag-list-free" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-free">
<ANCHOR id="gst-tag-list-get-tag-size" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-get-tag-size">
<ANCHOR id="gst-tag-list-n-tags" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-n-tags">
<ANCHOR id="gst-tag-list-nth-tag-name" href="gstreamer-1.0/gstreamer-GstTagList.html#gst-tag-list-nth-tag-name">
@@ -2185,6 +2191,7 @@
<ANCHOR id="gst-toc-find-entry" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-find-entry">
<ANCHOR id="gst-toc-entry-get-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-get-start-stop">
<ANCHOR id="gst-toc-entry-set-start-stop" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-set-start-stop">
+<ANCHOR id="gst-toc-entry-type-get-nick" href="gstreamer-1.0/gstreamer-GstToc.html#gst-toc-entry-type-get-nick">
<ANCHOR id="gstreamer-GstToc.see-also" href="gstreamer-1.0/gstreamer-GstToc.html#gstreamer-GstToc.see-also">
<ANCHOR id="gstreamer-GstTocSetter" href="gstreamer-1.0/gstreamer-GstTocSetter.html">
<ANCHOR id="gstreamer-GstTocSetter.synopsis" href="gstreamer-1.0/gstreamer-GstTocSetter.html#gstreamer-GstTocSetter.synopsis">
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 980ba1a..7b7f275 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -69,6 +69,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/common/gtk-doc.mak \
$(top_srcdir)/common/upload-doc.mak
@@ -240,6 +241,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -392,7 +397,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/libs/html/GstBaseSink.html b/docs/libs/html/GstBaseSink.html
index 8aa1d9f..ccdf82e 100644
--- a/docs/libs/html/GstBaseSink.html
+++ b/docs/libs/html/GstBaseSink.html
@@ -329,6 +329,10 @@ The opaque <a class="link" href="GstBaseSink.html" title="GstBaseSink"><span cla
/* wait for eos, subclasses should chain up to parent first */
GstFlowReturn (*wait_eos) (GstBaseSink *sink, GstEvent *event);
+ /* notify subclass of buffer or list before doing sync */
+ GstFlowReturn (*prepare) (GstBaseSink *sink, GstBuffer *buffer);
+ GstFlowReturn (*prepare_list) (GstBaseSink *sink, GstBufferList *buffer_list);
+
/* notify subclass of preroll buffer or real buffer */
GstFlowReturn (*preroll) (GstBaseSink *sink, GstBuffer *buffer);
GstFlowReturn (*render) (GstBaseSink *sink, GstBuffer *buffer);
@@ -410,8 +414,18 @@ any state they set during <code class="function">unlock()</code>, such as cleari
subclasses should always first chain up to the default implementation.</td>
</tr>
<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.prepare"></a>prepare</code></em> ()</span></p></td>
+<td>Called to prepare the buffer for <em class="parameter"><code>render</code></em> and <em class="parameter"><code>preroll</code></em>. This
+function is called before synchronisation is performed.</td>
+</tr>
+<tr>
+<td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.prepare-list"></a>prepare_list</code></em> ()</span></p></td>
+<td>Called to prepare the buffer list for <em class="parameter"><code>render_list</code></em>. This
+function is called before synchronisation is performed.</td>
+</tr>
+<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.preroll"></a>preroll</code></em> ()</span></p></td>
-<td>Called to present the preroll buffer if desired</td>
+<td>Called to present the preroll buffer if desired.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstBaseSinkClass.render"></a>render</code></em> ()</span></p></td>
diff --git a/docs/libs/html/GstBaseSrc.html b/docs/libs/html/GstBaseSrc.html
index cedaec4..067e0a7 100644
--- a/docs/libs/html/GstBaseSrc.html
+++ b/docs/libs/html/GstBaseSrc.html
@@ -236,7 +236,7 @@ should install a pad template in its class_init function, like so:
<p>
</p>
<div class="refsect2">
-<a name="idp9630832"></a><h3>Controlled shutdown of live sources in applications</h3>
+<a name="idp7055728"></a><h3>Controlled shutdown of live sources in applications</h3>
<p>
Applications that record from a live source may want to stop recording
in a controlled way, so that the recording is stopped, but the data
diff --git a/docs/libs/html/GstBaseTransform.html b/docs/libs/html/GstBaseTransform.html
index 743b1f7..2c89ce9 100644
--- a/docs/libs/html/GstBaseTransform.html
+++ b/docs/libs/html/GstBaseTransform.html
@@ -111,7 +111,7 @@ It provides for:
<p>
</p>
<div class="refsect2">
-<a name="idp8941488"></a><h3>Use Cases</h3>
+<a name="idp6939712"></a><h3>Use Cases</h3>
<p>
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
@@ -251,7 +251,7 @@ It provides for:
</p>
<hr>
<div class="refsect2">
-<a name="idp8166288"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
+<a name="idp7842576"></a><h3>Sub-class settable flags on GstBaseTransform</h3>
<p>
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
diff --git a/docs/libs/html/gstreamer-libs.devhelp2 b/docs/libs/html/gstreamer-libs.devhelp2
index f1f78d5..a6b28f9 100644
--- a/docs/libs/html/gstreamer-libs.devhelp2
+++ b/docs/libs/html/gstreamer-libs.devhelp2
@@ -64,7 +64,7 @@
<keyword type="macro" name="GST_BASE_PARSE_LOST_SYNC()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-LOST-SYNC:CAPS" since="0.10.33"/>
<keyword type="macro" name="GST_BASE_PARSE_SINK_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SINK-PAD:CAPS" since="0.10.33"/>
<keyword type="macro" name="GST_BASE_PARSE_SRC_PAD()" link="gstreamer-libs-GstBaseParse.html#GST-BASE-PARSE-SRC-PAD:CAPS" since="0.10.33"/>
- <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp9630832"/>
+ <keyword type="" name="Controlled shutdown of live sources in applications" link="GstBaseSrc.html#idp7055728"/>
<keyword type="struct" name="struct GstBaseSrc" link="GstBaseSrc.html#GstBaseSrc-struct"/>
<keyword type="struct" name="struct GstBaseSrcClass" link="GstBaseSrc.html#GstBaseSrcClass"/>
<keyword type="enum" name="enum GstBaseSrcFlags" link="GstBaseSrc.html#GstBaseSrcFlags"/>
@@ -129,8 +129,8 @@
<keyword type="property" name="The &quot;sync&quot; property" link="GstBaseSink.html#GstBaseSink--sync"/>
<keyword type="property" name="The &quot;throttle-time&quot; property" link="GstBaseSink.html#GstBaseSink--throttle-time"/>
<keyword type="property" name="The &quot;ts-offset&quot; property" link="GstBaseSink.html#GstBaseSink--ts-offset"/>
- <keyword type="" name="Use Cases" link="GstBaseTransform.html#idp8941488"/>
- <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp8166288"/>
+ <keyword type="" name="Use Cases" link="GstBaseTransform.html#idp6939712"/>
+ <keyword type="" name="Sub-class settable flags on GstBaseTransform" link="GstBaseTransform.html#idp7842576"/>
<keyword type="struct" name="struct GstBaseTransform" link="GstBaseTransform.html#GstBaseTransform-struct"/>
<keyword type="struct" name="struct GstBaseTransformClass" link="GstBaseTransform.html#GstBaseTransformClass"/>
<keyword type="function" name="gst_base_transform_is_passthrough ()" link="GstBaseTransform.html#gst-base-transform-is-passthrough"/>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index b3cb126..bf26df4 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer 1.0 Library Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Library 1.0 (0.11.90.1)
+ for GStreamer Library 1.0 (0.11.91.1)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/</a>.
</p></div>
diff --git a/docs/manual/Makefile.in b/docs/manual/Makefile.in
index 5546c4f..87fcbf8 100644
--- a/docs/manual/Makefile.in
+++ b/docs/manual/Makefile.in
@@ -73,6 +73,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = README $(srcdir)/../htmlinstall.mak \
$(srcdir)/../manuals.mak $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/common/upload-doc.mak
@@ -271,6 +272,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -423,7 +428,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 34b0949..611fd09 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -67,6 +67,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/common/gtk-doc-plugins.mak \
$(top_srcdir)/common/upload-doc.mak
@@ -236,6 +237,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -388,7 +393,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args
index bf93dad..6c8b21a 100644
--- a/docs/plugins/gstreamer-plugins.args
+++ b/docs/plugins/gstreamer-plugins.args
@@ -1084,7 +1084,27 @@
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Sync Streams</NICK>
-<BLURB>Synchronize inactive streams to the running time of the active stream.</BLURB>
+<BLURB>Synchronize inactive streams to the running time of the active stream or to the current clock.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
+<ARG>
+<NAME>GstInputSelector::cache-buffers</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Cache Buffers</NICK>
+<BLURB>Cache buffers for active-pad.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstInputSelector::sync-mode</NAME>
+<TYPE>GstInputSelectorSyncMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync mode</NICK>
+<BLURB>Behavior in sync-streams mode.</BLURB>
+<DEFAULT>Sync using the current active segment</DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 4ce3974..2d6be16 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp4169280"></a>gstreamer Elements</h2></div></div></div>
+<a name="idp3396736"></a>gstreamer Elements</h2></div></div></div>
<div class="toc"><dl>
<dt>
<span class="refentrytitle"><a href="gstreamer-plugins-capsfilter.html">capsfilter</a></span><span class="refpurpose"> — Pass data without modification, limiting formats</span>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 64c6e46..71508b0 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -21,7 +21,7 @@
</tr></table>
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
-<a name="idp275968"></a>gstreamer Plugins</h2></div></div></div>
+<a name="idp235456"></a>gstreamer Plugins</h2></div></div></div>
<div class="toc"><dl><dt>
<span class="refentrytitle"><a href="gstreamer-plugins-plugin-coreelements.html">coreelements</a></span><span class="refpurpose"> — <a name="plugin-coreelements"></a>standard GStreamer elements</span>
</dt></dl></div>
diff --git a/docs/plugins/html/gstreamer-plugins-capsfilter.html b/docs/plugins/html/gstreamer-plugins-capsfilter.html
index 8571db3..c3e8f2c 100644
--- a/docs/plugins/html/gstreamer-plugins-capsfilter.html
+++ b/docs/plugins/html/gstreamer-plugins-capsfilter.html
@@ -70,7 +70,7 @@ data format.
<p>
</p>
<div class="refsect2">
-<a name="idp7244064"></a><h3>Example launch line</h3>
+<a name="idp7212656"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -88,7 +88,7 @@ data format.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8108768"></a><h3>Element Information</h3>
+<a name="idp7705936"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -111,7 +111,7 @@ data format.
</div>
<hr>
<div class="refsect2">
-<a name="idp81344"></a><h3>Element Pads</h3>
+<a name="idp135056"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesink.html b/docs/plugins/html/gstreamer-plugins-fakesink.html
index f579a81..c45b9e0 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesink.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesink.html
@@ -86,7 +86,7 @@ Dummy sink that swallows everything.
<p>
</p>
<div class="refsect2">
-<a name="idp9286240"></a><h3>Example launch line</h3>
+<a name="idp6480224"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -104,7 +104,7 @@ Dummy sink that swallows everything.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10003392"></a><h3>Element Information</h3>
+<a name="idp6482832"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -127,7 +127,7 @@ Dummy sink that swallows everything.
</div>
<hr>
<div class="refsect2">
-<a name="idp10010928"></a><h3>Element Pads</h3>
+<a name="idp10479328"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fakesrc.html b/docs/plugins/html/gstreamer-plugins-fakesrc.html
index fd7ebbb..bdd5b83 100644
--- a/docs/plugins/html/gstreamer-plugins-fakesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fakesrc.html
@@ -102,7 +102,7 @@ basic <span class="application">GStreamer</span> core functionality is:
<p>
</p>
<div class="refsect2">
-<a name="idp7348848"></a><h3>Example launch line</h3>
+<a name="idp5917840"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -124,7 +124,7 @@ Last reviewed on 2008-06-20 (0.10.21)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp7352032"></a><h3>Element Information</h3>
+<a name="idp5921024"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -147,7 +147,7 @@ Last reviewed on 2008-06-20 (0.10.21)
</div>
<hr>
<div class="refsect2">
-<a name="idp7359440"></a><h3>Element Pads</h3>
+<a name="idp5928432"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsink.html b/docs/plugins/html/gstreamer-plugins-fdsink.html
index 1feab11..1c74c3a 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsink.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsink.html
@@ -85,7 +85,7 @@ Last reviewed on 2006-04-28 (0.10.6)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9210352"></a><h3>Element Information</h3>
+<a name="idp9141056"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -108,7 +108,7 @@ Last reviewed on 2006-04-28 (0.10.6)
</div>
<hr>
<div class="refsect2">
-<a name="idp9133200"></a><h3>Element Pads</h3>
+<a name="idp6713600"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-fdsrc.html b/docs/plugins/html/gstreamer-plugins-fdsrc.html
index 6326bb7..e0519c8 100644
--- a/docs/plugins/html/gstreamer-plugins-fdsrc.html
+++ b/docs/plugins/html/gstreamer-plugins-fdsrc.html
@@ -97,7 +97,7 @@ The message's structure contains one field:
<p>
</p>
<div class="refsect2">
-<a name="idp6457056"></a><h3>Example launch line</h3>
+<a name="idp8708016"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -119,7 +119,7 @@ Last reviewed on 2008-06-20 (0.10.21)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6460208"></a><h3>Element Information</h3>
+<a name="idp8711168"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -142,7 +142,7 @@ Last reviewed on 2008-06-20 (0.10.21)
</div>
<hr>
<div class="refsect2">
-<a name="idp10135952"></a><h3>Element Pads</h3>
+<a name="idp8718624"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-filesink.html b/docs/plugins/html/gstreamer-plugins-filesink.html
index 3409245..8797496 100644
--- a/docs/plugins/html/gstreamer-plugins-filesink.html
+++ b/docs/plugins/html/gstreamer-plugins-filesink.html
@@ -80,7 +80,7 @@ Write incoming data to a file in the local file system.
<p>
</p>
<div class="refsect2">
-<a name="idp9711680"></a><h3>Example launch line</h3>
+<a name="idp6187584"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -98,7 +98,7 @@ Write incoming data to a file in the local file system.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9714240"></a><h3>Element Information</h3>
+<a name="idp6190144"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -121,7 +121,7 @@ Write incoming data to a file in the local file system.
</div>
<hr>
<div class="refsect2">
-<a name="idp9721648"></a><h3>Element Pads</h3>
+<a name="idp6197552"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-filesrc.html b/docs/plugins/html/gstreamer-plugins-filesrc.html
index d0bf096..5c8c3f0 100644
--- a/docs/plugins/html/gstreamer-plugins-filesrc.html
+++ b/docs/plugins/html/gstreamer-plugins-filesrc.html
@@ -82,7 +82,7 @@ Read data from a file in the local file system.
<p>
</p>
<div class="refsect2">
-<a name="idp9089696"></a><h3>Example launch line</h3>
+<a name="idp10794768"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -100,7 +100,7 @@ Read data from a file in the local file system.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9092304"></a><h3>Element Information</h3>
+<a name="idp10797376"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -123,7 +123,7 @@ Read data from a file in the local file system.
</div>
<hr>
<div class="refsect2">
-<a name="idp10170896"></a><h3>Element Pads</h3>
+<a name="idp10848016"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-funnel.html b/docs/plugins/html/gstreamer-plugins-funnel.html
index d1bca75..4a58439 100644
--- a/docs/plugins/html/gstreamer-plugins-funnel.html
+++ b/docs/plugins/html/gstreamer-plugins-funnel.html
@@ -68,7 +68,7 @@ immediately when they arrive.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp6849904"></a><h3>Element Information</h3>
+<a name="idp9944992"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -91,7 +91,7 @@ immediately when they arrive.
</div>
<hr>
<div class="refsect2">
-<a name="idp6604704"></a><h3>Element Pads</h3>
+<a name="idp9858432"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-identity.html b/docs/plugins/html/gstreamer-plugins-identity.html
index 32b5e31..6f7cbfe 100644
--- a/docs/plugins/html/gstreamer-plugins-identity.html
+++ b/docs/plugins/html/gstreamer-plugins-identity.html
@@ -90,7 +90,7 @@ useful diagnostic functions, such as offset and timestamp checking.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10472176"></a><h3>Element Information</h3>
+<a name="idp11113760"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -113,7 +113,7 @@ useful diagnostic functions, such as offset and timestamp checking.
</div>
<hr>
<div class="refsect2">
-<a name="idp10479632"></a><h3>Element Pads</h3>
+<a name="idp11121216"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-input-selector.html b/docs/plugins/html/gstreamer-plugins-input-selector.html
index 17029ce..84070e4 100644
--- a/docs/plugins/html/gstreamer-plugins-input-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-input-selector.html
@@ -63,6 +63,8 @@
"<a class="link" href="gstreamer-plugins-input-selector.html#GstInputSelector--n-pads" title='The "n-pads" property'>n-pads</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="gstreamer-plugins-input-selector.html#GstInputSelector--select-all" title='The "select-all" property'>select-all</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="gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams" title='The "sync-streams" property'>sync-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="gstreamer-plugins-input-selector.html#GstInputSelector--cache-buffers" title='The "cache-buffers" property'>cache-buffers</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="gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode" title='The "sync-mode" property'>sync-mode</a>" <span class="type">GstInputSelectorSyncMode</span> : Read / Write
</pre>
</div>
<div class="refsect1">
@@ -103,7 +105,7 @@ properties, which users may find useful, namely:
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp9842896"></a><h3>Element Information</h3>
+<a name="idp11337552"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -126,7 +128,7 @@ properties, which users may find useful, namely:
</div>
<hr>
<div class="refsect2">
-<a name="idp10612512"></a><h3>Element Pads</h3>
+<a name="idp11345088"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -210,13 +212,49 @@ properties, which users may find useful, namely:
<pre class="programlisting"> "sync-streams" <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 to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> all inactive streams will be synced to the
-running time of the active stream. This makes sure that no
-buffers are dropped by input-selector that might be needed
-when switching the active pad.
+running time of the active stream or to the current clock.
+</p>
+<p>
+To make sure no buffers are dropped by input-selector
+that might be needed when switching the active pad,
+sync-mode should be set to "clock" and cache-buffers to TRUE.
</p>
<p>Default value: TRUE</p>
<p class="since">Since 0.10.36</p>
</div>
+<hr>
+<div class="refsect2">
+<a name="GstInputSelector--cache-buffers"></a><h3>The <code class="literal">"cache-buffers"</code> property</h3>
+<pre class="programlisting"> "cache-buffers" <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 to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> and GstInputSelector:sync-streams is also set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
+the active pad will cache the buffers still considered valid (after current
+running time, see sync-mode) to avoid missing frames if/when the pad is
+reactivated.
+</p>
+<p>
+The active pad may push more buffers than what is currently displayed/consumed
+and when changing pads those buffers will be discarded and the only way to
+reactivate that pad without loosing the already consumed buffers is to enable cache.
+</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstInputSelector--sync-mode"></a><h3>The <code class="literal">"sync-mode"</code> property</h3>
+<pre class="programlisting"> "sync-mode" <span class="type">GstInputSelectorSyncMode</span> : Read / Write</pre>
+<p>
+Select how input-selector will sync buffers when in sync-streams mode.
+</p>
+<p>
+Note that when using the "active-segment" mode, the "active-segment" may
+be ahead of current clock time when switching the active pad, as the current
+active pad may have pushed more buffers than what was displayed/consumed,
+which may cause delays and some missing buffers.
+</p>
+<p>Default value: Sync using the current active segment</p>
+<p class="since">Since 0.10.36</p>
+</div>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-input-selector.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gstreamer-plugins-multiqueue.html b/docs/plugins/html/gstreamer-plugins-multiqueue.html
index 8b6f452..9c9ab07 100644
--- a/docs/plugins/html/gstreamer-plugins-multiqueue.html
+++ b/docs/plugins/html/gstreamer-plugins-multiqueue.html
@@ -83,7 +83,7 @@
<p>
</p>
<div class="refsect2">
-<a name="idp10414640"></a><p>
+<a name="idp11098736"></a><p>
Multiqueue is similar to a normal <a class="link" href="gstreamer-plugins-queue.html#GstQueue"><span class="type">GstQueue</span></a> with the following additional
features:
</p>
@@ -173,7 +173,7 @@ Last reviewed on 2008-01-25 (0.10.17)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10854272"></a><h3>Element Information</h3>
+<a name="idp11562752"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -196,7 +196,7 @@ Last reviewed on 2008-01-25 (0.10.17)
</div>
<hr>
<div class="refsect2">
-<a name="idp10861728"></a><h3>Element Pads</h3>
+<a name="idp11570208"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-output-selector.html b/docs/plugins/html/gstreamer-plugins-output-selector.html
index 9740086..8eee32f 100644
--- a/docs/plugins/html/gstreamer-plugins-output-selector.html
+++ b/docs/plugins/html/gstreamer-plugins-output-selector.html
@@ -70,7 +70,7 @@ Direct input stream to one out of N output pads.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp10445936"></a><h3>Element Information</h3>
+<a name="idp10403120"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -93,7 +93,7 @@ Direct input stream to one out of N output pads.
</div>
<hr>
<div class="refsect2">
-<a name="idp10698096"></a><h3>Element Pads</h3>
+<a name="idp10615680"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
index b6d073a..f1919dc 100644
--- a/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
+++ b/docs/plugins/html/gstreamer-plugins-plugin-coreelements.html
@@ -28,7 +28,7 @@
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
-<a name="idp7693648"></a><h2>Plugin Information</h2>
+<a name="idp7200880"></a><h2>Plugin Information</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -38,7 +38,7 @@
</tr>
<tr>
<td><p><span class="term">version</span></p></td>
-<td>0.11.91</td>
+<td>0.11.92</td>
</tr>
<tr>
<td><p><span class="term">run-time license</span></p></td>
@@ -56,7 +56,7 @@
</table></div>
</div>
<div class="refsect1">
-<a name="idp7977664"></a><h2>Elements</h2>
+<a name="idp6375472"></a><h2>Elements</h2>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-queue.html b/docs/plugins/html/gstreamer-plugins-queue.html
index f3e00b7..68445d8 100644
--- a/docs/plugins/html/gstreamer-plugins-queue.html
+++ b/docs/plugins/html/gstreamer-plugins-queue.html
@@ -122,7 +122,7 @@ up. Both signals are emitted from the context of the streaming thread.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11058880"></a><h3>Element Information</h3>
+<a name="idp11696976"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -145,7 +145,7 @@ up. Both signals are emitted from the context of the streaming thread.
</div>
<hr>
<div class="refsect2">
-<a name="idp11066336"></a><h3>Element Pads</h3>
+<a name="idp11704432"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-queue2.html b/docs/plugins/html/gstreamer-plugins-queue2.html
index f8ddc46..4daac17 100644
--- a/docs/plugins/html/gstreamer-plugins-queue2.html
+++ b/docs/plugins/html/gstreamer-plugins-queue2.html
@@ -95,7 +95,7 @@ The default queue size limits are 100 buffers, 2MB of data, or
two seconds worth of data, whichever is reached first.
</p>
<p>
-If you set temp-tmpl to a value such as /tmp/gstreamer-XXXXXX, the element
+If you set temp-template to a value such as /tmp/gstreamer-XXXXXX, the element
will allocate a random free filename and buffer data in the file.
By using this, it will buffer the entire stream data on the file independently
of the queue size limits, they will only be used for buffering statistics.
@@ -112,7 +112,7 @@ Last reviewed on 2009-07-10 (0.10.24)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11373072"></a><h3>Element Information</h3>
+<a name="idp11966144"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -135,7 +135,7 @@ Last reviewed on 2009-07-10 (0.10.24)
</div>
<hr>
<div class="refsect2">
-<a name="idp11380480"></a><h3>Element Pads</h3>
+<a name="idp11973552"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-tee.html b/docs/plugins/html/gstreamer-plugins-tee.html
index fca4137..5725672 100644
--- a/docs/plugins/html/gstreamer-plugins-tee.html
+++ b/docs/plugins/html/gstreamer-plugins-tee.html
@@ -83,7 +83,7 @@ branch would stall the other branches.
<p>
</p>
<div class="refsect2">
-<a name="idp11219408"></a><h3>Example launch line</h3>
+<a name="idp6936944"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
@@ -102,7 +102,7 @@ element.
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11222128"></a><h3>Element Information</h3>
+<a name="idp6939664"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -125,7 +125,7 @@ element.
</div>
<hr>
<div class="refsect2">
-<a name="idp11485952"></a><h3>Element Pads</h3>
+<a name="idp12121888"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-typefind.html b/docs/plugins/html/gstreamer-plugins-typefind.html
index 1989c0e..1711b17 100644
--- a/docs/plugins/html/gstreamer-plugins-typefind.html
+++ b/docs/plugins/html/gstreamer-plugins-typefind.html
@@ -90,7 +90,7 @@ Plugins can register custom typefinders by using <a href="http://gstreamer.freed
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp11281248"></a><h3>Element Information</h3>
+<a name="idp11522416"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -113,7 +113,7 @@ Plugins can register custom typefinders by using <a href="http://gstreamer.freed
</div>
<hr>
<div class="refsect2">
-<a name="idp11288656"></a><h3>Element Pads</h3>
+<a name="idp11529824"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins-valve.html b/docs/plugins/html/gstreamer-plugins-valve.html
index 6b72efd..41d9808 100644
--- a/docs/plugins/html/gstreamer-plugins-valve.html
+++ b/docs/plugins/html/gstreamer-plugins-valve.html
@@ -81,7 +81,7 @@ Documentation last reviewed on 2010-12-30 (0.10.31)
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
-<a name="idp8009792"></a><h3>Element Information</h3>
+<a name="idp7276800"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
@@ -104,7 +104,7 @@ Documentation last reviewed on 2010-12-30 (0.10.31)
</div>
<hr>
<div class="refsect2">
-<a name="idp11315344"></a><h3>Element Pads</h3>
+<a name="idp6954256"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
diff --git a/docs/plugins/html/gstreamer-plugins.devhelp2 b/docs/plugins/html/gstreamer-plugins.devhelp2
index 878a7e8..5b4e071 100644
--- a/docs/plugins/html/gstreamer-plugins.devhelp2
+++ b/docs/plugins/html/gstreamer-plugins.devhelp2
@@ -26,14 +26,14 @@
</sub>
</chapters>
<functions>
- <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp7244064"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp8108768"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp81344"/>
+ <keyword type="" name="Example launch line" link="gstreamer-plugins-capsfilter.html#idp7212656"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-capsfilter.html#idp7705936"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-capsfilter.html#idp135056"/>
<keyword type="struct" name="struct GstCapsFilter" link="gstreamer-plugins-capsfilter.html#GstCapsFilter-struct"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gstreamer-plugins-capsfilter.html#GstCapsFilter--caps"/>
- <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#idp7348848"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp7352032"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp7359440"/>
+ <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesrc.html#idp5917840"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-fakesrc.html#idp5921024"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesrc.html#idp5928432"/>
<keyword type="struct" name="struct GstFakeSrc" link="gstreamer-plugins-fakesrc.html#GstFakeSrc-struct"/>
<keyword type="enum" name="enum GstFakeSrcDataType" link="gstreamer-plugins-fakesrc.html#GstFakeSrcDataType"/>
<keyword type="enum" name="enum GstFakeSrcFillType" link="gstreamer-plugins-fakesrc.html#GstFakeSrcFillType"/>
@@ -57,9 +57,9 @@
<keyword type="property" name="The &quot;sync&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--sync"/>
<keyword type="property" name="The &quot;format&quot; property" link="gstreamer-plugins-fakesrc.html#GstFakeSrc--format"/>
<keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesrc.html#GstFakeSrc-handoff"/>
- <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp9286240"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp10003392"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp10010928"/>
+ <keyword type="" name="Example launch line" link="gstreamer-plugins-fakesink.html#idp6480224"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-fakesink.html#idp6482832"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-fakesink.html#idp10479328"/>
<keyword type="struct" name="struct GstFakeSink" link="gstreamer-plugins-fakesink.html#GstFakeSink-struct"/>
<keyword type="enum" name="enum GstFakeSinkStateError" link="gstreamer-plugins-fakesink.html#GstFakeSinkStateError"/>
<keyword type="property" name="The &quot;can-activate-pull&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--can-activate-pull"/>
@@ -72,19 +72,19 @@
<keyword type="property" name="The &quot;num-buffers&quot; property" link="gstreamer-plugins-fakesink.html#GstFakeSink--num-buffers"/>
<keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-handoff"/>
<keyword type="signal" name="The &quot;preroll-handoff&quot; signal" link="gstreamer-plugins-fakesink.html#GstFakeSink-preroll-handoff"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp9210352"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp9133200"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-fdsink.html#idp9141056"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsink.html#idp6713600"/>
<keyword type="struct" name="struct GstFdSink" link="gstreamer-plugins-fdsink.html#GstFdSink-struct"/>
<keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-fdsink.html#GstFdSink--fd"/>
- <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#idp6457056"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp6460208"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp10135952"/>
+ <keyword type="" name="Example launch line" link="gstreamer-plugins-fdsrc.html#idp8708016"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-fdsrc.html#idp8711168"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-fdsrc.html#idp8718624"/>
<keyword type="struct" name="struct GstFdSrc" link="gstreamer-plugins-fdsrc.html#GstFdSrc-struct"/>
<keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--fd"/>
<keyword type="property" name="The &quot;timeout&quot; property" link="gstreamer-plugins-fdsrc.html#GstFdSrc--timeout"/>
- <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#idp9089696"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp9092304"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp10170896"/>
+ <keyword type="" name="Example launch line" link="gstreamer-plugins-filesrc.html#idp10794768"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-filesrc.html#idp10797376"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-filesrc.html#idp10848016"/>
<keyword type="struct" name="struct GstFileSrc" link="gstreamer-plugins-filesrc.html#GstFileSrc-struct"/>
<keyword type="property" name="The &quot;fd&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--fd"/>
<keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--location"/>
@@ -92,19 +92,19 @@
<keyword type="property" name="The &quot;touch&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--touch"/>
<keyword type="property" name="The &quot;use-mmap&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--use-mmap"/>
<keyword type="property" name="The &quot;sequential&quot; property" link="gstreamer-plugins-filesrc.html#GstFileSrc--sequential"/>
- <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp9711680"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp9714240"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp9721648"/>
+ <keyword type="" name="Example launch line" link="gstreamer-plugins-filesink.html#idp6187584"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-filesink.html#idp6190144"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-filesink.html#idp6197552"/>
<keyword type="struct" name="struct GstFileSink" link="gstreamer-plugins-filesink.html#GstFileSink-struct"/>
<keyword type="property" name="The &quot;location&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--location"/>
<keyword type="property" name="The &quot;buffer-mode&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-mode"/>
<keyword type="property" name="The &quot;buffer-size&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--buffer-size"/>
<keyword type="property" name="The &quot;append&quot; property" link="gstreamer-plugins-filesink.html#GstFileSink--append"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp6849904"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp6604704"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-funnel.html#idp9944992"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-funnel.html#idp9858432"/>
<keyword type="struct" name="struct GstFunnel" link="gstreamer-plugins-funnel.html#GstFunnel-struct"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp10472176"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp10479632"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-identity.html#idp11113760"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-identity.html#idp11121216"/>
<keyword type="struct" name="struct GstIdentity" link="gstreamer-plugins-identity.html#GstIdentity-struct"/>
<keyword type="property" name="The &quot;check-perfect&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-perfect"/>
<keyword type="property" name="The &quot;datarate&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--datarate"/>
@@ -120,18 +120,20 @@
<keyword type="property" name="The &quot;check-imperfect-timestamp&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--check-imperfect-timestamp"/>
<keyword type="property" name="The &quot;signal-handoffs&quot; property" link="gstreamer-plugins-identity.html#GstIdentity--signal-handoffs"/>
<keyword type="signal" name="The &quot;handoff&quot; signal" link="gstreamer-plugins-identity.html#GstIdentity-handoff"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#idp9842896"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp10612512"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-input-selector.html#idp11337552"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-input-selector.html#idp11345088"/>
<keyword type="struct" name="struct GstInputSelector" link="gstreamer-plugins-input-selector.html#GstInputSelector-struct"/>
<keyword type="property" name="The &quot;active-pad&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--active-pad"/>
<keyword type="property" name="The &quot;n-pads&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--n-pads"/>
<keyword type="property" name="The &quot;select-all&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--select-all"/>
<keyword type="property" name="The &quot;sync-streams&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams"/>
+ <keyword type="property" name="The &quot;cache-buffers&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--cache-buffers"/>
+ <keyword type="property" name="The &quot;sync-mode&quot; property" link="gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode"/>
<keyword type="signal" name="The &quot;block&quot; signal" link="gstreamer-plugins-input-selector.html#GstInputSelector-block"/>
<keyword type="signal" name="The &quot;switch&quot; signal" link="gstreamer-plugins-input-selector.html#GstInputSelector-switch"/>
- <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#idp10414640"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp10854272"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp10861728"/>
+ <keyword type="" name="" link="gstreamer-plugins-multiqueue.html#idp11098736"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-multiqueue.html#idp11562752"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-multiqueue.html#idp11570208"/>
<keyword type="struct" name="struct GstMultiQueue" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-struct"/>
<keyword type="property" name="The &quot;extra-size-buffers&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers"/>
<keyword type="property" name="The &quot;extra-size-bytes&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes"/>
@@ -145,14 +147,14 @@
<keyword type="property" name="The &quot;sync-by-running-time&quot; property" link="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time"/>
<keyword type="signal" name="The &quot;overrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun"/>
<keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp10445936"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp10698096"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-output-selector.html#idp10403120"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-output-selector.html#idp10615680"/>
<keyword type="struct" name="struct GstOutputSelector" link="gstreamer-plugins-output-selector.html#GstOutputSelector-struct"/>
<keyword type="property" name="The &quot;active-pad&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--active-pad"/>
<keyword type="property" name="The &quot;resend-latest&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--resend-latest"/>
<keyword type="property" name="The &quot;pad-negotiation-mode&quot; property" link="gstreamer-plugins-output-selector.html#GstOutputSelector--pad-negotiation-mode"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#idp11058880"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp11066336"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-queue.html#idp11696976"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-queue.html#idp11704432"/>
<keyword type="struct" name="struct GstQueue" link="gstreamer-plugins-queue.html#GstQueue-struct"/>
<keyword type="enum" name="enum GstQueueLeaky" link="gstreamer-plugins-queue.html#GstQueueLeaky"/>
<keyword type="property" name="The &quot;current-level-buffers&quot; property" link="gstreamer-plugins-queue.html#GstQueue--current-level-buffers"/>
@@ -170,8 +172,8 @@
<keyword type="signal" name="The &quot;running&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-running"/>
<keyword type="signal" name="The &quot;underrun&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-underrun"/>
<keyword type="signal" name="The &quot;pushing&quot; signal" link="gstreamer-plugins-queue.html#GstQueue-pushing"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp11373072"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp11380480"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-queue2.html#idp11966144"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-queue2.html#idp11973552"/>
<keyword type="struct" name="struct GstQueue2" link="gstreamer-plugins-queue2.html#GstQueue2-struct"/>
<keyword type="property" name="The &quot;current-level-buffers&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers"/>
<keyword type="property" name="The &quot;current-level-bytes&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--current-level-bytes"/>
@@ -187,9 +189,9 @@
<keyword type="property" name="The &quot;use-rate-estimate&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate"/>
<keyword type="property" name="The &quot;temp-remove&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--temp-remove"/>
<keyword type="property" name="The &quot;ring-buffer-max-size&quot; property" link="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size"/>
- <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp11219408"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp11222128"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp11485952"/>
+ <keyword type="" name="Example launch line" link="gstreamer-plugins-tee.html#idp6936944"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-tee.html#idp6939664"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-tee.html#idp12121888"/>
<keyword type="struct" name="struct GstTee" link="gstreamer-plugins-tee.html#GstTee-struct"/>
<keyword type="enum" name="enum GstTeePullMode" link="gstreamer-plugins-tee.html#GstTeePullMode"/>
<keyword type="property" name="The &quot;has-chain&quot; property" link="gstreamer-plugins-tee.html#GstTee--has-chain"/>
@@ -199,16 +201,16 @@
<keyword type="property" name="The &quot;silent&quot; property" link="gstreamer-plugins-tee.html#GstTee--silent"/>
<keyword type="property" name="The &quot;pull-mode&quot; property" link="gstreamer-plugins-tee.html#GstTee--pull-mode"/>
<keyword type="property" name="The &quot;alloc-pad&quot; property" link="gstreamer-plugins-tee.html#GstTee--alloc-pad"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp11281248"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp11288656"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-typefind.html#idp11522416"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-typefind.html#idp11529824"/>
<keyword type="struct" name="struct GstTypeFindElement" link="gstreamer-plugins-typefind.html#GstTypeFindElement-struct"/>
<keyword type="property" name="The &quot;caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--caps"/>
<keyword type="property" name="The &quot;maximum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--maximum"/>
<keyword type="property" name="The &quot;minimum&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--minimum"/>
<keyword type="property" name="The &quot;force-caps&quot; property" link="gstreamer-plugins-typefind.html#GstTypeFindElement--force-caps"/>
<keyword type="signal" name="The &quot;have-type&quot; signal" link="gstreamer-plugins-typefind.html#GstTypeFindElement-have-type"/>
- <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp8009792"/>
- <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp11315344"/>
+ <keyword type="" name="Element Information" link="gstreamer-plugins-valve.html#idp7276800"/>
+ <keyword type="" name="Element Pads" link="gstreamer-plugins-valve.html#idp6954256"/>
<keyword type="struct" name="struct GstValve" link="gstreamer-plugins-valve.html#GstValve-struct"/>
<keyword type="property" name="The &quot;drop&quot; property" link="gstreamer-plugins-valve.html#GstValve--drop"/>
<keyword type="constant" name="FAKE_SRC_DATA_ALLOCATE" link="gstreamer-plugins-fakesrc.html#FAKE-SRC-DATA-ALLOCATE:CAPS"/>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 68cd2ef..00593f5 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
<div>
<div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Core Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
<div><p class="releaseinfo">
- for GStreamer Core Plugins 1.0 (0.11.91)
+ for GStreamer Core Plugins 1.0 (0.11.92)
The latest version of this documentation can be found on-line at
<a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-plugins/html/</a>.
</p></div>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index 4638518..01b5927 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -194,6 +194,8 @@
<ANCHOR id="GstInputSelector--n-pads" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--n-pads">
<ANCHOR id="GstInputSelector--select-all" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--select-all">
<ANCHOR id="GstInputSelector--sync-streams" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--sync-streams">
+<ANCHOR id="GstInputSelector--cache-buffers" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--cache-buffers">
+<ANCHOR id="GstInputSelector--sync-mode" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector--sync-mode">
<ANCHOR id="gstreamer-plugins-input-selector.signal-details" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#gstreamer-plugins-input-selector.signal-details">
<ANCHOR id="GstInputSelector-block" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector-block">
<ANCHOR id="GstInputSelector-switch" href="gstreamer-plugins-1.0/gstreamer-plugins-input-selector.html#GstInputSelector-switch">
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index 74a4211..5795411 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -3,7 +3,7 @@
<description>standard GStreamer elements</description>
<filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
<basename>libgstcoreelements.so</basename>
- <version>0.11.91</version>
+ <version>0.11.92</version>
<license>LGPL</license>
<source>gstreamer</source>
<package>GStreamer source release</package>
diff --git a/docs/pwg/Makefile.in b/docs/pwg/Makefile.in
index 6f684d8..e22b674 100644
--- a/docs/pwg/Makefile.in
+++ b/docs/pwg/Makefile.in
@@ -73,6 +73,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = $(srcdir)/../htmlinstall.mak $(srcdir)/../manuals.mak \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/common/upload-doc.mak
@@ -271,6 +272,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -423,7 +428,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/slides/Makefile.in b/docs/slides/Makefile.in
index 064b8fc..b244443 100644
--- a/docs/slides/Makefile.in
+++ b/docs/slides/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = docs/slides
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/docs/xsl/Makefile.in b/docs/xsl/Makefile.in
index 0325dfb..e1a64f5 100644
--- a/docs/xsl/Makefile.in
+++ b/docs/xsl/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = docs/xsl
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/gst/Makefile.in b/gst/Makefile.in
index 008347b..2e6f45d 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -53,6 +53,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = gst
DIST_COMMON = $(libgstreamer_@GST_API_VERSION@include_HEADERS) \
@@ -412,6 +413,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -564,7 +569,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/gst/gst.c b/gst/gst.c
index d78e9ce..96c20b5 100644
--- a/gst/gst.c
+++ b/gst/gst.c
@@ -139,7 +139,7 @@ extern gboolean _priv_gst_disable_registry_update;
#endif
#ifndef GST_DISABLE_GST_DEBUG
-extern const gchar *priv_gst_dump_dot_dir;
+const gchar *priv_gst_dump_dot_dir;
#endif
/* defaults */
@@ -746,7 +746,6 @@ init_post (GOptionContext * context, GOptionGroup * group, gpointer data,
g_type_class_ref (gst_param_spec_fraction_get_type ());
_priv_gst_tag_initialize ();
- _priv_gst_toc_initialize ();
gst_parse_context_get_type ();
_priv_gst_plugin_initialize ();
diff --git a/gst/gst_private.h b/gst/gst_private.h
index f44c6f3..c15c8fa 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -113,7 +113,6 @@ void _priv_gst_sample_initialize (void);
void _priv_gst_tag_initialize (void);
void _priv_gst_value_initialize (void);
void _priv_gst_debug_init (void);
-void _priv_gst_toc_initialize (void);
/* TOC functions */
/* These functions are used to parse TOC messages, events and queries */
@@ -296,6 +295,27 @@ struct _GstPluginClass {
gpointer _gst_reserved[GST_PADDING];
};
+struct _GstPluginFeature {
+ GstObject object;
+
+ /*< private >*/
+ gboolean loaded;
+ guint rank;
+
+ const gchar *plugin_name;
+ GstPlugin *plugin; /* weak ref */
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstPluginFeatureClass {
+ GstObjectClass parent_class;
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
#include "gsttypefind.h"
struct _GstTypeFindFactory {
@@ -319,6 +339,31 @@ struct _GstTypeFindFactoryClass {
gpointer _gst_reserved[GST_PADDING];
};
+struct _GstElementFactory {
+ GstPluginFeature parent;
+
+ GType type; /* unique GType of element or 0 if not loaded */
+
+ gpointer metadata;
+
+ GList * staticpadtemplates; /* GstStaticPadTemplate list */
+ guint numpadtemplates;
+
+ /* URI interface stuff */
+ GstURIType uri_type;
+ gchar ** uri_protocols;
+
+ GList * interfaces; /* interface type names this element implements */
+
+ /*< private >*/
+ gpointer _gst_reserved[GST_PADDING];
+};
+
+struct _GstElementFactoryClass {
+ GstPluginFeatureClass parent_class;
+
+ gpointer _gst_reserved[GST_PADDING];
+};
G_END_DECLS
#endif /* __GST_PRIVATE_H__ */
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 665259e..d5ce5f6 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -2152,7 +2152,7 @@ gst_bin_element_set_state (GstBin * bin, GstElement * element,
GstState next)
{
GstStateChangeReturn ret;
- GstState pending, child_current, child_pending;
+ GstState child_current, child_pending;
gboolean locked;
GList *found;
@@ -2182,17 +2182,76 @@ gst_bin_element_set_state (GstBin * bin, GstElement * element,
goto no_preroll;
}
- GST_OBJECT_LOCK (bin);
- pending = GST_STATE_PENDING (bin);
+ GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
+ "current %s pending %s, desired next %s",
+ gst_element_state_get_name (child_current),
+ gst_element_state_get_name (child_pending),
+ gst_element_state_get_name (next));
/* Try not to change the state of elements that are already in the state we're
* going to */
- if (!(next == GST_STATE_PLAYING || child_pending != GST_STATE_VOID_PENDING ||
- (child_pending == GST_STATE_VOID_PENDING &&
- ((pending > child_current && next > child_current) ||
- (pending < child_current && next < child_current)))))
+ if (child_current == next && child_pending == GST_STATE_VOID_PENDING) {
+ /* child is already at the requested state, return previous return. Note that
+ * if the child has a pending state to next, we will still call the
+ * set_state function */
goto unneeded;
+ } else if (next > current) {
+ /* upward state change */
+ if (child_pending == GST_STATE_VOID_PENDING) {
+ /* .. and the child is not busy doing anything */
+ if (child_current > next) {
+ /* .. and is already past the requested state, assume it got there
+ * without error */
+ ret = GST_STATE_CHANGE_SUCCESS;
+ goto unneeded;
+ }
+ } else if (child_pending > child_current) {
+ /* .. and the child is busy going upwards */
+ if (child_current >= next) {
+ /* .. and is already past the requested state, assume it got there
+ * without error */
+ ret = GST_STATE_CHANGE_SUCCESS;
+ goto unneeded;
+ }
+ } else {
+ /* .. and the child is busy going downwards */
+ if (child_current > next) {
+ /* .. and is already past the requested state, assume it got there
+ * without error */
+ ret = GST_STATE_CHANGE_SUCCESS;
+ goto unneeded;
+ }
+ }
+ } else if (next < current) {
+ /* downward state change */
+ if (child_pending == GST_STATE_VOID_PENDING) {
+ /* .. and the child is not busy doing anything */
+ if (child_current < next) {
+ /* .. and is already past the requested state, assume it got there
+ * without error */
+ ret = GST_STATE_CHANGE_SUCCESS;
+ goto unneeded;
+ }
+ } else if (child_pending < child_current) {
+ /* .. and the child is busy going downwards */
+ if (child_current <= next) {
+ /* .. and is already past the requested state, assume it got there
+ * without error */
+ ret = GST_STATE_CHANGE_SUCCESS;
+ goto unneeded;
+ }
+ } else {
+ /* .. and the child is busy going upwards */
+ if (child_current < next) {
+ /* .. and is already past the requested state, assume it got there
+ * without error */
+ ret = GST_STATE_CHANGE_SUCCESS;
+ goto unneeded;
+ }
+ }
+ }
+ GST_OBJECT_LOCK (bin);
/* the element was busy with an upwards async state change, we must wait for
* an ASYNC_DONE message before we attemp to change the state. */
if ((found =
@@ -2234,25 +2293,22 @@ locked:
GST_STATE_UNLOCK (element);
return ret;
}
-was_busy:
- {
- GST_DEBUG_OBJECT (element, "element was busy, delaying state change");
- GST_OBJECT_UNLOCK (bin);
- GST_STATE_UNLOCK (element);
- return GST_STATE_CHANGE_ASYNC;
- }
unneeded:
{
GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
- "skipping transition from %s to %s, since bin pending"
- " is %s : last change state return follows",
+ "skipping transition from %s to %s",
gst_element_state_get_name (child_current),
- gst_element_state_get_name (next),
- gst_element_state_get_name (pending));
- GST_OBJECT_UNLOCK (bin);
+ gst_element_state_get_name (next));
GST_STATE_UNLOCK (element);
return ret;
}
+was_busy:
+ {
+ GST_DEBUG_OBJECT (element, "element was busy, delaying state change");
+ GST_OBJECT_UNLOCK (bin);
+ GST_STATE_UNLOCK (element);
+ return GST_STATE_CHANGE_ASYNC;
+ }
}
/* gst_iterator_fold functions for pads_activate
diff --git a/gst/gstcaps.c b/gst/gstcaps.c
index 2f4a341..ec95ed5 100644
--- a/gst/gstcaps.c
+++ b/gst/gstcaps.c
@@ -177,7 +177,7 @@ _gst_caps_free (GstCaps * caps)
g_ptr_array_free (GST_CAPS_ARRAY (caps), TRUE);
#ifdef DEBUG_REFCOUNT
- GST_CAT_LOG (GST_CAT_CAPS, "freeing caps %p", caps);
+ GST_CAT_TRACE (GST_CAT_CAPS, "freeing caps %p", caps);
#endif
g_slice_free1 (GST_MINI_OBJECT_SIZE (caps), caps);
}
diff --git a/gst/gstcompat.h b/gst/gstcompat.h
index a35c6ce..97728f4 100644
--- a/gst/gstcompat.h
+++ b/gst/gstcompat.h
@@ -56,6 +56,8 @@ G_BEGIN_DECLS
#define gst_adapter_prev_timestamp gst_adapter_prev_pts
+#define gst_tag_list_free(taglist) gst_tag_list_unref(taglist)
+
#ifndef GST_DISABLE_DEPRECATED
#endif /* not GST_DISABLE_DEPRECATED */
diff --git a/gst/gstdebugutils.c b/gst/gstdebugutils.c
index 8e31bde..e67a77c 100644
--- a/gst/gstdebugutils.c
+++ b/gst/gstdebugutils.c
@@ -54,7 +54,7 @@
/*** PIPELINE GRAPHS **********************************************************/
-const gchar *priv_gst_dump_dot_dir; /* NULL *//* set from gst.c */
+extern const gchar *priv_gst_dump_dot_dir; /* NULL *//* set from gst.c */
const gchar spaces[] = {
" " /* 32 */
diff --git a/gst/gstelement.c b/gst/gstelement.c
index b3366f4..2962830 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -325,7 +325,7 @@ gst_element_release_request_pad (GstElement * element, GstPad * pad)
/* if the element implements a custom release function we call that, else we
* simply remove the pad from the element */
if (oclass->release_pad)
- (oclass->release_pad) (element, pad);
+ oclass->release_pad (element, pad);
else
gst_element_remove_pad (element, pad);
}
@@ -1523,9 +1523,10 @@ gst_element_default_send_event (GstElement * element, GstEvent * event)
* This function takes owership of the provided event so you should
* gst_event_ref() it if you want to reuse the event after this call.
*
- * Returns: %TRUE if the event was handled.
- *
* MT safe.
+ *
+ * Returns: %TRUE if the event was handled. Events that trigger a preroll (such
+ * as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.
*/
gboolean
gst_element_send_event (GstElement * element, GstEvent * event)
@@ -1564,9 +1565,10 @@ gst_element_send_event (GstElement * element, GstEvent * event)
* the parameters. The seek event is sent to the element using
* gst_element_send_event().
*
- * Returns: %TRUE if the event was handled.
- *
* MT safe.
+ *
+ * Returns: %TRUE if the event was handled. Flushing seeks will trigger a
+ * preroll, which will emit %GST_MESSAGE_ASYNC_DONE.
*/
gboolean
gst_element_seek (GstElement * element, gdouble rate, GstFormat format,
@@ -2826,6 +2828,7 @@ gst_element_dispose (GObject * object)
GstClock **clock_p;
GstBus **bus_p;
GstElementClass *oclass;
+ GList *walk;
oclass = GST_ELEMENT_GET_CLASS (element);
@@ -2834,23 +2837,32 @@ gst_element_dispose (GObject * object)
if (GST_STATE (element) != GST_STATE_NULL)
goto not_null;
- GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
- "removing %d pads", g_list_length (element->pads));
- /* first we break all our links with the outside */
- while (element->pads && element->pads->data) {
- GstPad *pad = GST_PAD_CAST (element->pads->data);
+ /* start by releasing all request pads, this might also remove some dynamic
+ * pads */
+ walk = element->pads;
+ while (walk) {
+ GstPad *pad = GST_PAD_CAST (walk->data);
+
+ walk = walk->next;
- /* don't call _remove_pad with NULL */
if (oclass->release_pad && GST_PAD_PAD_TEMPLATE (pad) &&
GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad))
- == GST_PAD_REQUEST)
- (oclass->release_pad) (element, GST_PAD_CAST (element->pads->data));
- else
- gst_element_remove_pad (element, GST_PAD_CAST (element->pads->data));
+ == GST_PAD_REQUEST) {
+ GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
+ "removing request pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+ oclass->release_pad (element, pad);
+ }
}
- if (G_UNLIKELY (element->pads != NULL)) {
- g_critical ("could not remove pads from element %s",
- GST_STR_NULL (GST_OBJECT_NAME (object)));
+ /* remove the remaining pads */
+ while (element->pads) {
+ GstPad *pad = GST_PAD_CAST (element->pads->data);
+ GST_CAT_DEBUG_OBJECT (GST_CAT_ELEMENT_PADS, element,
+ "removing pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+ if (!gst_element_remove_pad (element, pad)) {
+ /* only happens when someone unparented our pad.. */
+ g_critical ("failed to remove pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+ break;
+ }
}
GST_OBJECT_LOCK (element);
diff --git a/gst/gstelementfactory.c b/gst/gstelementfactory.c
index b11abfc..a8ef9fe 100644
--- a/gst/gstelementfactory.c
+++ b/gst/gstelementfactory.c
@@ -510,6 +510,40 @@ gst_element_factory_get_metadata (GstElementFactory * factory,
}
/**
+ * gst_element_factory_get_metadata_keys:
+ * @factory,: a #GstElementFactory
+ *
+ * Get the available keys for the metadata on @factory.
+ *
+ * Returns: a %NULL-terminated array of key strings, or %NULL when
+ * there is no metadata. Free with g_strfreev() when no longer needd.
+ */
+gchar **
+gst_element_factory_get_metadata_keys (GstElementFactory * factory)
+{
+ GstStructure *metadata;
+ gchar **arr;
+ gint i, num;
+
+ g_return_val_if_fail (GST_IS_ELEMENT_FACTORY (factory), NULL);
+
+ metadata = (GstStructure *) factory->metadata;
+ if (metadata == NULL)
+ return NULL;
+
+ num = gst_structure_n_fields (metadata);
+ if (num == 0)
+ return NULL;
+
+ arr = g_new (gchar *, num + 1);
+ for (i = 0; i < num; ++i) {
+ arr[i] = g_strdup (gst_structure_nth_field_name (metadata, i));
+ }
+ arr[i] = NULL;
+ return arr;
+}
+
+/**
* gst_element_factory_get_num_pad_templates:
* @factory: a #GstElementFactory
*
diff --git a/gst/gstelementfactory.h b/gst/gstelementfactory.h
index b2dff92..601c9d6 100644
--- a/gst/gstelementfactory.h
+++ b/gst/gstelementfactory.h
@@ -24,16 +24,19 @@
#ifndef __GST_ELEMENT_FACTORY_H__
#define __GST_ELEMENT_FACTORY_H__
+/**
+ * GstElementFactory:
+ *
+ * The opaque #GstElementFactory data structure.
+ */
typedef struct _GstElementFactory GstElementFactory;
typedef struct _GstElementFactoryClass GstElementFactoryClass;
#include <gst/gstconfig.h>
#include <gst/gstelement.h>
-#include <gst/gstobject.h>
+#include <gst/gstpad.h>
#include <gst/gstplugin.h>
#include <gst/gstpluginfeature.h>
-#include <gst/gstpadtemplate.h>
-#include <gst/gstiterator.h>
#include <gst/gsturi.h>
G_BEGIN_DECLS
@@ -47,37 +50,6 @@ G_BEGIN_DECLS
#define GST_IS_ELEMENT_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ELEMENT_FACTORY))
#define GST_ELEMENT_FACTORY_CAST(obj) ((GstElementFactory *)(obj))
-/**
- * GstElementFactory:
- *
- * The opaque #GstElementFactory data structure.
- */
-struct _GstElementFactory {
- GstPluginFeature parent;
-
- GType type; /* unique GType of element or 0 if not loaded */
-
- gpointer metadata;
-
- GList * staticpadtemplates; /* GstStaticPadTemplate list */
- guint numpadtemplates;
-
- /* URI interface stuff */
- GstURIType uri_type;
- gchar ** uri_protocols;
-
- GList * interfaces; /* interface type names this element implements */
-
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstElementFactoryClass {
- GstPluginFeatureClass parent_class;
-
- gpointer _gst_reserved[GST_PADDING];
-};
-
GType gst_element_factory_get_type (void);
GstElementFactory * gst_element_factory_find (const gchar *name);
@@ -85,6 +57,7 @@ GstElementFactory * gst_element_factory_find (const gchar *na
GType gst_element_factory_get_element_type (GstElementFactory *factory);
const gchar * gst_element_factory_get_metadata (GstElementFactory *factory, const gchar *key);
+gchar ** gst_element_factory_get_metadata_keys (GstElementFactory *factory);
guint gst_element_factory_get_num_pad_templates (GstElementFactory *factory);
const GList * gst_element_factory_get_static_pad_templates (GstElementFactory *factory);
diff --git a/gst/gstevent.c b/gst/gstevent.c
index e496f40..3ba388a 100644
--- a/gst/gstevent.c
+++ b/gst/gstevent.c
@@ -992,19 +992,30 @@ gst_event_copy_segment (GstEvent * event, GstSegment * segment)
/**
* gst_event_new_tag:
+ * @name: (transfer none): the name of the event
* @taglist: (transfer full): metadata list. The event will take ownership
* of the taglist.
*
* Generates a metadata tag event from the given @taglist.
*
+ * Since the TAG event has the %GST_EVENT_TYPE_STICKY_MULTI flag set, the
+ * @name will be used to keep track of multiple tag events.
+ *
* Returns: (transfer full): a new #GstEvent
*/
GstEvent *
-gst_event_new_tag (GstTagList * taglist)
+gst_event_new_tag (const gchar * name, GstTagList * taglist)
{
+ GstStructure *s;
+ GValue val = G_VALUE_INIT;
+
g_return_val_if_fail (taglist != NULL, NULL);
- return gst_event_new_custom (GST_EVENT_TAG, (GstStructure *) taglist);
+ s = gst_structure_new_empty (name);
+ g_value_init (&val, GST_TYPE_TAG_LIST);
+ g_value_take_boxed (&val, taglist);
+ gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
+ return gst_event_new_custom (GST_EVENT_TAG, s);
}
/**
@@ -1020,11 +1031,16 @@ gst_event_new_tag (GstTagList * taglist)
void
gst_event_parse_tag (GstEvent * event, GstTagList ** taglist)
{
+ const GValue *val;
+
g_return_if_fail (GST_IS_EVENT (event));
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TAG);
+ val = gst_structure_id_get_value (GST_EVENT_STRUCTURE (event),
+ GST_QUARK (TAGLIST));
+
if (taglist)
- *taglist = (GstTagList *) GST_EVENT_STRUCTURE (event);
+ *taglist = (GstTagList *) g_value_get_boxed (val);
}
/* buffersize event */
@@ -1252,13 +1268,13 @@ gst_event_parse_qos (GstEvent * event, GstQOSType * type,
* from the newly configured start position.
*
* For negative rates, playback will start from the newly configured stop
- * position (if any). If the stop position if updated, it must be different from
- * -1 for negative rates.
+ * position (if any). If the stop position is updated, it must be different from
+ * -1 (#GST_CLOCK_TIME_NONE) for negative rates.
*
* It is not possible to seek relative to the current playback position, to do
* this, PAUSE the pipeline, query the current playback position with
* #GST_QUERY_POSITION and update the playback segment current position with a
- * #GST_SEEK_TYPE_SET to the desired position.
+ * #GST_SEEK_TYPE_SET to the desired position.
*
* Returns: (transfer full): a new seek event.
*/
@@ -1539,19 +1555,22 @@ gst_event_new_reconfigure (void)
/**
* gst_event_new_sink_message:
+ * @name: a name for the event
* @msg: (transfer none): the #GstMessage to be posted
*
* Create a new sink-message event. The purpose of the sink-message event is
* to instruct a sink to post the message contained in the event synchronized
* with the stream.
*
+ * @name is used to store multiple sticky events on one pad.
+ *
* Returns: (transfer full): a new #GstEvent
*
* Since: 0.10.26
*/
/* FIXME 0.11: take ownership of msg for consistency? */
GstEvent *
-gst_event_new_sink_message (GstMessage * msg)
+gst_event_new_sink_message (const gchar * name, GstMessage * msg)
{
GstEvent *event;
GstStructure *structure;
@@ -1560,7 +1579,7 @@ gst_event_new_sink_message (GstMessage * msg)
GST_CAT_INFO (GST_CAT_EVENT, "creating sink-message event");
- structure = gst_structure_new_id (GST_QUARK (EVENT_SINK_MESSAGE),
+ structure = gst_structure_new_id (g_quark_from_string (name),
GST_QUARK (MESSAGE), GST_TYPE_MESSAGE, msg, NULL);
event = gst_event_new_custom (GST_EVENT_SINK_MESSAGE, structure);
@@ -1615,6 +1634,7 @@ gst_event_new_stream_start (void)
/**
* gst_event_new_toc:
+ * @name: a name for the event
* @toc: #GstToc structure.
* @updated: whether @toc was updated or not.
*
diff --git a/gst/gstevent.h b/gst/gstevent.h
index b8609e9..35ebba8 100644
--- a/gst/gstevent.h
+++ b/gst/gstevent.h
@@ -152,7 +152,7 @@ typedef enum {
GST_EVENT_BUFFERSIZE = GST_EVENT_MAKE_TYPE (90, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
GST_EVENT_SINK_MESSAGE = GST_EVENT_MAKE_TYPE (100, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
GST_EVENT_EOS = GST_EVENT_MAKE_TYPE (110, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
- GST_EVENT_TOC = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY) | FLAG(STICKY_MULTI)),
+ GST_EVENT_TOC = GST_EVENT_MAKE_TYPE (120, FLAG(DOWNSTREAM) | FLAG(SERIALIZED) | FLAG(STICKY)),
/* non-sticky downstream serialized */
GST_EVENT_SEGMENT_DONE = GST_EVENT_MAKE_TYPE (150, FLAG(DOWNSTREAM) | FLAG(SERIALIZED)),
@@ -523,7 +523,7 @@ void gst_event_parse_segment (GstEvent *event, const GstSegme
void gst_event_copy_segment (GstEvent *event, GstSegment *segment);
/* tag event */
-GstEvent* gst_event_new_tag (GstTagList *taglist) G_GNUC_MALLOC;
+GstEvent* gst_event_new_tag (const gchar *name, GstTagList *taglist) G_GNUC_MALLOC;
void gst_event_parse_tag (GstEvent *event, GstTagList **taglist);
/* TOC event */
@@ -538,7 +538,7 @@ void gst_event_parse_buffer_size (GstEvent *event, GstFormat *for
gint64 *maxsize, gboolean *async);
/* sink message */
-GstEvent* gst_event_new_sink_message (GstMessage *msg) G_GNUC_MALLOC;
+GstEvent* gst_event_new_sink_message (const gchar *name, GstMessage *msg) G_GNUC_MALLOC;
void gst_event_parse_sink_message (GstEvent *event, GstMessage **msg);
/* QOS events */
diff --git a/gst/gstmessage.c b/gst/gstmessage.c
index 6b8b2c0..4eef4ac 100644
--- a/gst/gstmessage.c
+++ b/gst/gstmessage.c
@@ -480,13 +480,17 @@ gst_message_new_info (GstObject * src, GError * error, const gchar * debug)
GstMessage *
gst_message_new_tag (GstObject * src, GstTagList * tag_list)
{
+ GstStructure *s;
GstMessage *message;
+ GValue val = G_VALUE_INIT;
- g_return_val_if_fail (GST_IS_STRUCTURE (tag_list), NULL);
-
- message =
- gst_message_new_custom (GST_MESSAGE_TAG, src, (GstStructure *) tag_list);
+ g_return_val_if_fail (GST_IS_TAG_LIST (tag_list), NULL);
+ s = gst_structure_new_id_empty (GST_QUARK (MESSAGE_TAG));
+ g_value_init (&val, GST_TYPE_TAG_LIST);
+ g_value_take_boxed (&val, tag_list);
+ gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
+ message = gst_message_new_custom (GST_MESSAGE_TAG, src, s);
return message;
}
@@ -1004,7 +1008,7 @@ gst_message_has_name (GstMessage * message, const gchar * name)
* gst_message_parse_tag (msg, &amp;tags);
* g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg->src));
* handle_tags (tags);
- * gst_tag_list_free (tags);
+ * gst_tag_list_unref (tags);
* break;
* }
* ...
@@ -1017,16 +1021,12 @@ gst_message_has_name (GstMessage * message, const gchar * name)
void
gst_message_parse_tag (GstMessage * message, GstTagList ** tag_list)
{
- GstStructure *ret;
-
g_return_if_fail (GST_IS_MESSAGE (message));
g_return_if_fail (GST_MESSAGE_TYPE (message) == GST_MESSAGE_TAG);
g_return_if_fail (tag_list != NULL);
- ret = gst_structure_copy (GST_MESSAGE_STRUCTURE (message));
- gst_structure_remove_field (ret, "source-pad");
-
- *tag_list = (GstTagList *) ret;
+ gst_structure_id_get (GST_MESSAGE_STRUCTURE (message),
+ GST_QUARK (TAGLIST), GST_TYPE_TAG_LIST, tag_list, NULL);
}
/**
@@ -2210,7 +2210,7 @@ gst_message_new_toc (GstObject * src, GstToc * toc, gboolean updated)
* @toc: (out): return location for the TOC.
* @updated: (out): return location for the updated flag.
*
- * Extract the TOC from the #GstMessage. The TOC returned in the
+ * Extract thef TOC from the #GstMessage. The TOC returned in the
* output argument is a copy; the caller must free it with
* gst_toc_free() when done.
*
diff --git a/gst/gstpad.c b/gst/gstpad.c
index 0464209..73981f3 100644
--- a/gst/gstpad.c
+++ b/gst/gstpad.c
@@ -2637,12 +2637,6 @@ gst_pad_event_default (GstPad * pad, GstObject * parent, GstEvent * event)
GST_LOG_OBJECT (pad, "default event handler");
switch (GST_EVENT_TYPE (event)) {
- case GST_EVENT_EOS:
- {
- GST_DEBUG_OBJECT (pad, "pausing task because of eos");
- gst_pad_pause_task (pad);
- break;
- }
case GST_EVENT_CAPS:
forward = GST_PAD_IS_PROXY_CAPS (pad);
result = TRUE;
@@ -3151,11 +3145,21 @@ done:
GST_OBJECT_UNLOCK (pad);
}
+typedef struct
+{
+ GstFlowReturn ret;
+
+ /* If TRUE and ret is not OK this means
+ * that pushing the EOS event failed
+ */
+ gboolean was_eos;
+} PushStickyData;
+
/* should be called with pad LOCK */
static gboolean
push_sticky (GstPad * pad, PadEvent * ev, gpointer user_data)
{
- GstFlowReturn *data = user_data;
+ PushStickyData *data = user_data;
GstEvent *event = ev->event;
if (ev->received) {
@@ -3164,10 +3168,10 @@ push_sticky (GstPad * pad, PadEvent * ev, gpointer user_data)
return TRUE;
}
- *data = gst_pad_push_event_unchecked (pad, gst_event_ref (event),
+ data->ret = gst_pad_push_event_unchecked (pad, gst_event_ref (event),
GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM);
- switch (*data) {
+ switch (data->ret) {
case GST_FLOW_OK:
ev->received = TRUE;
GST_DEBUG_OBJECT (pad, "event %s marked received",
@@ -3175,16 +3179,21 @@ push_sticky (GstPad * pad, PadEvent * ev, gpointer user_data)
break;
case GST_FLOW_NOT_LINKED:
/* not linked is not a problem, we are sticky so the event will be
- * sent later */
+ * sent later but only for non-EOS events */
GST_DEBUG_OBJECT (pad, "pad was not linked");
- *data = GST_FLOW_OK;
+ if (GST_EVENT_TYPE (event) != GST_EVENT_EOS)
+ data->ret = GST_FLOW_OK;
/* fallthrough */
default:
GST_DEBUG_OBJECT (pad, "mark pending events");
GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
break;
}
- return *data == GST_FLOW_OK;
+
+ if (data->ret != GST_FLOW_OK && GST_EVENT_TYPE (event) == GST_EVENT_EOS)
+ data->was_eos = TRUE;
+
+ return data->ret == GST_FLOW_OK;
}
/* check sticky events and push them when needed. should be called
@@ -3192,15 +3201,31 @@ push_sticky (GstPad * pad, PadEvent * ev, gpointer user_data)
static inline GstFlowReturn
check_sticky (GstPad * pad)
{
- GstFlowReturn ret = GST_FLOW_OK;
+ PushStickyData data = { GST_FLOW_OK, FALSE };
if (G_UNLIKELY (GST_PAD_HAS_PENDING_EVENTS (pad))) {
GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_PENDING_EVENTS);
GST_DEBUG_OBJECT (pad, "pushing all sticky events");
- events_foreach (pad, push_sticky, &ret);
+ events_foreach (pad, push_sticky, &data);
+
+ /* If there's an EOS event we must push it downstream
+ * even if sending a previous sticky event failed.
+ * Otherwise the pipeline might wait forever for EOS.
+ *
+ * Only do this if pushing another event than the EOS
+ * event failed.
+ */
+ if (data.ret != GST_FLOW_OK && !data.was_eos) {
+ PadEvent *ev = find_event_by_type (pad, GST_EVENT_EOS, 0);
+
+ if (ev && !ev->received) {
+ data.ret = gst_pad_push_event_unchecked (pad, gst_event_ref (ev->event),
+ GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM);
+ }
+ }
}
- return ret;
+ return data.ret;
}
@@ -3473,6 +3498,9 @@ gst_pad_chain_data_unchecked (GstPad * pad, GstPadProbeType type, void *data)
if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
goto flushing;
+ if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+ goto eos;
+
if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
goto wrong_mode;
@@ -3534,6 +3562,14 @@ flushing:
gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
return GST_FLOW_FLUSHING;
}
+eos:
+ {
+ GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "chaining, but pad was EOS");
+ GST_OBJECT_UNLOCK (pad);
+ GST_PAD_STREAM_UNLOCK (pad);
+ gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+ return GST_FLOW_EOS;
+ }
wrong_mode:
{
g_critical ("chain on pad %s:%s but it was not in push mode",
@@ -3682,6 +3718,9 @@ gst_pad_push_data (GstPad * pad, GstPadProbeType type, void *data)
if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
goto flushing;
+ if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+ goto eos;
+
if (G_UNLIKELY (GST_PAD_MODE (pad) != GST_PAD_MODE_PUSH))
goto wrong_mode;
@@ -3727,6 +3766,13 @@ flushing:
gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
return GST_FLOW_FLUSHING;
}
+eos:
+ {
+ GST_CAT_LOG_OBJECT (GST_CAT_SCHEDULING, pad, "pushing, but pad was EOS");
+ GST_OBJECT_UNLOCK (pad);
+ gst_mini_object_unref (GST_MINI_OBJECT_CAST (data));
+ return GST_FLOW_EOS;
+ }
wrong_mode:
{
g_critical ("pushing on pad %s:%s but it was not activated in push mode",
@@ -4289,6 +4335,7 @@ gst_pad_push_event_unchecked (GstPad * pad, GstEvent * event,
/* Remove sticky EOS events */
GST_LOG_OBJECT (pad, "Removing pending EOS events");
remove_event_by_type (pad, GST_EVENT_EOS);
+ GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
type |= GST_PAD_PROBE_TYPE_EVENT_FLUSH;
break;
@@ -4297,6 +4344,11 @@ gst_pad_push_event_unchecked (GstPad * pad, GstEvent * event,
if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
goto flushed;
+ /* No need to check for EOS here as either the caller (gst_pad_push_event())
+ * checked already or this is called as part of pushing sticky events,
+ * in which case we still want to forward the EOS event downstream.
+ */
+
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_SEGMENT:
/* pass the adjusted segment event on. We need to do this even if
@@ -4378,6 +4430,11 @@ not_linked:
GST_DEBUG_OBJECT (pad, "Dropping event because pad is not linked");
GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_PENDING_EVENTS);
gst_event_unref (event);
+
+ /* unlinked pads should not influence latency configuration */
+ if (event_type == GST_EVENT_LATENCY)
+ return GST_FLOW_OK;
+
return GST_FLOW_NOT_LINKED;
}
idle_probe_stopped:
@@ -4406,7 +4463,7 @@ idle_probe_stopped:
gboolean
gst_pad_push_event (GstPad * pad, GstEvent * event)
{
- gboolean res;
+ gboolean res = FALSE;
GstPadProbeType type;
gboolean sticky, serialized;
@@ -4434,12 +4491,17 @@ gst_pad_push_event (GstPad * pad, GstEvent * event)
if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
goto flushed;
+ if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+ goto eos;
+
/* srcpad sticky events are store immediately, the received flag is set
* to FALSE and will be set to TRUE when we can successfully push the
* event to the peer pad */
if (gst_pad_store_sticky_event (pad, event, TRUE)) {
GST_DEBUG_OBJECT (pad, "event %s updated", GST_EVENT_TYPE_NAME (event));
}
+ if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
+ GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_EOS);
}
if (GST_PAD_IS_SRC (pad) && (serialized || sticky)) {
/* all serialized or sticky events on the srcpad trigger push of
@@ -4450,8 +4512,14 @@ gst_pad_push_event (GstPad * pad, GstEvent * event)
/* other events are pushed right away */
res = (gst_pad_push_event_unchecked (pad, event, type) == GST_FLOW_OK);
} else {
+ /* Errors in sticky event pushing are no problem and ignored here
+ * as they will cause more meaningful errors during data flow.
+ * For EOS events, that are not followed by data flow, we still
+ * return FALSE here though.
+ */
+ if (GST_EVENT_TYPE (event) != GST_EVENT_EOS)
+ res = TRUE;
gst_event_unref (event);
- res = TRUE;
}
GST_OBJECT_UNLOCK (pad);
@@ -4478,13 +4546,20 @@ flushed:
gst_event_unref (event);
return FALSE;
}
+eos:
+ {
+ GST_DEBUG_OBJECT (pad, "We're EOS");
+ GST_OBJECT_UNLOCK (pad);
+ gst_event_unref (event);
+ return FALSE;
+ }
}
/* Check if we can call the event function with the given event */
static GstFlowReturn
pre_eventfunc_check (GstPad * pad, GstEvent * event)
{
- GstCaps *caps, *templ;
+ GstCaps *caps;
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_CAPS:
@@ -4492,12 +4567,8 @@ pre_eventfunc_check (GstPad * pad, GstEvent * event)
/* backwards compatibility mode for caps */
gst_event_parse_caps (event, &caps);
- /* See if pad accepts the caps */
- templ = gst_pad_get_pad_template_caps (pad);
- if (!gst_caps_is_subset (caps, templ))
+ if (!gst_pad_query_accept_caps (pad, caps))
goto not_accepted;
-
- gst_caps_unref (templ);
break;
}
default:
@@ -4508,11 +4579,8 @@ pre_eventfunc_check (GstPad * pad, GstEvent * event)
/* ERRORS */
not_accepted:
{
- gst_caps_unref (templ);
GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
"caps %" GST_PTR_FORMAT " not accepted", caps);
- GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad,
- "no intersection with template %" GST_PTR_FORMAT, templ);
return GST_FLOW_NOT_NEGOTIATED;
}
}
@@ -4554,6 +4622,7 @@ gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
/* Remove pending EOS events */
GST_LOG_OBJECT (pad, "Removing pending EOS events");
remove_event_by_type (pad, GST_EVENT_EOS);
+ GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_EOS);
GST_OBJECT_UNLOCK (pad);
/* grab stream lock */
@@ -4574,6 +4643,9 @@ gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
goto flushing;
if (serialized) {
+ if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+ goto eos;
+
/* lock order: STREAM_LOCK, LOCK, recheck flushing. */
GST_OBJECT_UNLOCK (pad);
GST_PAD_STREAM_LOCK (pad);
@@ -4581,6 +4653,9 @@ gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
GST_OBJECT_LOCK (pad);
if (G_UNLIKELY (GST_PAD_IS_FLUSHING (pad)))
goto flushing;
+
+ if (G_UNLIKELY (GST_PAD_IS_EOS (pad)))
+ goto eos;
}
switch (GST_EVENT_TYPE (event)) {
@@ -4635,6 +4710,8 @@ gst_pad_send_event_unchecked (GstPad * pad, GstEvent * event,
/* after the event function accepted the event, we can store the sticky
* event on the pad */
gst_pad_store_sticky_event (pad, event, FALSE);
+ if (event_type == GST_EVENT_EOS)
+ GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_EOS);
}
gst_event_unref (event);
}
@@ -4655,6 +4732,16 @@ flushing:
gst_event_unref (event);
return GST_FLOW_FLUSHING;
}
+eos:
+ {
+ GST_OBJECT_UNLOCK (pad);
+ if (need_unlock)
+ GST_PAD_STREAM_UNLOCK (pad);
+ GST_CAT_INFO_OBJECT (GST_CAT_EVENT, pad,
+ "Received event on EOS pad. Discarding");
+ gst_event_unref (event);
+ return GST_FLOW_EOS;
+ }
probe_stopped:
{
GST_OBJECT_UNLOCK (pad);
diff --git a/gst/gstpad.h b/gst/gstpad.h
index df66794..4e93f07 100644
--- a/gst/gstpad.h
+++ b/gst/gstpad.h
@@ -590,7 +590,8 @@ typedef gboolean (*GstPadStickyEventsForeachFunction) (GstPad *pad, GstEvent **
/**
* GstPadFlags:
* @GST_PAD_FLAG_BLOCKED: is dataflow on a pad blocked
- * @GST_PAD_FLAG_FLUSHING: is pad refusing buffers
+ * @GST_PAD_FLAG_FLUSHING: is pad flushing
+ * @GST_PAD_FLAG_EOS: is pad in EOS state
* @GST_PAD_FLAG_BLOCKING: is pad currently blocking on a buffer or event
* @GST_PAD_FLAG_NEED_PARENT: ensure that there is a parent object before calling
* into the pad callbacks.
@@ -614,13 +615,14 @@ typedef gboolean (*GstPadStickyEventsForeachFunction) (GstPad *pad, GstEvent **
typedef enum {
GST_PAD_FLAG_BLOCKED = (GST_OBJECT_FLAG_LAST << 0),
GST_PAD_FLAG_FLUSHING = (GST_OBJECT_FLAG_LAST << 1),
- GST_PAD_FLAG_BLOCKING = (GST_OBJECT_FLAG_LAST << 2),
- GST_PAD_FLAG_NEED_PARENT = (GST_OBJECT_FLAG_LAST << 3),
- GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST << 4),
- GST_PAD_FLAG_PENDING_EVENTS = (GST_OBJECT_FLAG_LAST << 5),
- GST_PAD_FLAG_FIXED_CAPS = (GST_OBJECT_FLAG_LAST << 6),
- GST_PAD_FLAG_PROXY_CAPS = (GST_OBJECT_FLAG_LAST << 7),
- GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST << 8),
+ GST_PAD_FLAG_EOS = (GST_OBJECT_FLAG_LAST << 2),
+ GST_PAD_FLAG_BLOCKING = (GST_OBJECT_FLAG_LAST << 3),
+ GST_PAD_FLAG_NEED_PARENT = (GST_OBJECT_FLAG_LAST << 4),
+ GST_PAD_FLAG_NEED_RECONFIGURE = (GST_OBJECT_FLAG_LAST << 5),
+ GST_PAD_FLAG_PENDING_EVENTS = (GST_OBJECT_FLAG_LAST << 6),
+ GST_PAD_FLAG_FIXED_CAPS = (GST_OBJECT_FLAG_LAST << 7),
+ GST_PAD_FLAG_PROXY_CAPS = (GST_OBJECT_FLAG_LAST << 8),
+ GST_PAD_FLAG_PROXY_ALLOCATION = (GST_OBJECT_FLAG_LAST << 9),
/* padding */
GST_PAD_FLAG_LAST = (GST_OBJECT_FLAG_LAST << 16)
} GstPadFlags;
@@ -755,6 +757,8 @@ struct _GstPadClass {
#define GST_PAD_SET_FLUSHING(pad) (GST_OBJECT_FLAG_SET (pad, GST_PAD_FLAG_FLUSHING))
#define GST_PAD_UNSET_FLUSHING(pad) (GST_OBJECT_FLAG_UNSET (pad, GST_PAD_FLAG_FLUSHING))
+#define GST_PAD_IS_EOS(pad) (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_EOS))
+
#define GST_PAD_NEEDS_RECONFIGURE(pad) (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_NEED_RECONFIGURE))
#define GST_PAD_HAS_PENDING_EVENTS(pad) (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_PENDING_EVENTS))
#define GST_PAD_IS_FIXED_CAPS(pad) (GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_FIXED_CAPS))
diff --git a/gst/gstpluginfeature.c b/gst/gstpluginfeature.c
index e61fee2..3e1228e 100644
--- a/gst/gstpluginfeature.c
+++ b/gst/gstpluginfeature.c
@@ -180,6 +180,26 @@ gst_plugin_feature_get_rank (GstPluginFeature * feature)
}
/**
+ * gst_plugin_feature_get_plugin:
+ * @feature: a feature
+ *
+ * Get the plugin that provides this feature.
+ *
+ * Returns: (transfer full): the plugin that provides this feature, or %NULL.
+ * Unref with gst_object_unref() when no longer needed.
+ */
+GstPlugin *
+gst_plugin_feature_get_plugin (GstPluginFeature * feature)
+{
+ g_return_val_if_fail (GST_IS_PLUGIN_FEATURE (feature), NULL);
+
+ if (feature->plugin == NULL)
+ return NULL;
+
+ return (GstPlugin *) gst_object_ref (feature->plugin);
+}
+
+/**
* gst_plugin_feature_list_free:
* @list: (transfer full) (element-type Gst.PluginFeature): list
* of #GstPluginFeature
diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h
index b99d9ee..a372281 100644
--- a/gst/gstpluginfeature.h
+++ b/gst/gstpluginfeature.h
@@ -38,6 +38,11 @@ G_BEGIN_DECLS
#define GST_PLUGIN_FEATURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_PLUGIN_FEATURE, GstPluginFeatureClass))
#define GST_PLUGIN_FEATURE_CAST(obj) ((GstPluginFeature*)(obj))
+/**
+ * GstPluginFeature:
+ *
+ * Opaque #GstPluginFeature structure.
+ */
typedef struct _GstPluginFeature GstPluginFeature;
typedef struct _GstPluginFeatureClass GstPluginFeatureClass;
@@ -85,32 +90,6 @@ typedef enum {
#define gst_plugin_feature_set_name(feature,name) gst_object_set_name(GST_OBJECT_CAST(feature),name)
/**
- * GstPluginFeature:
- *
- * Opaque #GstPluginFeature structure.
- */
-struct _GstPluginFeature {
- GstObject object;
-
- /*< private >*/
- gboolean loaded;
- guint rank;
-
- const gchar *plugin_name;
- GstPlugin *plugin; /* weak ref */
-
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
-struct _GstPluginFeatureClass {
- GstObjectClass parent_class;
-
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
-/**
* GstPluginFeatureFilter:
* @feature: the pluginfeature to check
* @user_data: the user_data that has been passed on e.g.
@@ -133,6 +112,8 @@ GstPluginFeature *
void gst_plugin_feature_set_rank (GstPluginFeature *feature, guint rank);
guint gst_plugin_feature_get_rank (GstPluginFeature *feature);
+GstPlugin * gst_plugin_feature_get_plugin (GstPluginFeature *feature);
+
void gst_plugin_feature_list_free (GList *list);
GList *gst_plugin_feature_list_copy (GList *list) G_GNUC_MALLOC;
void gst_plugin_feature_list_debug (GList *list);
diff --git a/gst/gstquark.c b/gst/gstquark.c
index d7b6b6d..2d55fa3 100644
--- a/gst/gstquark.c
+++ b/gst/gstquark.c
@@ -58,9 +58,11 @@ static const gchar *_quark_strings[] = {
"allocator", "GstEventFlushStop", "options", "GstQueryAcceptCaps",
"result", "GstQueryCaps", "filter", "modes", "GstEventStreamConfig",
"setup-data", "stream-headers", "GstEventGap", "GstQueryDrain", "params",
- "toc-select", "uid", "toc", GST_ELEMENT_METADATA_LONGNAME,
+ "GstEventTocSelect", "uid", "GstQueryToc", GST_ELEMENT_METADATA_LONGNAME,
GST_ELEMENT_METADATA_KLASS, GST_ELEMENT_METADATA_DESCRIPTION,
- GST_ELEMENT_METADATA_AUTHOR
+ GST_ELEMENT_METADATA_AUTHOR, "toc", "toc-entry", "updated", "extend-uid",
+ "uid", "tags", "sub-entries", "info", "info-structure",
+ "time-structure", "GstMessageTag", "GstEventTag"
};
GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquark.h b/gst/gstquark.h
index 8f8968f..969ce79 100644
--- a/gst/gstquark.h
+++ b/gst/gstquark.h
@@ -171,7 +171,19 @@ typedef enum _GstQuarkId
GST_QUARK_ELEMENT_METADATA_KLASS = 142,
GST_QUARK_ELEMENT_METADATA_DESCRIPTION = 143,
GST_QUARK_ELEMENT_METADATA_AUTHOR = 144,
- GST_QUARK_MAX = 145
+ GST_QUARK_TOC = 145,
+ GST_QUARK_TOC_ENTRY = 146,
+ GST_QUARK_UPDATED = 147,
+ GST_QUARK_EXTEND_UID = 148,
+ GST_QUARK_TOC_UID = 149,
+ GST_QUARK_TAGS = 150,
+ GST_QUARK_SUB_ENTRIES = 151,
+ GST_QUARK_INFO = 152,
+ GST_QUARK_INFO_STRUCTURE = 153,
+ GST_QUARK_TIME_STRUCTURE = 154,
+ GST_QUARK_MESSAGE_TAG = 155,
+ GST_QUARK_EVENT_TAG = 156,
+ GST_QUARK_MAX = 157
} GstQuarkId;
extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
diff --git a/gst/gstquery.c b/gst/gstquery.c
index 4aaa17e..5fadc9d 100644
--- a/gst/gstquery.c
+++ b/gst/gstquery.c
@@ -2197,7 +2197,7 @@ gst_query_parse_accept_caps_result (GstQuery * query, gboolean * result)
*
* Constructs a new query object for querying the caps.
*
- * The CAPS query should return the* allowable caps for a pad in the context
+ * The CAPS query should return the allowable caps for a pad in the context
* of the element's state, its link to other elements, and the devices or files
* it has opened. These caps must be a subset of the pad template caps. In the
* NULL state with no links, the CAPS query should ideally return the same caps
@@ -2210,6 +2210,10 @@ gst_query_parse_accept_caps_result (GstQuery * query, gboolean * result)
* the CAPS query should return the most specific caps it reasonably can, since this
* helps with autoplugging.
*
+ * The @filter is used to restrict the result caps, only the caps matching
+ * @filter should be returned from the CAPS query. Specifying a filter might
+ * greatly reduce the amount of processing an element needs to do.
+ *
* Free-function: gst_query_unref
*
* Returns: (transfer full): a new #GstQuery
diff --git a/gst/gstregistry.c b/gst/gstregistry.c
index 0575709..c77cffe 100644
--- a/gst/gstregistry.c
+++ b/gst/gstregistry.c
@@ -1664,7 +1664,7 @@ ensure_current_registry (GError ** error)
registry_file = g_strdup (g_getenv ("GST_REGISTRY"));
if (registry_file == NULL) {
registry_file = g_build_filename (g_get_user_cache_dir (),
- "gstreamer-" GST_API_VERSION, "registry." HOST_CPU ".bin", NULL);
+ "gstreamer-" GST_API_VERSION, "registry." TARGET_CPU ".bin", NULL);
}
if (!_gst_disable_registry_cache) {
diff --git a/gst/gststructure.c b/gst/gststructure.c
index 8065b31..fdc65e1 100644
--- a/gst/gststructure.c
+++ b/gst/gststructure.c
@@ -1828,7 +1828,7 @@ priv_gst_structure_append_to_gstring (const GstStructure * structure,
*
* Free-function: g_free
*
- * Returns: (transfer full)L a pointer to string allocated by g_malloc().
+ * Returns: (transfer full): a pointer to string allocated by g_malloc().
* g_free() after usage.
*/
gchar *
diff --git a/gst/gsttaglist.c b/gst/gsttaglist.c
index c1a2ab0..5658fe7 100644
--- a/gst/gsttaglist.c
+++ b/gst/gsttaglist.c
@@ -47,14 +47,22 @@
#include <gobject/gvaluecollector.h>
#include <string.h>
+/* FIXME: add category for tags */
+#define GST_CAT_TAGS GST_CAT_DEFAULT
+
#define GST_TAG_IS_VALID(tag) (gst_tag_get_info (tag) != NULL)
/* FIXME 0.11: make taglists refcounted maybe? */
/* a tag list is basically a structure, but we don't make this fact public */
-struct _GstTagList
+typedef struct _GstTagListImpl
{
- GstStructure structure;
-};
+ GstTagList taglist;
+
+ GstStructure *structure;
+} GstTagListImpl;
+
+#define GST_TAG_LIST_STRUCTURE(taglist) ((GstTagListImpl*)(taglist))->structure
+
/* FIXME 0.11: use GParamSpecs or something similar for tag registrations,
* possibly even gst_tag_register(). Especially value ranges might be
@@ -64,8 +72,8 @@ typedef struct
{
GType type; /* type the data is in */
- gchar *nick; /* translated name */
- gchar *blurb; /* translated description of type */
+ const gchar *nick; /* translated short description */
+ const gchar *blurb; /* translated long description */
GstTagMergeFunc merge_func; /* functions to merge the values */
GstTagFlag flag; /* type of tag */
@@ -82,298 +90,307 @@ static GMutex __tag_mutex;
/* tags hash table: maps tag name string => GstTagInfo */
static GHashTable *__tags;
-G_DEFINE_BOXED_TYPE (GstTagList, gst_tag_list,
- (GBoxedCopyFunc) gst_tag_list_copy, (GBoxedFreeFunc) gst_tag_list_free);
+GST_DEFINE_MINI_OBJECT_TYPE (GstTagList, gst_tag_list);
+
+static void __gst_tag_list_free (GstTagList * list);
+static GstTagList *__gst_tag_list_copy (const GstTagList * list);
/* FIXME: had code:
* g_value_register_transform_func (_gst_tag_list_type, G_TYPE_STRING,
* _gst_structure_transform_to_string);
*/
-
void
_priv_gst_tag_initialize (void)
{
g_mutex_init (&__tag_mutex);
__tags = g_hash_table_new (g_str_hash, g_str_equal);
- gst_tag_register (GST_TAG_TITLE, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_TITLE, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("title"), _("commonly used title"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_TITLE_SORTNAME, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_TITLE_SORTNAME, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("title sortname"), _("commonly used title for sorting purposes"), NULL);
- gst_tag_register (GST_TAG_ARTIST, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ARTIST, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("artist"),
_("person(s) responsible for the recording"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_ARTIST_SORTNAME, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ARTIST_SORTNAME, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("artist sortname"),
_("person(s) responsible for the recording for sorting purposes"), NULL);
- gst_tag_register (GST_TAG_ALBUM, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("album"),
_("album containing this data"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_ALBUM_SORTNAME, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM_SORTNAME, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("album sortname"),
_("album containing this data for sorting purposes"), NULL);
- gst_tag_register (GST_TAG_ALBUM_ARTIST, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM_ARTIST, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("album artist"),
_("The artist of the entire album, as it should be displayed"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_ALBUM_ARTIST_SORTNAME, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM_ARTIST_SORTNAME, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("album artist sortname"),
_("The artist of the entire album, as it should be sorted"), NULL);
- gst_tag_register (GST_TAG_DATE, GST_TAG_FLAG_META, G_TYPE_DATE,
+ gst_tag_register_static (GST_TAG_DATE, GST_TAG_FLAG_META, G_TYPE_DATE,
_("date"), _("date the data was created (as a GDate structure)"), NULL);
- gst_tag_register (GST_TAG_DATE_TIME, GST_TAG_FLAG_META, GST_TYPE_DATE_TIME,
- _("datetime"),
+ gst_tag_register_static (GST_TAG_DATE_TIME, GST_TAG_FLAG_META,
+ GST_TYPE_DATE_TIME, _("datetime"),
_("date and time the data was created (as a GstDateTime structure)"),
NULL);
- gst_tag_register (GST_TAG_GENRE, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_GENRE, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("genre"),
_("genre this data belongs to"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_COMMENT, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_COMMENT, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("comment"),
_("free text commenting the data"), gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_EXTENDED_COMMENT, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_EXTENDED_COMMENT, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("extended comment"),
_("free text commenting the data in key=value or key[en]=comment form"),
gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_TRACK_NUMBER, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_TRACK_NUMBER, GST_TAG_FLAG_META,
G_TYPE_UINT,
_("track number"),
_("track number inside a collection"), gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_TRACK_COUNT, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_TRACK_COUNT, GST_TAG_FLAG_META,
G_TYPE_UINT,
_("track count"),
_("count of tracks inside collection this track belongs to"),
gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_ALBUM_VOLUME_NUMBER, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM_VOLUME_NUMBER, GST_TAG_FLAG_META,
G_TYPE_UINT,
_("disc number"),
_("disc number inside a collection"), gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_ALBUM_VOLUME_COUNT, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM_VOLUME_COUNT, GST_TAG_FLAG_META,
G_TYPE_UINT,
_("disc count"),
_("count of discs inside collection this disc belongs to"),
gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_LOCATION, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_LOCATION, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("location"), _("Origin of media as a URI (location, where the "
"original of the file or stream is hosted)"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_HOMEPAGE, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_HOMEPAGE, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("homepage"),
_("Homepage for this media (i.e. artist or movie homepage)"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_DESCRIPTION, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("description"), _("short text describing the content of the data"),
+ gst_tag_register_static (GST_TAG_DESCRIPTION, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("description"),
+ _("short text describing the content of the data"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_VERSION, GST_TAG_FLAG_META, G_TYPE_STRING,
+ gst_tag_register_static (GST_TAG_VERSION, GST_TAG_FLAG_META, G_TYPE_STRING,
_("version"), _("version of this data"), NULL);
- gst_tag_register (GST_TAG_ISRC, GST_TAG_FLAG_META, G_TYPE_STRING, _("ISRC"),
+ gst_tag_register_static (GST_TAG_ISRC, GST_TAG_FLAG_META, G_TYPE_STRING,
+ _("ISRC"),
_
("International Standard Recording Code - see http://www.ifpi.org/isrc/"),
NULL);
/* FIXME: organization (fix what? tpm) */
- gst_tag_register (GST_TAG_ORGANIZATION, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("organization"), _("organization"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_COPYRIGHT, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ORGANIZATION, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("organization"), _("organization"),
+ gst_tag_merge_strings_with_comma);
+ gst_tag_register_static (GST_TAG_COPYRIGHT, GST_TAG_FLAG_META,
G_TYPE_STRING, _("copyright"), _("copyright notice of the data"), NULL);
- gst_tag_register (GST_TAG_COPYRIGHT_URI, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_COPYRIGHT_URI, GST_TAG_FLAG_META,
G_TYPE_STRING, _("copyright uri"),
_("URI to the copyright notice of the data"), NULL);
- gst_tag_register (GST_TAG_ENCODED_BY, GST_TAG_FLAG_META, G_TYPE_STRING,
+ gst_tag_register_static (GST_TAG_ENCODED_BY, GST_TAG_FLAG_META, G_TYPE_STRING,
_("encoded by"), _("name of the encoding person or organization"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_CONTACT, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_CONTACT, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("contact"), _("contact information"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_LICENSE, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_LICENSE, GST_TAG_FLAG_META,
G_TYPE_STRING, _("license"), _("license of data"), NULL);
- gst_tag_register (GST_TAG_LICENSE_URI, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_LICENSE_URI, GST_TAG_FLAG_META,
G_TYPE_STRING, _("license uri"),
_("URI to the license of the data"), NULL);
- gst_tag_register (GST_TAG_PERFORMER, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_PERFORMER, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("performer"),
_("person(s) performing"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_COMPOSER, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_COMPOSER, GST_TAG_FLAG_META,
G_TYPE_STRING,
_("composer"),
_("person(s) who composed the recording"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_DURATION, GST_TAG_FLAG_DECODED,
+ gst_tag_register_static (GST_TAG_DURATION, GST_TAG_FLAG_DECODED,
G_TYPE_UINT64,
_("duration"), _("length in GStreamer time units (nanoseconds)"), NULL);
- gst_tag_register (GST_TAG_CODEC, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_CODEC, GST_TAG_FLAG_ENCODED,
G_TYPE_STRING,
_("codec"),
_("codec the data is stored in"), gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_VIDEO_CODEC, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_VIDEO_CODEC, GST_TAG_FLAG_ENCODED,
G_TYPE_STRING,
_("video codec"), _("codec the video data is stored in"), NULL);
- gst_tag_register (GST_TAG_AUDIO_CODEC, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_AUDIO_CODEC, GST_TAG_FLAG_ENCODED,
G_TYPE_STRING,
_("audio codec"), _("codec the audio data is stored in"), NULL);
- gst_tag_register (GST_TAG_SUBTITLE_CODEC, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_SUBTITLE_CODEC, GST_TAG_FLAG_ENCODED,
G_TYPE_STRING,
_("subtitle codec"), _("codec the subtitle data is stored in"), NULL);
- gst_tag_register (GST_TAG_CONTAINER_FORMAT, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_CONTAINER_FORMAT, GST_TAG_FLAG_ENCODED,
G_TYPE_STRING, _("container format"),
_("container format the data is stored in"), NULL);
- gst_tag_register (GST_TAG_BITRATE, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_BITRATE, GST_TAG_FLAG_ENCODED,
G_TYPE_UINT, _("bitrate"), _("exact or average bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_NOMINAL_BITRATE, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_NOMINAL_BITRATE, GST_TAG_FLAG_ENCODED,
G_TYPE_UINT, _("nominal bitrate"), _("nominal bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_MINIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_MINIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
G_TYPE_UINT, _("minimum bitrate"), _("minimum bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_MAXIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_MAXIMUM_BITRATE, GST_TAG_FLAG_ENCODED,
G_TYPE_UINT, _("maximum bitrate"), _("maximum bitrate in bits/s"), NULL);
- gst_tag_register (GST_TAG_ENCODER, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_ENCODER, GST_TAG_FLAG_ENCODED,
G_TYPE_STRING,
_("encoder"), _("encoder used to encode this stream"), NULL);
- gst_tag_register (GST_TAG_ENCODER_VERSION, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_ENCODER_VERSION, GST_TAG_FLAG_ENCODED,
G_TYPE_UINT,
_("encoder version"),
_("version of the encoder used to encode this stream"), NULL);
- gst_tag_register (GST_TAG_SERIAL, GST_TAG_FLAG_ENCODED,
+ gst_tag_register_static (GST_TAG_SERIAL, GST_TAG_FLAG_ENCODED,
G_TYPE_UINT, _("serial"), _("serial number of track"), NULL);
- gst_tag_register (GST_TAG_TRACK_GAIN, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_TRACK_GAIN, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("replaygain track gain"), _("track gain in db"), NULL);
- gst_tag_register (GST_TAG_TRACK_PEAK, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_TRACK_PEAK, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("replaygain track peak"), _("peak of the track"), NULL);
- gst_tag_register (GST_TAG_ALBUM_GAIN, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM_GAIN, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("replaygain album gain"), _("album gain in db"), NULL);
- gst_tag_register (GST_TAG_ALBUM_PEAK, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_ALBUM_PEAK, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("replaygain album peak"), _("peak of the album"), NULL);
- gst_tag_register (GST_TAG_REFERENCE_LEVEL, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_REFERENCE_LEVEL, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("replaygain reference level"),
_("reference level of track and album gain values"), NULL);
- gst_tag_register (GST_TAG_LANGUAGE_CODE, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("language code"),
+ gst_tag_register_static (GST_TAG_LANGUAGE_CODE, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("language code"),
_("language code for this stream, conforming to ISO-639-1 or ISO-639-2"),
NULL);
- gst_tag_register (GST_TAG_LANGUAGE_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("language name"),
+ gst_tag_register_static (GST_TAG_LANGUAGE_NAME, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("language name"),
_("freeform name of the language this stream is in"), NULL);
- gst_tag_register (GST_TAG_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
+ gst_tag_register_static (GST_TAG_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
_("image"), _("image related to this stream"), gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_PREVIEW_IMAGE, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
+ gst_tag_register_static (GST_TAG_PREVIEW_IMAGE, GST_TAG_FLAG_META,
+ GST_TYPE_SAMPLE,
/* TRANSLATORS: 'preview image' = image that shows a preview of the full image */
_("preview image"), _("preview image related to this stream"), NULL);
- gst_tag_register (GST_TAG_ATTACHMENT, GST_TAG_FLAG_META, GST_TYPE_SAMPLE,
- _("attachment"), _("file attached to this stream"),
+ gst_tag_register_static (GST_TAG_ATTACHMENT, GST_TAG_FLAG_META,
+ GST_TYPE_SAMPLE, _("attachment"), _("file attached to this stream"),
gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_BEATS_PER_MINUTE, GST_TAG_FLAG_META, G_TYPE_DOUBLE,
- _("beats per minute"), _("number of beats per minute in audio"), NULL);
- gst_tag_register (GST_TAG_KEYWORDS, GST_TAG_FLAG_META, G_TYPE_STRING,
+ gst_tag_register_static (GST_TAG_BEATS_PER_MINUTE, GST_TAG_FLAG_META,
+ G_TYPE_DOUBLE, _("beats per minute"),
+ _("number of beats per minute in audio"), NULL);
+ gst_tag_register_static (GST_TAG_KEYWORDS, GST_TAG_FLAG_META, G_TYPE_STRING,
_("keywords"), _("comma separated keywords describing the content"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_GEO_LOCATION_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("geo location name"), _("human readable descriptive location of where "
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_NAME, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("geo location name"),
+ _("human readable descriptive location of where "
"the media has been recorded or produced"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_LATITUDE, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_LATITUDE, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("geo location latitude"),
_("geo latitude location of where the media has been recorded or "
"produced in degrees according to WGS84 (zero at the equator, "
"negative values for southern latitudes)"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_LONGITUDE, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_LONGITUDE, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("geo location longitude"),
_("geo longitude location of where the media has been recorded or "
"produced in degrees according to WGS84 (zero at the prime meridian "
"in Greenwich/UK, negative values for western longitudes)"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_ELEVATION, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_ELEVATION, GST_TAG_FLAG_META,
G_TYPE_DOUBLE, _("geo location elevation"),
_("geo elevation of where the media has been recorded or produced in "
"meters according to WGS84 (zero is average sea level)"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_COUNTRY, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_COUNTRY, GST_TAG_FLAG_META,
G_TYPE_STRING, _("geo location country"),
_("country (english name) where the media has been recorded "
"or produced"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_CITY, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_CITY, GST_TAG_FLAG_META,
G_TYPE_STRING, _("geo location city"),
_("city (english name) where the media has been recorded "
"or produced"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_SUBLOCATION, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_SUBLOCATION, GST_TAG_FLAG_META,
G_TYPE_STRING, _("geo location sublocation"),
_("a location whithin a city where the media has been produced "
"or created (e.g. the neighborhood)"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("geo location horizontal error"),
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR,
+ GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location horizontal error"),
_("expected error of the horizontal positioning measures (in meters)"),
NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_MOVEMENT_SPEED, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("geo location movement speed"),
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_MOVEMENT_SPEED,
+ GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location movement speed"),
_("movement speed of the capturing device while performing the capture "
"in m/s"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("geo location movement direction"),
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION,
+ GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location movement direction"),
_("indicates the movement direction of the device performing the capture"
" of a media. It is represented as degrees in floating point "
"representation, 0 means the geographic north, and increases "
"clockwise"), NULL);
- gst_tag_register (GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION, GST_TAG_FLAG_META,
- G_TYPE_DOUBLE, _("geo location capture direction"),
+ gst_tag_register_static (GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION,
+ GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("geo location capture direction"),
_("indicates the direction the device is pointing to when capturing "
" a media. It is represented as degrees in floating point "
" representation, 0 means the geographic north, and increases "
"clockwise"), NULL);
- gst_tag_register (GST_TAG_SHOW_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
+ gst_tag_register_static (GST_TAG_SHOW_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
/* TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here */
_("show name"),
_("Name of the tv/podcast/series show the media is from"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_SHOW_SORTNAME, GST_TAG_FLAG_META, G_TYPE_STRING,
+ gst_tag_register_static (GST_TAG_SHOW_SORTNAME, GST_TAG_FLAG_META,
+ G_TYPE_STRING,
/* TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here */
_("show sortname"),
_("Name of the tv/podcast/series show the media is from, for sorting "
"purposes"), NULL);
- gst_tag_register (GST_TAG_SHOW_EPISODE_NUMBER, GST_TAG_FLAG_META, G_TYPE_UINT,
- _("episode number"),
+ gst_tag_register_static (GST_TAG_SHOW_EPISODE_NUMBER, GST_TAG_FLAG_META,
+ G_TYPE_UINT, _("episode number"),
_("The episode number in the season the media is part of"),
gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_SHOW_SEASON_NUMBER, GST_TAG_FLAG_META, G_TYPE_UINT,
- _("season number"),
+ gst_tag_register_static (GST_TAG_SHOW_SEASON_NUMBER, GST_TAG_FLAG_META,
+ G_TYPE_UINT, _("season number"),
_("The season number of the show the media is part of"),
gst_tag_merge_use_first);
- gst_tag_register (GST_TAG_LYRICS, GST_TAG_FLAG_META, G_TYPE_STRING,
+ gst_tag_register_static (GST_TAG_LYRICS, GST_TAG_FLAG_META, G_TYPE_STRING,
_("lyrics"), _("The lyrics of the media, commonly used for songs"),
gst_tag_merge_strings_with_comma);
- gst_tag_register (GST_TAG_COMPOSER_SORTNAME, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("composer sortname"),
+ gst_tag_register_static (GST_TAG_COMPOSER_SORTNAME, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("composer sortname"),
_("person(s) who composed the recording, for sorting purposes"), NULL);
- gst_tag_register (GST_TAG_GROUPING, GST_TAG_FLAG_META, G_TYPE_STRING,
+ gst_tag_register_static (GST_TAG_GROUPING, GST_TAG_FLAG_META, G_TYPE_STRING,
_("grouping"),
_("Groups related media that spans multiple tracks, like the different "
"pieces of a concerto. It is a higher level than a track, "
"but lower than an album"), NULL);
- gst_tag_register (GST_TAG_USER_RATING, GST_TAG_FLAG_META, G_TYPE_UINT,
+ gst_tag_register_static (GST_TAG_USER_RATING, GST_TAG_FLAG_META, G_TYPE_UINT,
_("user rating"),
_("Rating attributed by a user. The higher the rank, "
"the more the user likes this media"), NULL);
- gst_tag_register (GST_TAG_DEVICE_MANUFACTURER, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_DEVICE_MANUFACTURER, GST_TAG_FLAG_META,
G_TYPE_STRING, _("device manufacturer"),
_("Manufacturer of the device used to create this media"), NULL);
- gst_tag_register (GST_TAG_DEVICE_MODEL, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("device model"),
+ gst_tag_register_static (GST_TAG_DEVICE_MODEL, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("device model"),
_("Model of the device used to create this media"), NULL);
- gst_tag_register (GST_TAG_APPLICATION_NAME, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("application name"), _("Application used to create the media"), NULL);
- gst_tag_register (GST_TAG_APPLICATION_DATA, GST_TAG_FLAG_META,
+ gst_tag_register_static (GST_TAG_APPLICATION_NAME, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("application name"),
+ _("Application used to create the media"), NULL);
+ gst_tag_register_static (GST_TAG_APPLICATION_DATA, GST_TAG_FLAG_META,
GST_TYPE_BUFFER, _("application data"),
_("Arbitrary application data to be serialized into the media"), NULL);
- gst_tag_register (GST_TAG_IMAGE_ORIENTATION, GST_TAG_FLAG_META, G_TYPE_STRING,
- _("image orientation"),
+ gst_tag_register_static (GST_TAG_IMAGE_ORIENTATION, GST_TAG_FLAG_META,
+ G_TYPE_STRING, _("image orientation"),
_("How the image should be rotated or flipped before display"), NULL);
}
@@ -470,8 +487,36 @@ void
gst_tag_register (const gchar * name, GstTagFlag flag, GType type,
const gchar * nick, const gchar * blurb, GstTagMergeFunc func)
{
+ g_return_if_fail (name != NULL);
+ g_return_if_fail (nick != NULL);
+ g_return_if_fail (blurb != NULL);
+ g_return_if_fail (type != 0 && type != GST_TYPE_LIST);
+
+ return gst_tag_register_static (g_intern_string (name), flag, type,
+ g_intern_string (nick), g_intern_string (blurb), func);
+}
+
+/**
+ * gst_tag_register_static:
+ * @name: the name or identifier string (string constant)
+ * @flag: a flag describing the type of tag info
+ * @type: the type this data is in
+ * @nick: human-readable name or short description (string constant)
+ * @blurb: a human-readable description for this tag (string constant)
+ * @func: function for merging multiple values of this tag, or NULL
+ *
+ * Registers a new tag type for the use with GStreamer's type system.
+ *
+ * Same as gst_tag_register(), but @name, @nick, and @blurb must be
+ * static strings or inlined strings, as they will not be copied. (GStreamer
+ * plugins will be made resident once loaded, so this function can be used
+ * even from dynamically loaded plugins.)
+ */
+void
+gst_tag_register_static (const gchar * name, GstTagFlag flag, GType type,
+ const gchar * nick, const gchar * blurb, GstTagMergeFunc func)
+{
GstTagInfo *info;
- gchar *name_dup;
g_return_if_fail (name != NULL);
g_return_if_fail (nick != NULL);
@@ -488,17 +533,13 @@ gst_tag_register (const gchar * name, GstTagFlag flag, GType type,
info = g_slice_new (GstTagInfo);
info->flag = flag;
info->type = type;
- info->nick = g_strdup (nick);
- info->blurb = g_strdup (blurb);
+ info->name_quark = g_quark_from_static_string (name);
+ info->nick = nick;
+ info->blurb = blurb;
info->merge_func = func;
- /* we make a copy for the hash table anyway, which will stay around, so
- * can use that for the quark table too */
- name_dup = g_strdup (name);
- info->name_quark = g_quark_from_static_string (name_dup);
-
TAG_LOCK;
- g_hash_table_insert (__tags, (gpointer) name_dup, info);
+ g_hash_table_insert (__tags, (gpointer) name, info);
TAG_UNLOCK;
}
@@ -621,19 +662,82 @@ gst_tag_is_fixed (const gchar * tag)
return info->merge_func == NULL;
}
+static void
+gst_tag_list_init (GstTagList * taglist, gsize size)
+{
+ gst_mini_object_init (GST_MINI_OBJECT_CAST (taglist),
+ gst_tag_list_get_type (), size);
+
+ taglist->mini_object.copy = (GstMiniObjectCopyFunction) __gst_tag_list_copy;
+ taglist->mini_object.dispose = NULL;
+ taglist->mini_object.free = (GstMiniObjectFreeFunction) __gst_tag_list_free;
+}
+
+/* takes ownership of the structure */
+static GstTagList *
+gst_tag_list_new_internal (GstStructure * s)
+{
+ GstTagList *tag_list;
+
+ g_assert (s != NULL);
+
+ tag_list = (GstTagList *) g_slice_new (GstTagListImpl);
+
+ gst_tag_list_init (tag_list, sizeof (GstTagListImpl));
+
+ GST_TAG_LIST_STRUCTURE (tag_list) = s;
+
+#ifdef DEBUG_REFCOUNT
+ GST_CAT_TRACE (GST_CAT_TAGS, "created taglist %p", tag_list);
+#endif
+
+ return tag_list;
+}
+
+static void
+__gst_tag_list_free (GstTagList * list)
+{
+ g_return_if_fail (GST_IS_TAG_LIST (list));
+
+#ifdef DEBUG_REFCOUNT
+ GST_CAT_TRACE (GST_CAT_TAGS, "freeing caps %p", list);
+#endif
+
+ gst_structure_free (GST_TAG_LIST_STRUCTURE (list));
+
+ /* why not just pass sizeof (GstTagListImpl) here? */
+ g_slice_free1 (GST_MINI_OBJECT_SIZE (list), list);
+}
+
+static GstTagList *
+__gst_tag_list_copy (const GstTagList * list)
+{
+ const GstStructure *s;
+
+ g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
+
+ s = GST_TAG_LIST_STRUCTURE (list);
+ return gst_tag_list_new_internal (gst_structure_copy (s));
+}
+
/**
* gst_tag_list_new_empty:
*
* Creates a new empty GstTagList.
*
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
*
* Returns: (transfer full): An empty tag list
*/
GstTagList *
gst_tag_list_new_empty (void)
{
- return GST_TAG_LIST (gst_structure_new_id_empty (GST_QUARK (TAGLIST)));
+ GstStructure *s;
+ GstTagList *tag_list;
+
+ s = gst_structure_new_id_empty (GST_QUARK (TAGLIST));
+ tag_list = gst_tag_list_new_internal (s);
+ return tag_list;
}
/**
@@ -649,9 +753,9 @@ gst_tag_list_new_empty (void)
* function. The tag list will make copies of any arguments passed
* (e.g. strings, buffers).
*
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
*
- * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_free()
+ * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_unref()
* when no longer needed.
*
* Since: 0.10.24
@@ -679,9 +783,9 @@ gst_tag_list_new (const gchar * tag, ...)
* Just like gst_tag_list_new(), only that it takes a va_list argument.
* Useful mostly for language bindings.
*
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
*
- * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_free()
+ * Returns: (transfer full): a new #GstTagList. Free with gst_tag_list_unref()
* when no longer needed.
*
* Since: 0.10.24
@@ -716,7 +820,7 @@ gst_tag_list_to_string (const GstTagList * list)
{
g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
- return gst_structure_to_string (GST_STRUCTURE (list));
+ return gst_structure_to_string (GST_TAG_LIST_STRUCTURE (list));
}
/**
@@ -732,10 +836,13 @@ gst_tag_list_to_string (const GstTagList * list)
GstTagList *
gst_tag_list_new_from_string (const gchar * str)
{
+ GstTagList *tag_list;
+
g_return_val_if_fail (str != NULL, NULL);
g_return_val_if_fail (g_str_has_prefix (str, "taglist"), NULL);
- return GST_TAG_LIST (gst_structure_from_string (str, NULL));
+ tag_list = gst_tag_list_new_internal (gst_structure_from_string (str, NULL));
+ return tag_list;
}
/**
@@ -752,7 +859,7 @@ gst_tag_list_n_tags (const GstTagList * list)
g_return_val_if_fail (list != NULL, 0);
g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
- return gst_structure_n_fields ((GstStructure *) list);
+ return gst_structure_n_fields (GST_TAG_LIST_STRUCTURE (list));
}
/**
@@ -770,7 +877,7 @@ gst_tag_list_nth_tag_name (const GstTagList * list, guint index)
g_return_val_if_fail (list != NULL, 0);
g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
- return gst_structure_nth_field_name ((GstStructure *) list, index);
+ return gst_structure_nth_field_name (GST_TAG_LIST_STRUCTURE (list), index);
}
/**
@@ -789,7 +896,7 @@ gst_tag_list_is_empty (const GstTagList * list)
g_return_val_if_fail (list != NULL, FALSE);
g_return_val_if_fail (GST_IS_TAG_LIST (list), FALSE);
- return (gst_structure_n_fields ((GstStructure *) list) == 0);
+ return (gst_structure_n_fields (GST_TAG_LIST_STRUCTURE (list)) == 0);
}
static gboolean
@@ -836,8 +943,8 @@ gst_tag_list_is_equal (const GstTagList * list1, const GstTagList * list2)
/* we don't just use gst_structure_is_equal() here so we can add some
* tolerance for doubles, though maybe we should just add that to
* gst_value_compare_double() as well? */
- s1 = (const GstStructure *) list1;
- s2 = (const GstStructure *) list2;
+ s1 = GST_TAG_LIST_STRUCTURE (list1);
+ s2 = GST_TAG_LIST_STRUCTURE (list2);
num_fields1 = gst_structure_n_fields (s1);
num_fields2 = gst_structure_n_fields (s2);
@@ -863,24 +970,6 @@ gst_tag_list_is_equal (const GstTagList * list1, const GstTagList * list2)
return TRUE;
}
-/**
- * gst_is_tag_list:
- * @p: Object that might be a taglist
- *
- * Checks if the given pointer is a taglist.
- *
- * Returns: TRUE, if the given pointer is a taglist
- */
-gboolean
-gst_is_tag_list (gconstpointer p)
-{
- GstStructure *s = (GstStructure *) p;
-
- g_return_val_if_fail (p != NULL, FALSE);
-
- return (GST_IS_STRUCTURE (s) && s->name == GST_QUARK (TAGLIST));
-}
-
typedef struct
{
GstTagList *list;
@@ -892,7 +981,7 @@ static void
gst_tag_list_add_value_internal (GstTagList * tag_list, GstTagMergeMode mode,
const gchar * tag, const GValue * value, GstTagInfo * info)
{
- GstStructure *list = GST_STRUCTURE (tag_list);
+ GstStructure *list = GST_TAG_LIST_STRUCTURE (tag_list);
const GValue *value2;
GQuark tag_quark;
@@ -981,34 +1070,17 @@ gst_tag_list_insert (GstTagList * into, const GstTagList * from,
GstTagCopyData data;
g_return_if_fail (GST_IS_TAG_LIST (into));
+ g_return_if_fail (gst_tag_list_is_writable (into));
g_return_if_fail (GST_IS_TAG_LIST (from));
g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
data.list = into;
data.mode = mode;
if (mode == GST_TAG_MERGE_REPLACE_ALL) {
- gst_structure_remove_all_fields (GST_STRUCTURE (data.list));
+ gst_structure_remove_all_fields (GST_TAG_LIST_STRUCTURE (into));
}
- gst_structure_foreach ((GstStructure *) from, gst_tag_list_copy_foreach,
- &data);
-}
-
-/**
- * gst_tag_list_copy:
- * @list: list to copy
- *
- * Copies a given #GstTagList.
- *
- * Free-function: gst_tag_list_free
- *
- * Returns: (transfer full): copy of the given list
- */
-GstTagList *
-gst_tag_list_copy (const GstTagList * list)
-{
- g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
-
- return GST_TAG_LIST (gst_structure_copy ((GstStructure *) list));
+ gst_structure_foreach (GST_TAG_LIST_STRUCTURE (from),
+ gst_tag_list_copy_foreach, &data);
}
/**
@@ -1020,7 +1092,7 @@ gst_tag_list_copy (const GstTagList * list)
* Merges the two given lists into a new list. If one of the lists is NULL, a
* copy of the other is returned. If both lists are NULL, NULL is returned.
*
- * Free-function: gst_tag_list_free
+ * Free-function: gst_tag_list_unref
*
* Returns: (transfer full): the new list
*/
@@ -1047,25 +1119,12 @@ gst_tag_list_merge (const GstTagList * list1, const GstTagList * list2,
gst_tag_list_insert (list1_cp, list2_cp, mode);
if (!list2)
- gst_tag_list_free ((GstTagList *) list2_cp);
+ gst_tag_list_unref ((GstTagList *) list2_cp);
return list1_cp;
}
/**
- * gst_tag_list_free:
- * @list: (in) (transfer full): the list to free
- *
- * Frees the given list and all associated values.
- */
-void
-gst_tag_list_free (GstTagList * list)
-{
- g_return_if_fail (GST_IS_TAG_LIST (list));
- gst_structure_free ((GstStructure *) list);
-}
-
-/**
* gst_tag_list_get_tag_size:
* @list: a taglist
* @tag: the tag to query
@@ -1081,7 +1140,7 @@ gst_tag_list_get_tag_size (const GstTagList * list, const gchar * tag)
g_return_val_if_fail (GST_IS_TAG_LIST (list), 0);
- value = gst_structure_get_value ((GstStructure *) list, tag);
+ value = gst_structure_get_value (GST_TAG_LIST_STRUCTURE (list), tag);
if (value == NULL)
return 0;
if (G_VALUE_TYPE (value) != GST_TYPE_LIST)
@@ -1106,6 +1165,7 @@ gst_tag_list_add (GstTagList * list, GstTagMergeMode mode, const gchar * tag,
va_list args;
g_return_if_fail (GST_IS_TAG_LIST (list));
+ g_return_if_fail (gst_tag_list_is_writable (list));
g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
g_return_if_fail (tag != NULL);
@@ -1130,6 +1190,7 @@ gst_tag_list_add_values (GstTagList * list, GstTagMergeMode mode,
va_list args;
g_return_if_fail (GST_IS_TAG_LIST (list));
+ g_return_if_fail (gst_tag_list_is_writable (list));
g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
g_return_if_fail (tag != NULL);
@@ -1155,11 +1216,12 @@ gst_tag_list_add_valist (GstTagList * list, GstTagMergeMode mode,
gchar *error = NULL;
g_return_if_fail (GST_IS_TAG_LIST (list));
+ g_return_if_fail (gst_tag_list_is_writable (list));
g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
g_return_if_fail (tag != NULL);
if (mode == GST_TAG_MERGE_REPLACE_ALL) {
- gst_structure_remove_all_fields (GST_STRUCTURE (list));
+ gst_structure_remove_all_fields (GST_TAG_LIST_STRUCTURE (list));
}
while (tag != NULL) {
@@ -1199,11 +1261,12 @@ gst_tag_list_add_valist_values (GstTagList * list, GstTagMergeMode mode,
const gchar * tag, va_list var_args)
{
g_return_if_fail (GST_IS_TAG_LIST (list));
+ g_return_if_fail (gst_tag_list_is_writable (list));
g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
g_return_if_fail (tag != NULL);
if (mode == GST_TAG_MERGE_REPLACE_ALL) {
- gst_structure_remove_all_fields (GST_STRUCTURE (list));
+ gst_structure_remove_all_fields (GST_TAG_LIST_STRUCTURE (list));
}
while (tag != NULL) {
@@ -1236,6 +1299,7 @@ gst_tag_list_add_value (GstTagList * list, GstTagMergeMode mode,
const gchar * tag, const GValue * value)
{
g_return_if_fail (GST_IS_TAG_LIST (list));
+ g_return_if_fail (gst_tag_list_is_writable (list));
g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
g_return_if_fail (tag != NULL);
@@ -1255,7 +1319,7 @@ gst_tag_list_remove_tag (GstTagList * list, const gchar * tag)
g_return_if_fail (GST_IS_TAG_LIST (list));
g_return_if_fail (tag != NULL);
- gst_structure_remove_field ((GstStructure *) list, tag);
+ gst_structure_remove_field (GST_TAG_LIST_STRUCTURE (list), tag);
}
typedef struct
@@ -1297,8 +1361,8 @@ gst_tag_list_foreach (const GstTagList * list, GstTagForeachFunc func,
data.func = func;
data.tag_list = list;
data.data = user_data;
- gst_structure_foreach ((GstStructure *) list, structure_foreach_wrapper,
- &data);
+ gst_structure_foreach (GST_TAG_LIST_STRUCTURE (list),
+ structure_foreach_wrapper, &data);
}
/**
@@ -1322,7 +1386,7 @@ gst_tag_list_get_value_index (const GstTagList * list, const gchar * tag,
g_return_val_if_fail (GST_IS_TAG_LIST (list), NULL);
g_return_val_if_fail (tag != NULL, NULL);
- value = gst_structure_get_value ((GstStructure *) list, tag);
+ value = gst_structure_get_value (GST_TAG_LIST_STRUCTURE (list), tag);
if (value == NULL)
return NULL;
@@ -1362,7 +1426,7 @@ gst_tag_list_copy_value (GValue * dest, const GstTagList * list,
g_return_val_if_fail (dest != NULL, FALSE);
g_return_val_if_fail (G_VALUE_TYPE (dest) == 0, FALSE);
- src = gst_structure_get_value ((GstStructure *) list, tag);
+ src = gst_structure_get_value (GST_TAG_LIST_STRUCTURE (list), tag);
if (!src)
return FALSE;
diff --git a/gst/gsttaglist.h b/gst/gsttaglist.h
index 00a2770..7940a31 100644
--- a/gst/gsttaglist.h
+++ b/gst/gsttaglist.h
@@ -132,6 +132,7 @@ typedef enum {
*
* Extra tag flags used when registering tags.
*/
+/* FIXME: these are not really flags .. */
typedef enum {
GST_TAG_FLAG_UNDEFINED,
GST_TAG_FLAG_META,
@@ -144,14 +145,18 @@ typedef enum {
/**
* GstTagList:
+ * @mini_object: the parent type
*
- * Opaque #GstTagList data structure.
+ * Object describing tags / metadata.
*/
typedef struct _GstTagList GstTagList;
+struct _GstTagList {
+ GstMiniObject mini_object;
+};
#define GST_TAG_LIST(x) ((GstTagList *) (x))
-#define GST_IS_TAG_LIST(x) ((x) != NULL && gst_is_tag_list (GST_TAG_LIST (x)))
#define GST_TYPE_TAG_LIST (gst_tag_list_get_type ())
+#define GST_IS_TAG_LIST(obj) (GST_IS_MINI_OBJECT_TYPE((obj), GST_TYPE_TAG_LIST))
/**
* GstTagForeachFunc:
@@ -186,6 +191,13 @@ void gst_tag_register (const gchar * name,
const gchar * blurb,
GstTagMergeFunc func);
+void gst_tag_register_static (const gchar * name,
+ GstTagFlag flag,
+ GType type,
+ const gchar * nick,
+ const gchar * blurb,
+ GstTagMergeFunc func);
+
/* some default merging functions */
void gst_tag_merge_use_first (GValue * dest, const GValue * src);
void gst_tag_merge_strings_with_comma (GValue * dest, const GValue * src);
@@ -206,8 +218,6 @@ GstTagList * gst_tag_list_new_valist (va_list var_args) G_GNUC_MALLOC;
gchar * gst_tag_list_to_string (const GstTagList * list) G_GNUC_MALLOC;
GstTagList * gst_tag_list_new_from_string (const gchar * str) G_GNUC_MALLOC;
-gboolean gst_is_tag_list (gconstpointer p);
-GstTagList * gst_tag_list_copy (const GstTagList * list) G_GNUC_MALLOC;
gint gst_tag_list_n_tags (const GstTagList * list);
const gchar* gst_tag_list_nth_tag_name (const GstTagList * list, guint index);
gboolean gst_tag_list_is_empty (const GstTagList * list);
@@ -219,7 +229,6 @@ void gst_tag_list_insert (GstTagList * into,
GstTagList * gst_tag_list_merge (const GstTagList * list1,
const GstTagList * list2,
GstTagMergeMode mode) G_GNUC_MALLOC;
-void gst_tag_list_free (GstTagList * list);
guint gst_tag_list_get_tag_size (const GstTagList * list,
const gchar * tag);
void gst_tag_list_add (GstTagList * list,
@@ -346,6 +355,104 @@ gboolean gst_tag_list_get_buffer_index (const GstTagList * list,
guint index,
GstBuffer ** value);
+/* refcounting */
+/**
+ * gst_tag_list_ref:
+ * @taglist: the #GstTagList to reference
+ *
+ * Add a reference to a #GstTagList mini object.
+ *
+ * From this point on, until the caller calls gst_tag_list_unref() or
+ * gst_tag_list_make_writable(), it is guaranteed that the taglist object will
+ * not change. To use a #GstTagList object, you must always have a refcount on
+ * it -- either the one made implicitly by e.g. gst_tag_list_new(), or via
+ * taking one explicitly with this function.
+ *
+ * Returns: the same #GstTagList mini object.
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstTagList * gst_tag_list_ref (GstTagList * taglist);
+#endif
+
+static inline GstTagList *
+gst_tag_list_ref (GstTagList * taglist)
+{
+ return (GstTagList *) gst_mini_object_ref (GST_MINI_OBJECT_CAST (taglist));
+}
+
+/**
+ * gst_tag_list_unref:
+ * @taglist: a #GstTagList.
+ *
+ * Unref a #GstTagList, and and free all its memory when the refcount reaches 0.
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC void gst_tag_list_unref (GstTagList * taglist);
+#endif
+
+static inline void
+gst_tag_list_unref (GstTagList * taglist)
+{
+ gst_mini_object_unref (GST_MINI_OBJECT_CAST (taglist));
+}
+
+/**
+ * gst_tag_list_copy:
+ * @taglist: a #GstTagList.
+ *
+ * Creates a new #GstTagList as a copy of the old @taglist. The new taglist
+ * will have a refcount of 1, owned by the caller, and will be writable as
+ * a result.
+ *
+ * Note that this function is the semantic equivalent of a gst_tag_list_ref()
+ * followed by a gst_tag_list_make_writable(). If you only want to hold on to a
+ * reference to the data, you should use gst_tag_list_ref().
+ *
+ * When you are finished with the taglist, call gst_tag_list_unref() on it.
+ *
+ * Returns: the new #GstTagList
+ */
+#ifdef _FOOL_GTK_DOC_
+G_INLINE_FUNC GstTagList * gst_tag_list_copy (const GstTagList * taglist);
+#endif
+
+static inline GstTagList *
+gst_tag_list_copy (const GstTagList * taglist)
+{
+ return GST_TAG_LIST (gst_mini_object_copy (GST_MINI_OBJECT_CAST (taglist)));
+}
+
+/**
+ * gst_tag_list_is_writable:
+ * @taglist: a #GstTagList
+ *
+ * Tests if you can safely modify @taglist. It is only safe to modify taglist
+ * when there is only one owner of the taglist - ie, the refcount is 1.
+ */
+#define gst_tag_list_is_writable(taglist) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (taglist))
+
+/**
+ * gst_tag_list_make_writable:
+ * @taglist: (transfer full): a #GstTagList
+ *
+ * Returns a writable copy of @taglist.
+ *
+ * If there is only one reference count on @taglist, the caller must be the
+ * owner, and so this function will return the taglist object unchanged. If on
+ * the other hand there is more than one reference on the object, a new taglist
+ * object will be returned (which will be a copy of @taglist). The caller's
+ * reference on @taglist will be removed, and instead the caller will own a
+ * reference to the returned object.
+ *
+ * In short, this function unrefs the taglist in the argument and refs the
+ * taglist that it returns. Don't access the argument after calling this
+ * function. See also: gst_tag_list_ref().
+ *
+ * Returns: (transfer full): a writable taglist which may or may not be the
+ * same as @taglist
+ */
+#define gst_tag_list_make_writable(taglist) GST_TAG_LIST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (taglist)))
+
/* GStreamer core tags */
/**
* GST_TAG_TITLE:
@@ -723,7 +830,7 @@ gboolean gst_tag_list_get_buffer_index (const GstTagList * list,
/**
* GST_TAG_IMAGE:
*
- * image (sample) (sample caps should specify the content type and preferably
+ * image (sample) (sample taglist should specify the content type and preferably
* also set "image-type" field as #GstTagImageType)
*
* Since: 0.10.6
@@ -733,7 +840,7 @@ gboolean gst_tag_list_get_buffer_index (const GstTagList * list,
* GST_TAG_PREVIEW_IMAGE:
*
* image that is meant for preview purposes, e.g. small icon-sized version
- * (sample) (sample caps should specify the content type)
+ * (sample) (sample taglist should specify the content type)
*
* Since: 0.10.7
*/
@@ -742,7 +849,7 @@ gboolean gst_tag_list_get_buffer_index (const GstTagList * list,
/**
* GST_TAG_ATTACHMENT:
*
- * generic file attachment (sample) (sample caps should specify the content
+ * generic file attachment (sample) (sample taglist should specify the content
* type and if possible set "filename" to the file name of the
* attachment)
*
diff --git a/gst/gsttagsetter.c b/gst/gsttagsetter.c
index 2ed099d..b538c59 100644
--- a/gst/gsttagsetter.c
+++ b/gst/gsttagsetter.c
@@ -126,7 +126,7 @@ gst_tag_data_free (gpointer p)
GstTagData *data = (GstTagData *) p;
if (data->list)
- gst_tag_list_free (data->list);
+ gst_tag_list_unref (data->list);
g_mutex_clear (&data->lock);
@@ -181,7 +181,7 @@ gst_tag_setter_reset_tags (GstTagSetter * setter)
GST_TAG_DATA_LOCK (data);
if (data->list) {
- gst_tag_list_free (data->list);
+ gst_tag_list_unref (data->list);
data->list = NULL;
}
GST_TAG_DATA_UNLOCK (data);
diff --git a/gst/gsttoc.c b/gst/gsttoc.c
index 0ea0f33..b79717b 100644
--- a/gst/gsttoc.c
+++ b/gst/gsttoc.c
@@ -70,90 +70,12 @@
#include "gstvalue.h"
#include "gsttoc.h"
#include "gstpad.h"
+#include "gstquark.h"
-#define GST_TOC_TOC_NAME "toc"
-#define GST_TOC_ENTRY_NAME "entry"
-
-#define GST_TOC_TOC_UPDATED_FIELD "updated"
-#define GST_TOC_TOC_EXTENDUID_FIELD "extenduid"
-#define GST_TOC_INFO_FIELD "info"
-
-#define GST_TOC_ENTRY_UID_FIELD "uid"
-#define GST_TOC_ENTRY_TYPE_FIELD "type"
-#define GST_TOC_ENTRY_TAGS_FIELD "tags"
-
-#define GST_TOC_TOC_ENTRIES_FIELD "subentries"
-
-#define GST_TOC_INFO_NAME "info-structure"
-#define GST_TOC_INFO_TIME_FIELD "time"
-
-#define GST_TOC_TIME_NAME "time-structure"
-#define GST_TOC_TIME_START_FIELD "start"
-#define GST_TOC_TIME_STOP_FIELD "stop"
-
-
-enum
-{
- GST_TOC_TOC = 0,
- GST_TOC_ENTRY = 1,
- GST_TOC_UPDATED = 2,
- GST_TOC_EXTENDUID = 3,
- GST_TOC_UID = 4,
- GST_TOC_TYPE = 5,
- GST_TOC_TAGS = 6,
- GST_TOC_SUBENTRIES = 7,
- GST_TOC_INFO = 8,
- GST_TOC_INFONAME = 9,
- GST_TOC_TIME = 10,
- GST_TOC_TIMENAME = 11,
- GST_TOC_TIME_START = 12,
- GST_TOC_TIME_STOP = 13,
- GST_TOC_LAST = 14
-};
-
-static GQuark gst_toc_fields[GST_TOC_LAST] = { 0 };
-
-void
-_priv_gst_toc_initialize (void)
-{
- static gboolean inited = FALSE;
-
- if (G_LIKELY (!inited)) {
- gst_toc_fields[GST_TOC_TOC] = g_quark_from_static_string (GST_TOC_TOC_NAME);
- gst_toc_fields[GST_TOC_ENTRY] =
- g_quark_from_static_string (GST_TOC_ENTRY_NAME);
-
- gst_toc_fields[GST_TOC_UPDATED] =
- g_quark_from_static_string (GST_TOC_TOC_UPDATED_FIELD);
- gst_toc_fields[GST_TOC_EXTENDUID] =
- g_quark_from_static_string (GST_TOC_TOC_EXTENDUID_FIELD);
- gst_toc_fields[GST_TOC_INFO] =
- g_quark_from_static_string (GST_TOC_INFO_FIELD);
-
- gst_toc_fields[GST_TOC_UID] =
- g_quark_from_static_string (GST_TOC_ENTRY_UID_FIELD);
- gst_toc_fields[GST_TOC_TYPE] =
- g_quark_from_static_string (GST_TOC_ENTRY_TYPE_FIELD);
- gst_toc_fields[GST_TOC_TAGS] =
- g_quark_from_static_string (GST_TOC_ENTRY_TAGS_FIELD);
-
- gst_toc_fields[GST_TOC_SUBENTRIES] =
- g_quark_from_static_string (GST_TOC_TOC_ENTRIES_FIELD);
-
- gst_toc_fields[GST_TOC_INFONAME] =
- g_quark_from_static_string (GST_TOC_INFO_NAME);
- gst_toc_fields[GST_TOC_TIME] =
- g_quark_from_static_string (GST_TOC_INFO_TIME_FIELD);
- gst_toc_fields[GST_TOC_TIMENAME] =
- g_quark_from_static_string (GST_TOC_TIME_NAME);
- gst_toc_fields[GST_TOC_TIME_START] =
- g_quark_from_static_string (GST_TOC_TIME_START_FIELD);
- gst_toc_fields[GST_TOC_TIME_STOP] =
- g_quark_from_static_string (GST_TOC_TIME_STOP_FIELD);
-
- inited = TRUE;
- }
-}
+G_DEFINE_BOXED_TYPE (GstToc, gst_toc,
+ (GBoxedCopyFunc) gst_toc_copy, (GBoxedFreeFunc) gst_toc_free);
+G_DEFINE_BOXED_TYPE (GstTocEntry, gst_toc_entry,
+ (GBoxedCopyFunc) gst_toc_entry_copy, (GBoxedFreeFunc) gst_toc_entry_free);
/**
* gst_toc_new:
@@ -171,7 +93,7 @@ gst_toc_new (void)
toc = g_slice_new0 (GstToc);
toc->tags = gst_tag_list_new_empty ();
- toc->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+ toc->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
return toc;
}
@@ -198,7 +120,7 @@ gst_toc_entry_new (GstTocEntryType type, const gchar * uid)
entry->uid = g_strdup (uid);
entry->type = type;
entry->tags = gst_tag_list_new_empty ();
- entry->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+ entry->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
return entry;
}
@@ -218,7 +140,7 @@ gst_toc_entry_new (GstTocEntryType type, const gchar * uid)
*/
GstTocEntry *
gst_toc_entry_new_with_pad (GstTocEntryType type, const gchar * uid,
- gpointer pad)
+ GstPad * pad)
{
GstTocEntry *entry;
@@ -228,7 +150,7 @@ gst_toc_entry_new_with_pad (GstTocEntryType type, const gchar * uid,
entry->uid = g_strdup (uid);
entry->type = type;
entry->tags = gst_tag_list_new_empty ();
- entry->info = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_INFONAME]);
+ entry->info = gst_structure_new_id_empty (GST_QUARK (INFO_STRUCTURE));
if (pad != NULL && GST_IS_PAD (pad))
entry->pads = g_list_append (entry->pads, gst_object_ref (pad));
@@ -253,7 +175,7 @@ gst_toc_free (GstToc * toc)
g_list_free (toc->entries);
if (toc->tags != NULL)
- gst_tag_list_free (toc->tags);
+ gst_tag_list_unref (toc->tags);
if (toc->info != NULL)
gst_structure_free (toc->info);
@@ -284,7 +206,7 @@ gst_toc_entry_free (GstTocEntry * entry)
g_free (entry->uid);
if (entry->tags != NULL)
- gst_tag_list_free (entry->tags);
+ gst_tag_list_unref (entry->tags);
if (entry->info != NULL)
gst_structure_free (entry->info);
@@ -305,22 +227,16 @@ static GstStructure *
gst_toc_structure_new (GstTagList * tags, GstStructure * info)
{
GstStructure *ret;
- GValue val = { 0 };
- ret = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_TOC]);
+ ret = gst_structure_new_id_empty (GST_QUARK (TOC));
if (tags != NULL) {
- g_value_init (&val, GST_TYPE_STRUCTURE);
- gst_value_set_structure (&val, GST_STRUCTURE (tags));
- gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_TAGS], &val);
- g_value_unset (&val);
+ gst_structure_id_set (ret, GST_QUARK (TAGS), GST_TYPE_TAG_LIST, tags, NULL);
}
if (info != NULL) {
- g_value_init (&val, GST_TYPE_STRUCTURE);
- gst_value_set_structure (&val, info);
- gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_INFO], &val);
- g_value_unset (&val);
+ gst_structure_id_set (ret, GST_QUARK (INFO), GST_TYPE_STRUCTURE, info,
+ NULL);
}
return ret;
@@ -330,31 +246,21 @@ static GstStructure *
gst_toc_entry_structure_new (GstTocEntryType type, const gchar * uid,
GstTagList * tags, GstStructure * info)
{
- GValue val = { 0 };
GstStructure *ret;
- ret = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_ENTRY]);
+ ret = gst_structure_new_id_empty (GST_QUARK (TOC_ENTRY));
- gst_structure_id_set (ret, gst_toc_fields[GST_TOC_TYPE],
- GST_TYPE_TOC_ENTRY_TYPE, type, NULL);
-
- g_value_init (&val, G_TYPE_STRING);
- g_value_set_string (&val, uid);
- gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_UID], &val);
- g_value_unset (&val);
+ gst_structure_id_set (ret, GST_QUARK (TYPE), GST_TYPE_TOC_ENTRY_TYPE, type,
+ NULL);
+ gst_structure_id_set (ret, GST_QUARK (UID), G_TYPE_STRING, uid, NULL);
if (tags != NULL) {
- g_value_init (&val, GST_TYPE_STRUCTURE);
- gst_value_set_structure (&val, GST_STRUCTURE (tags));
- gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_TAGS], &val);
- g_value_unset (&val);
+ gst_structure_id_set (ret, GST_QUARK (TAGS), GST_TYPE_TAG_LIST, tags, NULL);
}
if (info != NULL) {
- g_value_init (&val, GST_TYPE_STRUCTURE);
- gst_value_set_structure (&val, info);
- gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_INFO], &val);
- g_value_unset (&val);
+ gst_structure_id_set (ret, GST_QUARK (INFO), GST_TYPE_STRUCTURE, info,
+ NULL);
}
return ret;
@@ -364,11 +270,11 @@ static guint
gst_toc_entry_structure_n_subentries (const GstStructure * entry)
{
if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
- gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)))
+ GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)))
return 0;
else
return gst_value_array_get_size ((gst_structure_id_get_value (entry,
- gst_toc_fields[GST_TOC_SUBENTRIES])));
+ GST_QUARK (SUB_ENTRIES))));
}
static const GstStructure *
@@ -383,12 +289,12 @@ gst_toc_entry_structure_nth_subentry (const GstStructure * entry, guint nth)
return NULL;
if (G_UNLIKELY (!gst_structure_id_has_field_typed (entry,
- gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)))
+ GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)))
return NULL;
else {
array =
gst_value_array_get_value (gst_structure_id_get_value (entry,
- gst_toc_fields[GST_TOC_SUBENTRIES]), nth);
+ GST_QUARK (SUB_ENTRIES)), nth);
return gst_value_get_structure (array);
}
}
@@ -407,20 +313,20 @@ gst_toc_entry_from_structure (const GstStructure * entry, guint level)
g_return_val_if_fail (entry != NULL, NULL);
g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
- gst_toc_fields[GST_TOC_UID], G_TYPE_STRING), NULL);
+ GST_QUARK (UID), G_TYPE_STRING), NULL);
g_return_val_if_fail (gst_structure_id_has_field_typed (entry,
- gst_toc_fields[GST_TOC_TYPE], GST_TYPE_TOC_ENTRY_TYPE), NULL);
+ GST_QUARK (TYPE), GST_TYPE_TOC_ENTRY_TYPE), NULL);
- val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_UID]);
+ val = gst_structure_id_get_value (entry, GST_QUARK (UID));
uid = g_value_get_string (val);
ret = gst_toc_entry_new (GST_TOC_ENTRY_TYPE_CHAPTER, uid);
- gst_structure_get_enum (entry, GST_TOC_ENTRY_TYPE_FIELD,
+ gst_structure_get_enum (entry, g_quark_to_string (GST_QUARK (TYPE)),
GST_TYPE_TOC_ENTRY_TYPE, (gint *) & (ret->type));
if (gst_structure_id_has_field_typed (entry,
- gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)) {
+ GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)) {
count = gst_toc_entry_structure_n_subentries (entry);
for (i = 0; i < count; ++i) {
@@ -460,20 +366,20 @@ gst_toc_entry_from_structure (const GstStructure * entry, guint level)
ret->subentries = g_list_reverse (ret->subentries);
}
- if (gst_structure_id_has_field_typed (entry,
- gst_toc_fields[GST_TOC_TAGS], GST_TYPE_STRUCTURE)) {
- val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_TAGS]);
+ if (gst_structure_id_has_field_typed (entry, GST_QUARK (TAGS),
+ GST_TYPE_TAG_LIST)) {
+ val = gst_structure_id_get_value (entry, GST_QUARK (TAGS));
- if (G_LIKELY (GST_IS_TAG_LIST (gst_value_get_structure (val)))) {
- list = gst_tag_list_copy (GST_TAG_LIST (gst_value_get_structure (val)));
- gst_tag_list_free (ret->tags);
+ if (G_LIKELY (GST_IS_TAG_LIST (g_value_get_boxed (val)))) {
+ list = gst_tag_list_copy (GST_TAG_LIST (g_value_get_boxed (val)));
+ gst_tag_list_unref (ret->tags);
ret->tags = list;
}
}
if (gst_structure_id_has_field_typed (entry,
- gst_toc_fields[GST_TOC_INFO], GST_TYPE_STRUCTURE)) {
- val = gst_structure_id_get_value (entry, gst_toc_fields[GST_TOC_INFO]);
+ GST_QUARK (INFO), GST_TYPE_STRUCTURE)) {
+ val = gst_structure_id_get_value (entry, GST_QUARK (INFO));
if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
st = gst_structure_copy (gst_value_get_structure (val));
@@ -502,7 +408,7 @@ __gst_toc_from_structure (const GstStructure * toc)
ret = gst_toc_new ();
if (gst_structure_id_has_field_typed (toc,
- gst_toc_fields[GST_TOC_SUBENTRIES], GST_TYPE_ARRAY)) {
+ GST_QUARK (SUB_ENTRIES), GST_TYPE_ARRAY)) {
count = gst_toc_entry_structure_n_subentries (toc);
for (i = 0; i < count; ++i) {
@@ -544,20 +450,20 @@ __gst_toc_from_structure (const GstStructure * toc)
ret->entries = g_list_reverse (ret->entries);
}
- if (gst_structure_id_has_field_typed (toc,
- gst_toc_fields[GST_TOC_TAGS], GST_TYPE_STRUCTURE)) {
- val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_TAGS]);
+ if (gst_structure_id_has_field_typed (toc, GST_QUARK (TAGS),
+ GST_TYPE_TAG_LIST)) {
+ val = gst_structure_id_get_value (toc, GST_QUARK (TAGS));
- if (G_LIKELY (GST_IS_TAG_LIST (gst_value_get_structure (val)))) {
- list = gst_tag_list_copy (GST_TAG_LIST (gst_value_get_structure (val)));
- gst_tag_list_free (ret->tags);
+ if (G_LIKELY (GST_IS_TAG_LIST (g_value_get_boxed (val)))) {
+ list = gst_tag_list_copy (GST_TAG_LIST (g_value_get_boxed (val)));
+ gst_tag_list_unref (ret->tags);
ret->tags = list;
}
}
if (gst_structure_id_has_field_typed (toc,
- gst_toc_fields[GST_TOC_INFO], GST_TYPE_STRUCTURE)) {
- val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_INFO]);
+ GST_QUARK (INFO), GST_TYPE_STRUCTURE)) {
+ val = gst_structure_id_get_value (toc, GST_QUARK (INFO));
if (G_LIKELY (GST_IS_STRUCTURE (gst_value_get_structure (val)))) {
st = gst_structure_copy (gst_value_get_structure (val));
@@ -647,8 +553,7 @@ gst_toc_entry_to_structure (const GstTocEntry * entry, guint level)
cur = cur->next;
}
- gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_SUBENTRIES],
- &subentries_val);
+ gst_structure_id_set_value (ret, GST_QUARK (SUB_ENTRIES), &subentries_val);
g_value_unset (&subentries_val);
g_value_unset (&entry_val);
@@ -719,8 +624,7 @@ __gst_toc_to_structure (const GstToc * toc)
cur = cur->next;
}
- gst_structure_id_set_value (ret, gst_toc_fields[GST_TOC_SUBENTRIES],
- &subentries_val);
+ gst_structure_id_set_value (ret, GST_QUARK (SUB_ENTRIES), &subentries_val);
g_value_unset (&val);
g_value_unset (&subentries_val);
@@ -808,7 +712,7 @@ gst_toc_entry_copy (const GstTocEntry * entry)
if (GST_IS_TAG_LIST (entry->tags)) {
list = gst_tag_list_copy (entry->tags);
- gst_tag_list_free (ret->tags);
+ gst_tag_list_unref (ret->tags);
ret->tags = list;
}
@@ -866,7 +770,7 @@ gst_toc_copy (const GstToc * toc)
if (GST_IS_TAG_LIST (toc->tags)) {
list = gst_tag_list_copy (toc->tags);
- gst_tag_list_free (ret->tags);
+ gst_tag_list_unref (ret->tags);
ret->tags = list;
}
@@ -903,21 +807,19 @@ gst_toc_entry_set_start_stop (GstTocEntry * entry, gint64 start, gint64 stop)
g_return_if_fail (entry != NULL);
g_return_if_fail (GST_IS_STRUCTURE (entry->info));
- if (gst_structure_id_has_field_typed (entry->info,
- gst_toc_fields[GST_TOC_TIME], GST_TYPE_STRUCTURE)) {
- val =
- gst_structure_id_get_value (entry->info, gst_toc_fields[GST_TOC_TIME]);
+ if (gst_structure_id_has_field_typed (entry->info, GST_QUARK (TIME),
+ GST_TYPE_STRUCTURE)) {
+ val = gst_structure_id_get_value (entry->info, GST_QUARK (TIME));
structure = gst_structure_copy (gst_value_get_structure (val));
}
if (structure == NULL)
- structure = gst_structure_new_id_empty (gst_toc_fields[GST_TOC_TIMENAME]);
+ structure = gst_structure_new_id_empty (GST_QUARK (TIME_STRUCTURE));
- gst_structure_id_set (structure, gst_toc_fields[GST_TOC_TIME_START],
- G_TYPE_INT64, start, gst_toc_fields[GST_TOC_TIME_STOP], G_TYPE_INT64,
- stop, NULL);
+ gst_structure_id_set (structure, GST_QUARK (START),
+ G_TYPE_INT64, start, GST_QUARK (STOP), G_TYPE_INT64, stop, NULL);
- gst_structure_id_set (entry->info, gst_toc_fields[GST_TOC_TIME],
+ gst_structure_id_set (entry->info, GST_QUARK (TIME),
GST_TYPE_STRUCTURE, structure, NULL);
gst_structure_free (structure);
@@ -948,28 +850,28 @@ gst_toc_entry_get_start_stop (const GstTocEntry * entry, gint64 * start,
g_return_val_if_fail (GST_IS_STRUCTURE (entry->info), FALSE);
if (!gst_structure_id_has_field_typed (entry->info,
- gst_toc_fields[GST_TOC_TIME], GST_TYPE_STRUCTURE))
+ GST_QUARK (TIME), GST_TYPE_STRUCTURE))
return FALSE;
- val = gst_structure_id_get_value (entry->info, gst_toc_fields[GST_TOC_TIME]);
+ val = gst_structure_id_get_value (entry->info, GST_QUARK (TIME));
structure = gst_value_get_structure (val);
if (start != NULL) {
if (gst_structure_id_has_field_typed (structure,
- gst_toc_fields[GST_TOC_TIME_START], G_TYPE_INT64))
+ GST_QUARK (START), G_TYPE_INT64))
*start =
g_value_get_int64 (gst_structure_id_get_value (structure,
- gst_toc_fields[GST_TOC_TIME_START]));
+ GST_QUARK (START)));
else
ret = FALSE;
}
if (stop != NULL) {
if (gst_structure_id_has_field_typed (structure,
- gst_toc_fields[GST_TOC_TIME_STOP], G_TYPE_INT64))
+ GST_QUARK (STOP), G_TYPE_INT64))
*stop =
g_value_get_int64 (gst_structure_id_get_value (structure,
- gst_toc_fields[GST_TOC_TIME_STOP]));
+ GST_QUARK (STOP)));
else
ret = FALSE;
}
@@ -977,6 +879,25 @@ gst_toc_entry_get_start_stop (const GstTocEntry * entry, gint64 * start,
return ret;
}
+/**
+ * gst_toc_entry_type_get_nick:
+ * @type: a #GstTocEntryType.
+ *
+ * Converts @type to a string representation.
+ *
+ * Returns: Returns the human-readable @type. Can be NULL if an error occurred.
+ * Since: 0.11.92
+ */
+const gchar *
+gst_toc_entry_type_get_nick (GstTocEntryType type)
+{
+ const gchar *entry_types[] = { "chapter", "edition" };
+
+ g_return_val_if_fail ((gint) type >= 0
+ && (gint) type < G_N_ELEMENTS (entry_types), NULL);
+ return entry_types[type];
+}
+
gboolean
__gst_toc_structure_get_updated (const GstStructure * toc)
{
@@ -985,8 +906,8 @@ __gst_toc_structure_get_updated (const GstStructure * toc)
g_return_val_if_fail (GST_IS_STRUCTURE (toc), FALSE);
if (G_LIKELY (gst_structure_id_has_field_typed (toc,
- gst_toc_fields[GST_TOC_UPDATED], G_TYPE_BOOLEAN))) {
- val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_UPDATED]);
+ GST_QUARK (UPDATED), G_TYPE_BOOLEAN))) {
+ val = gst_structure_id_get_value (toc, GST_QUARK (UPDATED));
return g_value_get_boolean (val);
}
@@ -996,14 +917,10 @@ __gst_toc_structure_get_updated (const GstStructure * toc)
void
__gst_toc_structure_set_updated (GstStructure * toc, gboolean updated)
{
- GValue val = { 0 };
-
g_return_if_fail (toc != NULL);
- g_value_init (&val, G_TYPE_BOOLEAN);
- g_value_set_boolean (&val, updated);
- gst_structure_id_set_value (toc, gst_toc_fields[GST_TOC_UPDATED], &val);
- g_value_unset (&val);
+ gst_structure_id_set (toc, GST_QUARK (UPDATED), G_TYPE_BOOLEAN, updated,
+ NULL);
}
gchar *
@@ -1014,8 +931,8 @@ __gst_toc_structure_get_extend_uid (const GstStructure * toc)
g_return_val_if_fail (GST_IS_STRUCTURE (toc), NULL);
if (G_LIKELY (gst_structure_id_has_field_typed (toc,
- gst_toc_fields[GST_TOC_EXTENDUID], G_TYPE_STRING))) {
- val = gst_structure_id_get_value (toc, gst_toc_fields[GST_TOC_EXTENDUID]);
+ GST_QUARK (EXTEND_UID), G_TYPE_STRING))) {
+ val = gst_structure_id_get_value (toc, GST_QUARK (EXTEND_UID));
return g_strdup (g_value_get_string (val));
}
@@ -1026,13 +943,9 @@ void
__gst_toc_structure_set_extend_uid (GstStructure * toc,
const gchar * extend_uid)
{
- GValue val = { 0 };
-
g_return_if_fail (toc != NULL);
g_return_if_fail (extend_uid != NULL);
- g_value_init (&val, G_TYPE_STRING);
- g_value_set_string (&val, extend_uid);
- gst_structure_id_set_value (toc, gst_toc_fields[GST_TOC_EXTENDUID], &val);
- g_value_unset (&val);
+ gst_structure_id_set (toc, GST_QUARK (EXTEND_UID), G_TYPE_STRING, extend_uid,
+ NULL);
}
diff --git a/gst/gsttoc.h b/gst/gsttoc.h
index a1a7b8c..d59cf84 100644
--- a/gst/gsttoc.h
+++ b/gst/gsttoc.h
@@ -29,6 +29,9 @@
G_BEGIN_DECLS
+#define GST_TYPE_TOC (gst_toc_get_type ())
+#define GST_TYPE_TOC_ENTRY (gst_toc_entry_get_type ())
+
typedef struct _GstTocEntry GstTocEntry;
typedef struct _GstToc GstToc;
@@ -90,10 +93,14 @@ struct _GstToc {
gpointer _gst_reserved[GST_PADDING];
};
+/* functions to return type structures */
+GType gst_toc_get_type (void);
+GType gst_toc_entry_get_type (void);
+
/* functions to create new structures */
GstToc * gst_toc_new (void);
GstTocEntry * gst_toc_entry_new (GstTocEntryType type, const gchar *uid);
-GstTocEntry * gst_toc_entry_new_with_pad (GstTocEntryType type, const gchar *uid, gpointer pad);
+GstTocEntry * gst_toc_entry_new_with_pad (GstTocEntryType type, const gchar *uid, GstPad * pad);
/* functions to free structures */
void gst_toc_entry_free (GstTocEntry *entry);
@@ -105,6 +112,7 @@ GstToc * gst_toc_copy (const GstToc *toc);
void gst_toc_entry_set_start_stop (GstTocEntry *entry, gint64 start, gint64 stop);
gboolean gst_toc_entry_get_start_stop (const GstTocEntry *entry, gint64 *start, gint64 *stop);
+const gchar * gst_toc_entry_type_get_nick (GstTocEntryType type);
G_END_DECLS
diff --git a/gst/gsturi.c b/gst/gsturi.c
index afe2907..90e7461 100644
--- a/gst/gsturi.c
+++ b/gst/gsturi.c
@@ -578,6 +578,8 @@ gst_element_make_from_uri (const GstURIType type, const gchar * uri,
g_return_val_if_fail (GST_URI_TYPE_IS_VALID (type), NULL);
g_return_val_if_fail (gst_uri_is_valid (uri), NULL);
+ GST_DEBUG ("type:%d, uri:%s, elementname:%s", type, uri, elementname);
+
protocol = gst_uri_get_protocol (uri);
possibilities = get_element_factories_from_uri_protocol (type, protocol);
g_free (protocol);
@@ -598,6 +600,7 @@ gst_element_make_from_uri (const GstURIType type, const gchar * uri,
if (gst_uri_handler_set_uri (handler, uri, NULL))
break;
+ GST_WARNING ("element %s didn't accept the URI", GST_ELEMENT_NAME (ret));
gst_object_unref (ret);
ret = NULL;
}
diff --git a/gst/gstutils.c b/gst/gstutils.c
index 7771862..5c15341 100644
--- a/gst/gstutils.c
+++ b/gst/gstutils.c
@@ -2364,8 +2364,8 @@ gst_element_query_convert (GstElement * element, GstFormat src_format,
* PAUSED. If the element supports seek in READY, it will always return %TRUE when
* it receives the event in the READY state.
*
- * Returns: %TRUE if the seek operation succeeded (the seek might not always be
- * executed instantly though)
+ * Returns: %TRUE if the seek operation succeeded. Flushing seeks will trigger a
+ * preroll, which will emit %GST_MESSAGE_ASYNC_DONE.
*
* Since: 0.10.7
*/
@@ -2931,7 +2931,8 @@ gst_pad_query_accept_caps (GstPad * pad, GstCaps * caps)
g_return_val_if_fail (GST_IS_PAD (pad), FALSE);
g_return_val_if_fail (GST_IS_CAPS (caps), FALSE);
- GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "accept caps of %p", caps);
+ GST_CAT_DEBUG_OBJECT (GST_CAT_CAPS, pad, "accept caps of %"
+ GST_PTR_FORMAT, caps);
query = gst_query_new_accept_caps (caps);
if (gst_pad_query (pad, query)) {
diff --git a/gst/parse/Makefile.in b/gst/parse/Makefile.in
index 5915f4d..17fcfe4 100644
--- a/gst/parse/Makefile.in
+++ b/gst/parse/Makefile.in
@@ -52,6 +52,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = gst/parse
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
@@ -257,6 +258,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/gstreamer.doap b/gstreamer.doap
index f21642f..9e70e16 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,6 +40,16 @@ hierarchy, and a set of media-agnostic core elements.
<release>
<Version>
+ <revision>0.11.92</revision>
+ <branch>0.11</branch>
+ <name>High Hopes</name>
+ <created>2012-06-07</created>
+ <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.11.92.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>0.11.91</revision>
<branch>0.11</branch>
<name>I will give you five magic beans!</name>
diff --git a/gstreamer.spec b/gstreamer.spec
index 79ae557..0c60a04 100644
--- a/gstreamer.spec
+++ b/gstreamer.spec
@@ -4,7 +4,7 @@
%define _glib2 2.31.14
Name: %{gstreamer}
-Version: 0.11.91
+Version: 0.11.92
Release: 1
Summary: GStreamer streaming media framework runtime
diff --git a/libs/Makefile.in b/libs/Makefile.in
index dc97f29..90abb56 100644
--- a/libs/Makefile.in
+++ b/libs/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = libs
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -257,6 +258,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -409,7 +414,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/gst/Makefile.in b/libs/gst/Makefile.in
index 2f91786..9e2ee97 100644
--- a/libs/gst/Makefile.in
+++ b/libs/gst/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = libs/gst
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -256,6 +257,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -408,7 +413,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/gst/base/Makefile.in b/libs/gst/base/Makefile.in
index ed702b5..474b77e 100644
--- a/libs/gst/base/Makefile.in
+++ b/libs/gst/base/Makefile.in
@@ -53,6 +53,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = libs/gst/base
DIST_COMMON = README $(libgstbase_@GST_API_VERSION@include_HEADERS) \
@@ -300,6 +301,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -452,7 +457,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/gst/base/gstadapter.c b/libs/gst/base/gstadapter.c
index b27edcf..2e61430 100644
--- a/libs/gst/base/gstadapter.c
+++ b/libs/gst/base/gstadapter.c
@@ -550,16 +550,7 @@ gst_adapter_copy (GstAdapter * adapter, gpointer dest, gsize offset, gsize size)
copy_into_unchecked (adapter, dest, offset + adapter->skip, size);
}
-/**
- * gst_adapter_flush:
- * @adapter: a #GstAdapter
- * @flush: the number of bytes to flush
- *
- * Flushes the first @flush bytes in the @adapter. The caller must ensure that
- * at least this many bytes are available.
- *
- * See also: gst_adapter_map(), gst_adapter_unmap()
- */
+/*Flushes the first @flush bytes in the @adapter*/
static void
gst_adapter_flush_unchecked (GstAdapter * adapter, gsize flush)
{
@@ -615,6 +606,16 @@ gst_adapter_flush_unchecked (GstAdapter * adapter, gsize flush)
adapter->scan_entry = NULL;
}
+/**
+ * gst_adapter_flush:
+ * @adapter: a #GstAdapter
+ * @flush: the number of bytes to flush
+ *
+ * Flushes the first @flush bytes in the @adapter. The caller must ensure that
+ * at least this many bytes are available.
+ *
+ * See also: gst_adapter_map(), gst_adapter_unmap()
+ */
void
gst_adapter_flush (GstAdapter * adapter, gsize flush)
{
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 8067e53..e2f9d97 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -1407,7 +1407,8 @@ gst_base_parse_post_bitrates (GstBaseParse * parse, gboolean post_min,
parse->priv->max_bitrate);
if (taglist != NULL) {
- gst_pad_push_event (parse->srcpad, gst_event_new_tag (taglist));
+ gst_pad_push_event (parse->srcpad, gst_event_new_tag ("GstParser",
+ taglist));
}
}
@@ -1778,11 +1779,6 @@ gst_base_parse_handle_buffer (GstBaseParse * parse, GstBuffer * buffer,
GST_LOG_OBJECT (parse, "handle_frame skipped %d, flushed %d",
*skip, *flushed);
- if (ret != GST_FLOW_OK) {
- GST_DEBUG_OBJECT (parse, "handle_frame returned %d", ret);
- goto exit;
- }
-
/* subclass can only do one of these, or semantics are too unclear */
g_assert (*skip == 0 || *flushed == 0);
@@ -1817,7 +1813,6 @@ gst_base_parse_handle_buffer (GstBaseParse * parse, GstBuffer * buffer,
parse->priv->offset += *flushed;
-exit:
if (parse->priv->pad_mode == GST_PAD_MODE_PULL) {
gst_adapter_clear (parse->priv->adapter);
}
diff --git a/libs/gst/base/gstbasesink.c b/libs/gst/base/gstbasesink.c
index e404ed4..d1e9e70 100644
--- a/libs/gst/base/gstbasesink.c
+++ b/libs/gst/base/gstbasesink.c
@@ -523,7 +523,7 @@ gst_base_sink_class_init (GstBaseSinkClass * klass)
*/
g_object_class_install_property (gobject_class, PROP_THROTTLE_TIME,
g_param_spec_uint64 ("throttle-time", "Throttle time",
- "The time to keep between rendered buffers (unused)", 0, G_MAXUINT64,
+ "The time to keep between rendered buffers", 0, G_MAXUINT64,
DEFAULT_THROTTLE_TIME, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
gstelement_class->change_state =
@@ -2003,8 +2003,8 @@ gst_base_sink_wait_clock (GstBaseSink * sink, GstClockTime time,
/* FIXME: Casting to GstClockEntry only works because the types
* are the same */
if (G_LIKELY (sink->priv->cached_clock_id != NULL
- && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->priv->
- cached_clock_id) == clock)) {
+ && GST_CLOCK_ENTRY_CLOCK ((GstClockEntry *) sink->
+ priv->cached_clock_id) == clock)) {
if (!gst_clock_single_shot_id_reinit (clock, sink->priv->cached_clock_id,
time)) {
gst_clock_id_unref (sink->priv->cached_clock_id);
@@ -2148,6 +2148,11 @@ gst_base_sink_do_preroll (GstBaseSink * sink, GstMiniObject * obj)
GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
bclass = GST_BASE_SINK_GET_CLASS (sink);
+
+ if (bclass->prepare)
+ if ((ret = bclass->prepare (sink, buf)) != GST_FLOW_OK)
+ goto prepare_canceled;
+
if (bclass->preroll)
if ((ret = bclass->preroll (sink, buf)) != GST_FLOW_OK)
goto preroll_canceled;
@@ -2174,6 +2179,12 @@ gst_base_sink_do_preroll (GstBaseSink * sink, GstMiniObject * obj)
return GST_FLOW_OK;
/* ERRORS */
+prepare_canceled:
+ {
+ GST_DEBUG_OBJECT (sink, "prepare failed, abort state");
+ gst_element_abort_state (GST_ELEMENT_CAST (sink));
+ return ret;
+ }
preroll_canceled:
{
GST_DEBUG_OBJECT (sink, "preroll failed, abort state");
@@ -3068,7 +3079,7 @@ gst_base_sink_needs_preroll (GstBaseSink * basesink)
*/
static GstFlowReturn
gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad,
- gpointer obj)
+ gpointer obj, gboolean is_list)
{
GstBaseSinkClass *bclass;
GstBaseSinkPrivate *priv = basesink->priv;
@@ -3085,7 +3096,7 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad,
if (G_UNLIKELY (priv->received_eos))
goto was_eos;
- if (GST_IS_BUFFER_LIST (obj)) {
+ if (is_list) {
sync_buf = gst_buffer_list_get (GST_BUFFER_LIST_CAST (obj), 0);
g_assert (NULL != sync_buf);
} else {
@@ -3138,6 +3149,20 @@ gst_base_sink_chain_unlocked (GstBaseSink * basesink, GstPad * pad,
goto out_of_segment;
}
+ if (!is_list) {
+ if (bclass->prepare) {
+ ret = bclass->prepare (basesink, GST_BUFFER_CAST (obj));
+ if (G_UNLIKELY (ret != GST_FLOW_OK))
+ goto prepare_failed;
+ }
+ } else {
+ if (bclass->prepare_list) {
+ ret = bclass->prepare_list (basesink, GST_BUFFER_LIST_CAST (obj));
+ if (G_UNLIKELY (ret != GST_FLOW_OK))
+ goto prepare_failed;
+ }
+ }
+
again:
late = FALSE;
step_end = FALSE;
@@ -3162,7 +3187,7 @@ again:
if (do_qos)
gst_base_sink_do_render_stats (basesink, TRUE);
- if (!GST_IS_BUFFER_LIST (obj)) {
+ if (!is_list) {
/* For buffer lists do not set last buffer for now. */
gst_base_sink_set_last_buffer (basesink, GST_BUFFER_CAST (obj));
@@ -3219,6 +3244,13 @@ out_of_segment:
gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
return GST_FLOW_OK;
}
+prepare_failed:
+ {
+ GST_DEBUG_OBJECT (basesink, "prepare buffer failed %s",
+ gst_flow_get_name (ret));
+ gst_mini_object_unref (GST_MINI_OBJECT_CAST (obj));
+ return ret;
+ }
sync_failed:
{
GST_DEBUG_OBJECT (basesink, "do_sync returned %s", gst_flow_get_name (ret));
@@ -3262,7 +3294,8 @@ dropped:
/* with STREAM_LOCK
*/
static GstFlowReturn
-gst_base_sink_chain_main (GstBaseSink * basesink, GstPad * pad, gpointer obj)
+gst_base_sink_chain_main (GstBaseSink * basesink, GstPad * pad, gpointer obj,
+ gboolean is_list)
{
GstFlowReturn result;
@@ -3270,7 +3303,7 @@ gst_base_sink_chain_main (GstBaseSink * basesink, GstPad * pad, gpointer obj)
goto wrong_mode;
GST_BASE_SINK_PREROLL_LOCK (basesink);
- result = gst_base_sink_chain_unlocked (basesink, pad, obj);
+ result = gst_base_sink_chain_unlocked (basesink, pad, obj, is_list);
GST_BASE_SINK_PREROLL_UNLOCK (basesink);
done:
@@ -3299,7 +3332,7 @@ gst_base_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
basesink = GST_BASE_SINK (parent);
- return gst_base_sink_chain_main (basesink, pad, buf);
+ return gst_base_sink_chain_main (basesink, pad, buf, FALSE);
}
static GstFlowReturn
@@ -3314,7 +3347,7 @@ gst_base_sink_chain_list (GstPad * pad, GstObject * parent,
bclass = GST_BASE_SINK_GET_CLASS (basesink);
if (G_LIKELY (bclass->render_list)) {
- result = gst_base_sink_chain_main (basesink, pad, list);
+ result = gst_base_sink_chain_main (basesink, pad, list, TRUE);
} else {
guint i, len;
GstBuffer *buffer;
@@ -3327,7 +3360,7 @@ gst_base_sink_chain_list (GstPad * pad, GstObject * parent,
for (i = 0; i < len; i++) {
buffer = gst_buffer_list_get (list, i);
result = gst_base_sink_chain_main (basesink, pad,
- gst_buffer_ref (buffer));
+ gst_buffer_ref (buffer), FALSE);
if (result != GST_FLOW_OK)
break;
}
@@ -3672,7 +3705,7 @@ gst_base_sink_loop (GstPad * pad)
basesink->segment.position = offset;
GST_BASE_SINK_PREROLL_LOCK (basesink);
- result = gst_base_sink_chain_unlocked (basesink, pad, buf);
+ result = gst_base_sink_chain_unlocked (basesink, pad, buf, FALSE);
GST_BASE_SINK_PREROLL_UNLOCK (basesink);
if (G_UNLIKELY (result != GST_FLOW_OK))
goto paused;
diff --git a/libs/gst/base/gstbasesink.h b/libs/gst/base/gstbasesink.h
index f4ab7e6..bf7a41f 100644
--- a/libs/gst/base/gstbasesink.h
+++ b/libs/gst/base/gstbasesink.h
@@ -125,15 +125,19 @@ struct _GstBaseSink {
* unblock any blocked function ASAP
* @unlock_stop: Clear the previous unlock request. Subclasses should clear
* any state they set during unlock(), such as clearing command queues.
+ * @query: perform a #GstQuery on the element. Since: 0.10.36
* @event: Override this to handle events arriving on the sink pad
* @wait_eos: Override this to implement custom logic to wait for the EOS time.
* subclasses should always first chain up to the default implementation.
- * @preroll: Called to present the preroll buffer if desired
+ * @prepare: Called to prepare the buffer for @render and @preroll. This
+ * function is called before synchronisation is performed.
+ * @prepare_list: Called to prepare the buffer list for @render_list. This
+ * function is called before synchronisation is performed.
+ * @preroll: Called to present the preroll buffer if desired.
* @render: Called when a buffer should be presented or output, at the
* correct moment if the #GstBaseSink has been set to sync to the clock.
* @render_list: Same as @render but used whith buffer lists instead of
* buffers. Since: 0.10.24
- * @query: perform a #GstQuery on the element. Since: 0.10.36
*
* Subclasses can override any of the available virtual methods or not, as
* needed. At the minimum, the @render method should be overridden to
@@ -179,6 +183,10 @@ struct _GstBaseSinkClass {
/* wait for eos, subclasses should chain up to parent first */
GstFlowReturn (*wait_eos) (GstBaseSink *sink, GstEvent *event);
+ /* notify subclass of buffer or list before doing sync */
+ GstFlowReturn (*prepare) (GstBaseSink *sink, GstBuffer *buffer);
+ GstFlowReturn (*prepare_list) (GstBaseSink *sink, GstBufferList *buffer_list);
+
/* notify subclass of preroll buffer or real buffer */
GstFlowReturn (*preroll) (GstBaseSink *sink, GstBuffer *buffer);
GstFlowReturn (*render) (GstBaseSink *sink, GstBuffer *buffer);
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index 7b8ec85..c5fad37 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -318,7 +318,7 @@ static gboolean gst_base_src_decide_allocation_default (GstBaseSrc * basesrc,
GstQuery * query);
static gboolean gst_base_src_set_flushing (GstBaseSrc * basesrc,
- gboolean flushing, gboolean live_play, gboolean unlock, gboolean * playing);
+ gboolean flushing, gboolean live_play, gboolean * playing);
static gboolean gst_base_src_start (GstBaseSrc * basesrc);
static gboolean gst_base_src_stop (GstBaseSrc * basesrc);
@@ -1481,15 +1481,8 @@ not_ok:
* when we reach the segment.stop we have to post a segment.done
* instead of EOS when doing a segment seek.
*/
-/* FIXME (0.11), we have the unlock gboolean here because most current
- * implementations (fdsrc, -base/gst/tcp/, ...) unconditionally unlock, even when
- * the streaming thread isn't running, resulting in bogus unlocks later when it
- * starts. This is fixed by adding unlock_stop, but we should still avoid unlocking
- * unnecessarily for backwards compatibility. Ergo, the unlock variable stays
- * until 0.11
- */
static gboolean
-gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event, gboolean unlock)
+gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event)
{
gboolean res = TRUE, tres;
gdouble rate;
@@ -1548,7 +1541,7 @@ gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event, gboolean unlock)
gst_pad_pause_task (src->srcpad);
/* unblock streaming thread. */
- gst_base_src_set_flushing (src, TRUE, FALSE, unlock, &playing);
+ gst_base_src_set_flushing (src, TRUE, FALSE, &playing);
/* grab streaming lock, this should eventually be possible, either
* because the task is paused, our streaming thread stopped
@@ -1563,7 +1556,7 @@ gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event, gboolean unlock)
GST_DEBUG_OBJECT (src, "seek with seqnum %" G_GUINT32_FORMAT, seqnum);
}
- gst_base_src_set_flushing (src, FALSE, playing, unlock, NULL);
+ gst_base_src_set_flushing (src, FALSE, playing, NULL);
/* If we configured the seeksegment above, don't overwrite it now. Otherwise
* copy the current segment info into the temp segment that we can actually
@@ -1767,8 +1760,8 @@ gst_base_src_send_event (GstElement * element, GstEvent * event)
if (started) {
GST_DEBUG_OBJECT (src, "performing seek");
/* when we are running in push mode, we can execute the
- * seek right now, we need to unlock. */
- result = gst_base_src_perform_seek (src, event, TRUE);
+ * seek right now. */
+ result = gst_base_src_perform_seek (src, event);
} else {
GstEvent **event_p;
@@ -1863,15 +1856,15 @@ gst_base_src_default_event (GstBaseSrc * src, GstEvent * event)
if (!gst_base_src_seekable (src))
goto not_seekable;
- result = gst_base_src_perform_seek (src, event, TRUE);
+ result = gst_base_src_perform_seek (src, event);
break;
case GST_EVENT_FLUSH_START:
/* cancel any blocking getrange, is normally called
* when in pull mode. */
- result = gst_base_src_set_flushing (src, TRUE, FALSE, TRUE, NULL);
+ result = gst_base_src_set_flushing (src, TRUE, FALSE, NULL);
break;
case GST_EVENT_FLUSH_STOP:
- result = gst_base_src_set_flushing (src, FALSE, TRUE, TRUE, NULL);
+ result = gst_base_src_set_flushing (src, FALSE, TRUE, NULL);
break;
case GST_EVENT_QOS:
{
@@ -2020,7 +2013,7 @@ gst_base_src_do_sync (GstBaseSrc * basesrc, GstBuffer * buffer)
GstClockTime base_time;
GstClock *clock;
GstClockTime now = GST_CLOCK_TIME_NONE, timestamp;
- gboolean do_timestamp, first, pseudo_live;
+ gboolean do_timestamp, first, pseudo_live, is_live;
bclass = GST_BASE_SRC_GET_CLASS (basesrc);
@@ -2035,8 +2028,9 @@ gst_base_src_do_sync (GstBaseSrc * basesrc, GstBuffer * buffer)
* latency. */
GST_OBJECT_LOCK (basesrc);
+ is_live = basesrc->is_live;
/* if we are asked to sync against the clock we are a pseudo live element */
- pseudo_live = (start != -1 && basesrc->is_live);
+ pseudo_live = (start != -1 && is_live);
/* check for the first buffer */
first = (basesrc->priv->latency == -1);
@@ -2064,17 +2058,20 @@ gst_base_src_do_sync (GstBaseSrc * basesrc, GstBuffer * buffer)
}
} else if (first) {
GST_DEBUG_OBJECT (basesrc, "no latency needed, live %d, sync %d",
- basesrc->is_live, start != -1);
+ is_live, start != -1);
basesrc->priv->latency = 0;
}
/* get clock, if no clock, we can't sync or do timestamps */
if ((clock = GST_ELEMENT_CLOCK (basesrc)) == NULL)
goto no_clock;
+ else
+ gst_object_ref (clock);
base_time = GST_ELEMENT_CAST (basesrc)->base_time;
do_timestamp = basesrc->priv->do_timestamp;
+ GST_OBJECT_UNLOCK (basesrc);
/* first buffer, calculate the timestamp offset */
if (first) {
@@ -2132,7 +2129,7 @@ gst_base_src_do_sync (GstBaseSrc * basesrc, GstBuffer * buffer)
if (!GST_CLOCK_TIME_IS_VALID (start))
goto no_sync;
- if (basesrc->is_live && GST_CLOCK_TIME_IS_VALID (timestamp)) {
+ if (is_live && GST_CLOCK_TIME_IS_VALID (timestamp)) {
/* for pseudo live sources, add our ts_offset to the timestamp */
GST_BUFFER_TIMESTAMP (buffer) += basesrc->priv->ts_offset;
start += basesrc->priv->ts_offset;
@@ -2142,10 +2139,11 @@ gst_base_src_do_sync (GstBaseSrc * basesrc, GstBuffer * buffer)
"waiting for clock, base time %" GST_TIME_FORMAT
", stream_start %" GST_TIME_FORMAT,
GST_TIME_ARGS (base_time), GST_TIME_ARGS (start));
- GST_OBJECT_UNLOCK (basesrc);
result = gst_base_src_wait (basesrc, clock, start + base_time);
+ gst_object_unref (clock);
+
GST_LOG_OBJECT (basesrc, "clock entry done: %d", result);
return result;
@@ -2160,7 +2158,7 @@ no_clock:
no_sync:
{
GST_DEBUG_OBJECT (basesrc, "no sync needed");
- GST_OBJECT_UNLOCK (basesrc);
+ gst_object_unref (clock);
return GST_CLOCK_OK;
}
}
@@ -3130,7 +3128,7 @@ gst_base_src_start_complete (GstBaseSrc * basesrc, GstFlowReturn ret)
/* stop flushing now but for live sources, still block in the LIVE lock when
* we are not yet PLAYING */
- gst_base_src_set_flushing (basesrc, FALSE, FALSE, FALSE, NULL);
+ gst_base_src_set_flushing (basesrc, FALSE, FALSE, NULL);
gst_pad_mark_reconfigure (GST_BASE_SRC_PAD (basesrc));
@@ -3138,6 +3136,9 @@ gst_base_src_start_complete (GstBaseSrc * basesrc, GstFlowReturn ret)
mode = GST_PAD_MODE (basesrc->srcpad);
GST_OBJECT_UNLOCK (basesrc->srcpad);
+ /* take the stream lock here, we only want to let the task run when we have
+ * set the STARTED flag */
+ GST_PAD_STREAM_LOCK (basesrc->srcpad);
if (mode == GST_PAD_MODE_PUSH) {
/* do initial seek, which will start the task */
GST_OBJECT_LOCK (basesrc);
@@ -3145,10 +3146,8 @@ gst_base_src_start_complete (GstBaseSrc * basesrc, GstFlowReturn ret)
basesrc->pending_seek = NULL;
GST_OBJECT_UNLOCK (basesrc);
- /* no need to unlock anything, the task is certainly
- * not running here. The perform seek code will start the task when
- * finished. */
- if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event, FALSE)))
+ /* The perform seek code will start the task when finished. */
+ if (G_UNLIKELY (!gst_base_src_perform_seek (basesrc, event)))
goto seek_failed;
if (event)
@@ -3166,12 +3165,15 @@ gst_base_src_start_complete (GstBaseSrc * basesrc, GstFlowReturn ret)
GST_LIVE_SIGNAL (basesrc);
GST_LIVE_UNLOCK (basesrc);
+ GST_PAD_STREAM_UNLOCK (basesrc->srcpad);
+
return;
seek_failed:
{
+ GST_PAD_STREAM_UNLOCK (basesrc->srcpad);
GST_ERROR_OBJECT (basesrc, "Failed to perform initial seek");
- gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+ gst_base_src_set_flushing (basesrc, TRUE, FALSE, NULL);
if (event)
gst_event_unref (event);
ret = GST_FLOW_ERROR;
@@ -3179,7 +3181,8 @@ seek_failed:
}
no_get_range:
{
- gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+ GST_PAD_STREAM_UNLOCK (basesrc->srcpad);
+ gst_base_src_set_flushing (basesrc, TRUE, FALSE, NULL);
GST_ERROR_OBJECT (basesrc, "Cannot operate in pull mode, stopping");
ret = GST_FLOW_ERROR;
goto error;
@@ -3241,7 +3244,7 @@ gst_base_src_stop (GstBaseSrc * basesrc)
GST_DEBUG_OBJECT (basesrc, "stopping source");
/* flush all */
- gst_base_src_set_flushing (basesrc, TRUE, FALSE, TRUE, NULL);
+ gst_base_src_set_flushing (basesrc, TRUE, FALSE, NULL);
/* stop the task */
gst_pad_stop_task (basesrc->srcpad);
@@ -3275,13 +3278,13 @@ was_stopped:
*/
static gboolean
gst_base_src_set_flushing (GstBaseSrc * basesrc,
- gboolean flushing, gboolean live_play, gboolean unlock, gboolean * playing)
+ gboolean flushing, gboolean live_play, gboolean * playing)
{
GstBaseSrcClass *bclass;
bclass = GST_BASE_SRC_GET_CLASS (basesrc);
- if (flushing && unlock) {
+ if (flushing) {
gst_base_src_activate_pool (basesrc, FALSE);
/* unlock any subclasses, we need to do this before grabbing the
* LIVE_LOCK since we hold this lock before going into ::create. We pass an
@@ -3316,18 +3319,16 @@ gst_base_src_set_flushing (GstBaseSrc * basesrc,
gst_base_src_activate_pool (basesrc, TRUE);
- /* When unlocking drop all delayed events */
- if (unlock) {
- GST_OBJECT_LOCK (basesrc);
- if (basesrc->priv->pending_events) {
- g_list_foreach (basesrc->priv->pending_events, (GFunc) gst_event_unref,
- NULL);
- g_list_free (basesrc->priv->pending_events);
- basesrc->priv->pending_events = NULL;
- g_atomic_int_set (&basesrc->priv->have_events, FALSE);
- }
- GST_OBJECT_UNLOCK (basesrc);
+ /* Drop all delayed events */
+ GST_OBJECT_LOCK (basesrc);
+ if (basesrc->priv->pending_events) {
+ g_list_foreach (basesrc->priv->pending_events, (GFunc) gst_event_unref,
+ NULL);
+ g_list_free (basesrc->priv->pending_events);
+ basesrc->priv->pending_events = NULL;
+ g_atomic_int_set (&basesrc->priv->have_events, FALSE);
}
+ GST_OBJECT_UNLOCK (basesrc);
}
GST_LIVE_SIGNAL (basesrc);
GST_LIVE_UNLOCK (basesrc);
diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c
index cdb267a..23412b7 100644
--- a/libs/gst/base/gsttypefindhelper.c
+++ b/libs/gst/base/gsttypefindhelper.c
@@ -43,7 +43,8 @@
/* ********************** typefinding in pull mode ************************ */
static void
-helper_find_suggest (gpointer data, guint probability, GstCaps * caps);
+helper_find_suggest (gpointer data, GstTypeFindProbability probability,
+ GstCaps * caps);
typedef struct
{
diff --git a/libs/gst/check/Makefile.in b/libs/gst/check/Makefile.in
index 617f5a6..5c57700 100644
--- a/libs/gst/check/Makefile.in
+++ b/libs/gst/check/Makefile.in
@@ -53,6 +53,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = libs/gst/check
DIST_COMMON = $(libgstcheck_@GST_API_VERSION@include_HEADERS) \
@@ -331,6 +332,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -483,7 +488,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/gst/check/gstcheck.c b/libs/gst/check/gstcheck.c
index 745b68c..98934f9 100644
--- a/libs/gst/check/gstcheck.c
+++ b/libs/gst/check/gstcheck.c
@@ -130,7 +130,9 @@ gst_check_init (int *argc, char **argv[])
gst_check_log_critical_func, NULL);
g_log_set_handler ("GLib-GObject", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
gst_check_log_critical_func, NULL);
- g_log_set_handler ("Gst-Phonon", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
+ g_log_set_handler ("GLib-GIO", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
+ gst_check_log_critical_func, NULL);
+ g_log_set_handler ("GLib", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING,
gst_check_log_critical_func, NULL);
print_plugins ();
diff --git a/libs/gst/check/libcheck/Makefile.in b/libs/gst/check/libcheck/Makefile.in
index 085986e..a02142b 100644
--- a/libs/gst/check/libcheck/Makefile.in
+++ b/libs/gst/check/libcheck/Makefile.in
@@ -52,6 +52,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = libs/gst/check/libcheck
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(srcdir)/check.h.in
@@ -264,6 +265,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -416,7 +421,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/gst/controller/Makefile.in b/libs/gst/controller/Makefile.in
index aa3cbda..897da92 100644
--- a/libs/gst/controller/Makefile.in
+++ b/libs/gst/controller/Makefile.in
@@ -53,6 +53,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = libs/gst/controller
DIST_COMMON = $(libgstcontroller_@GST_API_VERSION@_include_HEADERS) \
@@ -296,6 +297,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -448,7 +453,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/gst/helpers/Makefile.in b/libs/gst/helpers/Makefile.in
index c12b276..7a9fc3f 100644
--- a/libs/gst/helpers/Makefile.in
+++ b/libs/gst/helpers/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
helpers_PROGRAMS = gst-plugin-scanner$(EXEEXT)
subdir = libs/gst/helpers
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -255,6 +256,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -407,7 +412,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/libs/gst/net/Makefile.in b/libs/gst/net/Makefile.in
index c4b49a1..770630b 100644
--- a/libs/gst/net/Makefile.in
+++ b/libs/gst/net/Makefile.in
@@ -53,6 +53,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
subdir = libs/gst/net
DIST_COMMON = $(libgstnet_@GST_API_VERSION@_include_HEADERS) \
@@ -294,6 +295,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -446,7 +451,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 138013b..309850d 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = m4
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index f97eaf1..dd75868 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = pkgconfig
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gstreamer-base-uninstalled.pc.in \
@@ -261,6 +262,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -413,7 +418,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/plugins/Makefile.in b/plugins/Makefile.in
index 4d019da..099c0e4 100644
--- a/plugins/Makefile.in
+++ b/plugins/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = plugins
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -256,6 +257,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -408,7 +413,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/plugins/elements/Makefile.in b/plugins/elements/Makefile.in
index 15c6d3d..56a2e0c 100644
--- a/plugins/elements/Makefile.in
+++ b/plugins/elements/Makefile.in
@@ -52,6 +52,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = plugins/elements
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
@@ -301,6 +302,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -453,7 +458,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c
index c9b2c45..89eb17b 100644
--- a/plugins/elements/gstfakesrc.c
+++ b/plugins/elements/gstfakesrc.c
@@ -357,7 +357,6 @@ static void
gst_fake_src_init (GstFakeSrc * fakesrc)
{
fakesrc->output = FAKE_SRC_FIRST_LAST_LOOP;
- fakesrc->buffer_count = 0;
fakesrc->silent = DEFAULT_SILENT;
fakesrc->signal_handoffs = DEFAULT_SIGNAL_HANDOFFS;
fakesrc->dump = DEFAULT_DUMP;
@@ -781,7 +780,7 @@ gst_fake_src_create (GstBaseSrc * basesrc, guint64 offset, guint length,
src = GST_FAKE_SRC (basesrc);
buf = gst_fake_src_create_buffer (src, &size);
- GST_BUFFER_OFFSET (buf) = src->buffer_count++;
+ GST_BUFFER_OFFSET (buf) = offset;
if (src->datarate > 0) {
time = (src->bytes_sent * GST_SECOND) / src->datarate;
@@ -885,7 +884,6 @@ gst_fake_src_start (GstBaseSrc * basesrc)
src = GST_FAKE_SRC (basesrc);
- src->buffer_count = 0;
src->pattern_byte = 0x00;
src->bytes_sent = 0;
diff --git a/plugins/elements/gstfakesrc.h b/plugins/elements/gstfakesrc.h
index 00675c2..965fcb0 100644
--- a/plugins/elements/gstfakesrc.h
+++ b/plugins/elements/gstfakesrc.h
@@ -140,9 +140,6 @@ struct _GstFakeSrc {
gboolean sync;
GstClock *clock;
- gint num_buffers;
- gint rt_num_buffers; /* we are going to change this at runtime */
- gint64 buffer_count;
gboolean silent;
gboolean signal_handoffs;
gboolean dump;
diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c
index 8536f4a..a0672d1 100644
--- a/plugins/elements/gstfilesrc.c
+++ b/plugins/elements/gstfilesrc.c
@@ -461,7 +461,7 @@ could_not_stat:
}
}
-/* open the file and mmap it, necessary to go to READY state */
+/* open the file, necessary to go to READY state */
static gboolean
gst_file_src_start (GstBaseSrc * basesrc)
{
@@ -500,8 +500,8 @@ gst_file_src_start (GstBaseSrc * basesrc)
off_t res = lseek (src->fd, 0, SEEK_END);
if (res < 0) {
- GST_LOG_OBJECT (src, "disabling seeking, not in mmap mode and lseek "
- "failed: %s", g_strerror (errno));
+ GST_LOG_OBJECT (src, "disabling seeking, lseek failed: %s",
+ g_strerror (errno));
src->seekable = FALSE;
} else {
src->seekable = TRUE;
diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c
index 9a9f455..a15a9e6 100644
--- a/plugins/elements/gstfunnel.c
+++ b/plugins/elements/gstfunnel.c
@@ -67,6 +67,7 @@ struct _GstFunnelPad
GstPad parent;
GstSegment segment;
+ gboolean got_eos;
};
struct _GstFunnelPadClass
@@ -85,6 +86,7 @@ static void
gst_funnel_pad_reset (GstFunnelPad * pad)
{
gst_segment_init (&pad->segment, GST_FORMAT_UNDEFINED);
+ pad->got_eos = FALSE;
}
static void
@@ -203,16 +205,48 @@ gst_funnel_request_new_pad (GstElement * element, GstPadTemplate * templ,
return sinkpad;
}
+static gboolean
+gst_funnel_all_sinkpads_eos_unlocked (GstFunnel * funnel)
+{
+ GstElement *element = GST_ELEMENT_CAST (funnel);
+ GList *item;
+
+ if (element->numsinkpads == 0)
+ return FALSE;
+
+ for (item = element->sinkpads; item != NULL; item = g_list_next (item)) {
+ GstFunnelPad *sinkpad = item->data;
+
+ if (!sinkpad->got_eos)
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
static void
gst_funnel_release_pad (GstElement * element, GstPad * pad)
{
GstFunnel *funnel = GST_FUNNEL (element);
+ GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad);
+ gboolean send_eos = FALSE;
GST_DEBUG_OBJECT (funnel, "releasing pad");
gst_pad_set_active (pad, FALSE);
gst_element_remove_pad (GST_ELEMENT_CAST (funnel), pad);
+
+ GST_OBJECT_LOCK (funnel);
+ if (!fpad->got_eos && gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
+ GST_DEBUG_OBJECT (funnel, "Pad removed. All others are EOS. Sending EOS");
+ send_eos = TRUE;
+ }
+ GST_OBJECT_UNLOCK (funnel);
+
+ if (send_eos)
+ if (!gst_pad_push_event (funnel->srcpad, gst_event_new_eos ()))
+ GST_WARNING_OBJECT (funnel, "Failure pushing EOS");
}
static GstFlowReturn
@@ -230,6 +264,15 @@ gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
GST_DEBUG_OBJECT (funnel, "received buffer %p", buffer);
GST_OBJECT_LOCK (funnel);
+
+ if (fpad->got_eos) {
+ GST_OBJECT_UNLOCK (funnel);
+ GST_WARNING_OBJECT (funnel, "Got buffer on pad that received EOS");
+ res = GST_FLOW_EOS;
+ gst_buffer_unref (buffer);
+ goto out;
+ }
+
if (fpad->segment.format == GST_FORMAT_UNDEFINED) {
GST_WARNING_OBJECT (funnel, "Got buffer without segment,"
" setting segment [0,inf[");
@@ -267,6 +310,7 @@ gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
if (GST_BUFFER_CAPS (buffer) && GST_BUFFER_CAPS (buffer) != padcaps) {
if (!gst_pad_set_caps (funnel->srcpad, GST_BUFFER_CAPS (buffer))) {
res = GST_FLOW_NOT_NEGOTIATED;
+ gst_buffer_unref (buffer);
goto out;
}
}
@@ -276,9 +320,7 @@ gst_funnel_sink_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
GST_LOG_OBJECT (funnel, "handled buffer %s", gst_flow_get_name (res));
-#if 0
out:
-#endif
return res;
}
@@ -306,6 +348,22 @@ gst_funnel_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
GST_OBJECT_LOCK (funnel);
gst_segment_init (&fpad->segment, GST_FORMAT_UNDEFINED);
funnel->has_segment = FALSE;
+ fpad->got_eos = FALSE;
+ GST_OBJECT_UNLOCK (funnel);
+ }
+ break;
+ case GST_EVENT_EOS:
+ {
+ GST_OBJECT_LOCK (funnel);
+ fpad->got_eos = TRUE;
+
+ if (!gst_funnel_all_sinkpads_eos_unlocked (funnel)) {
+ GST_DEBUG_OBJECT (funnel,
+ "Got EOS, but not from all sinkpads. Skipping");
+ forward = FALSE;
+ } else {
+ GST_DEBUG_OBJECT (funnel, "Got EOS from all sinkpads. Forwarding");
+ }
GST_OBJECT_UNLOCK (funnel);
break;
}
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index eb6fba5..9133a8c 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -61,9 +61,47 @@
#include "gst/glib-compat-private.h"
+#define DEBUG_CACHED_BUFFERS 0
+
GST_DEBUG_CATEGORY_STATIC (input_selector_debug);
#define GST_CAT_DEFAULT input_selector_debug
+#define GST_TYPE_INPUT_SELECTOR_SYNC_MODE (gst_input_selector_sync_mode_get_type())
+static GType
+gst_input_selector_sync_mode_get_type (void)
+{
+ static GType type = 0;
+ static const GEnumValue data[] = {
+ {GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT,
+ "Sync using the current active segment",
+ "active-segment"},
+ {GST_INPUT_SELECTOR_SYNC_MODE_CLOCK, "Sync using the clock", "clock"},
+ {0, NULL, NULL},
+ };
+
+ if (!type) {
+ type = g_enum_register_static ("GstInputSelectorSyncMode", data);
+ }
+ return type;
+}
+
+#if GLIB_CHECK_VERSION(2, 26, 0)
+#define NOTIFY_MUTEX_LOCK()
+#define NOTIFY_MUTEX_UNLOCK()
+#else
+static GStaticRecMutex notify_mutex = G_STATIC_REC_MUTEX_INIT;
+#define NOTIFY_MUTEX_LOCK() g_static_rec_mutex_lock (&notify_mutex)
+#define NOTIFY_MUTEX_UNLOCK() g_static_rec_mutex_unlock (&notify_mutex)
+#endif
+
+#define GST_INPUT_SELECTOR_GET_LOCK(sel) (&((GstInputSelector*)(sel))->lock)
+#define GST_INPUT_SELECTOR_GET_COND(sel) (&((GstInputSelector*)(sel))->cond)
+#define GST_INPUT_SELECTOR_LOCK(sel) (g_mutex_lock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_UNLOCK(sel) (g_mutex_unlock (GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_WAIT(sel) (g_cond_wait (GST_INPUT_SELECTOR_GET_COND(sel), \
+ GST_INPUT_SELECTOR_GET_LOCK(sel)))
+#define GST_INPUT_SELECTOR_BROADCAST(sel) (g_cond_broadcast (GST_INPUT_SELECTOR_GET_COND(sel)))
+
static GstStaticPadTemplate gst_input_selector_sink_factory =
GST_STATIC_PAD_TEMPLATE ("sink_%u",
GST_PAD_SINK,
@@ -81,11 +119,14 @@ enum
PROP_0,
PROP_N_PADS,
PROP_ACTIVE_PAD,
- PROP_SYNC_STREAMS
+ PROP_SYNC_STREAMS,
+ PROP_SYNC_MODE,
+ PROP_CACHE_BUFFERS
};
#define DEFAULT_SYNC_STREAMS TRUE
-
+#define DEFAULT_SYNC_MODE GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT
+#define DEFAULT_CACHE_BUFFERS FALSE
#define DEFAULT_PAD_ALWAYS_OK TRUE
enum
@@ -106,6 +147,8 @@ enum
};
static guint gst_input_selector_signals[LAST_SIGNAL] = { 0 };
+static void gst_input_selector_active_pad_changed (GstInputSelector * sel,
+ GParamSpec * pspec, gpointer user_data);
static inline gboolean gst_input_selector_is_active_sinkpad (GstInputSelector *
sel, GstPad * pad);
static GstPad *gst_input_selector_activate_sinkpad (GstInputSelector * sel,
@@ -128,6 +171,7 @@ static GstPad *gst_input_selector_get_linked_pad (GstInputSelector * sel,
typedef struct _GstSelectorPad GstSelectorPad;
typedef struct _GstSelectorPadClass GstSelectorPadClass;
+typedef struct _GstSelectorPadCachedBuffer GstSelectorPadCachedBuffer;
struct _GstSelectorPad
{
@@ -147,6 +191,15 @@ struct _GstSelectorPad
guint32 segment_seqnum; /* sequence number of the current segment */
gboolean events_pending; /* TRUE if sticky events need to be updated */
+
+ gboolean sending_cached_buffers;
+ GQueue *cached_buffers;
+};
+
+struct _GstSelectorPadCachedBuffer
+{
+ GstBuffer *buffer;
+ GstSegment segment;
};
struct _GstSelectorPadClass
@@ -171,6 +224,9 @@ static GstIterator *gst_selector_pad_iterate_linked_pads (GstPad * pad,
GstObject * parent);
static GstFlowReturn gst_selector_pad_chain (GstPad * pad, GstObject * parent,
GstBuffer * buf);
+static void gst_selector_pad_cache_buffer (GstSelectorPad * selpad,
+ GstBuffer * buffer);
+static void gst_selector_pad_free_cached_buffers (GstSelectorPad * selpad);
G_DEFINE_TYPE (GstSelectorPad, gst_selector_pad, GST_TYPE_PAD);
@@ -220,7 +276,8 @@ gst_selector_pad_finalize (GObject * object)
pad = GST_SELECTOR_PAD_CAST (object);
if (pad->tags)
- gst_tag_list_free (pad->tags);
+ gst_tag_list_unref (pad->tags);
+ gst_selector_pad_free_cached_buffers (pad);
G_OBJECT_CLASS (gst_selector_pad_parent_class)->finalize (object);
}
@@ -293,12 +350,13 @@ gst_selector_pad_get_running_time (GstSelectorPad * pad)
}
GST_OBJECT_UNLOCK (pad);
- GST_DEBUG_OBJECT (pad, "running time: %" GST_TIME_FORMAT,
- GST_TIME_ARGS (ret));
+ GST_DEBUG_OBJECT (pad, "running time: %" GST_TIME_FORMAT
+ " segment: %" GST_SEGMENT_FORMAT, GST_TIME_ARGS (ret), &pad->segment);
return ret;
}
+/* must be called with the SELECTOR_LOCK */
static void
gst_selector_pad_reset (GstSelectorPad * pad)
{
@@ -312,9 +370,61 @@ gst_selector_pad_reset (GstSelectorPad * pad)
pad->flushing = FALSE;
pad->position = GST_CLOCK_TIME_NONE;
gst_segment_init (&pad->segment, GST_FORMAT_UNDEFINED);
+ pad->sending_cached_buffers = FALSE;
+ gst_selector_pad_free_cached_buffers (pad);
GST_OBJECT_UNLOCK (pad);
}
+static GstSelectorPadCachedBuffer *
+gst_selector_pad_new_cached_buffer (GstSelectorPad * selpad, GstBuffer * buffer)
+{
+ GstSelectorPadCachedBuffer *cached_buffer =
+ g_slice_new (GstSelectorPadCachedBuffer);
+ cached_buffer->buffer = buffer;
+ cached_buffer->segment = selpad->segment;
+ return cached_buffer;
+}
+
+static void
+gst_selector_pad_free_cached_buffer (GstSelectorPadCachedBuffer * cached_buffer)
+{
+ gst_buffer_unref (cached_buffer->buffer);
+ g_slice_free (GstSelectorPadCachedBuffer, cached_buffer);
+}
+
+/* must be called with the SELECTOR_LOCK */
+static void
+gst_selector_pad_cache_buffer (GstSelectorPad * selpad, GstBuffer * buffer)
+{
+ if (selpad->segment.format != GST_FORMAT_TIME) {
+ GST_DEBUG_OBJECT (selpad, "Buffer %p with segment not in time format, "
+ "not caching", buffer);
+ return;
+ }
+
+ GST_DEBUG_OBJECT (selpad, "Caching buffer %p", buffer);
+ if (!selpad->cached_buffers)
+ selpad->cached_buffers = g_queue_new ();
+ g_queue_push_tail (selpad->cached_buffers,
+ gst_selector_pad_new_cached_buffer (selpad, buffer));
+}
+
+/* must be called with the SELECTOR_LOCK */
+static void
+gst_selector_pad_free_cached_buffers (GstSelectorPad * selpad)
+{
+ GstSelectorPadCachedBuffer *cached_buffer;
+
+ if (!selpad->cached_buffers)
+ return;
+
+ GST_DEBUG_OBJECT (selpad, "Freeing cached buffers");
+ while ((cached_buffer = g_queue_pop_head (selpad->cached_buffers)))
+ gst_selector_pad_free_cached_buffer (cached_buffer);
+ g_queue_free (selpad->cached_buffers);
+ selpad->cached_buffers = NULL;
+}
+
/* strictly get the linked pad from the sinkpad. If the pad is active we return
* the srcpad else we return NULL */
static GstIterator *
@@ -351,36 +461,34 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
sel = GST_INPUT_SELECTOR (parent);
selpad = GST_SELECTOR_PAD_CAST (pad);
+ GST_DEBUG_OBJECT (selpad, "received event %" GST_PTR_FORMAT, event);
GST_INPUT_SELECTOR_LOCK (sel);
prev_active_sinkpad = sel->active_sinkpad;
active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
-
- /* only forward if we are dealing with the active sinkpad */
- forward = (pad == active_sinkpad);
GST_INPUT_SELECTOR_UNLOCK (sel);
if (prev_active_sinkpad != active_sinkpad && pad == active_sinkpad) {
g_object_notify (G_OBJECT (sel), "active-pad");
}
+ GST_INPUT_SELECTOR_LOCK (sel);
+ active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+
+ /* only forward if we are dealing with the active sinkpad */
+ forward = (pad == active_sinkpad);
+
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_FLUSH_START:
/* Unblock the pad if it's waiting */
- GST_INPUT_SELECTOR_LOCK (sel);
selpad->flushing = TRUE;
GST_INPUT_SELECTOR_BROADCAST (sel);
- GST_INPUT_SELECTOR_UNLOCK (sel);
break;
case GST_EVENT_FLUSH_STOP:
- GST_INPUT_SELECTOR_LOCK (sel);
gst_selector_pad_reset (selpad);
- GST_INPUT_SELECTOR_UNLOCK (sel);
break;
case GST_EVENT_SEGMENT:
{
- GST_INPUT_SELECTOR_LOCK (sel);
- GST_OBJECT_LOCK (selpad);
gst_event_copy_segment (event, &selpad->segment);
selpad->segment_seqnum = gst_event_get_seqnum (event);
@@ -400,9 +508,6 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
}
GST_DEBUG_OBJECT (pad, "configured SEGMENT %" GST_SEGMENT_FORMAT,
&selpad->segment);
-
- GST_OBJECT_UNLOCK (selpad);
- GST_INPUT_SELECTOR_UNLOCK (sel);
break;
}
case GST_EVENT_TAG:
@@ -411,15 +516,13 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
gst_event_parse_tag (event, &tags);
- GST_OBJECT_LOCK (selpad);
oldtags = selpad->tags;
newtags = gst_tag_list_merge (oldtags, tags, GST_TAG_MERGE_REPLACE);
selpad->tags = newtags;
if (oldtags)
- gst_tag_list_free (oldtags);
+ gst_tag_list_unref (oldtags);
GST_DEBUG_OBJECT (pad, "received tags %" GST_PTR_FORMAT, newtags);
- GST_OBJECT_UNLOCK (selpad);
g_object_notify (G_OBJECT (selpad), "tags");
break;
@@ -430,7 +533,7 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
if (forward) {
selpad->eos_sent = TRUE;
} else {
- GstSelectorPad *tmp;
+ GstSelectorPad *active_selpad;
/* If the active sinkpad is in EOS state but EOS
* was not sent downstream this means that the pad
@@ -438,18 +541,16 @@ gst_selector_pad_event (GstPad * pad, GstObject * parent, GstEvent * event)
* the previously active pad got EOS after it was
* active
*/
- GST_INPUT_SELECTOR_LOCK (sel);
- active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
- tmp = GST_SELECTOR_PAD (active_sinkpad);
- forward = (tmp->eos && !tmp->eos_sent);
- tmp->eos_sent = TRUE;
- GST_INPUT_SELECTOR_UNLOCK (sel);
+ active_selpad = GST_SELECTOR_PAD (active_sinkpad);
+ forward = (active_selpad->eos && !active_selpad->eos_sent);
+ active_selpad->eos_sent = TRUE;
}
GST_DEBUG_OBJECT (pad, "received EOS");
break;
default:
break;
}
+ GST_INPUT_SELECTOR_UNLOCK (sel);
if (forward) {
GST_DEBUG_OBJECT (pad, "forwarding event");
res = gst_pad_push_event (sel->srcpad, event);
@@ -495,103 +596,121 @@ gst_input_selector_wait (GstInputSelector * self, GstSelectorPad * pad)
return self->flushing;
}
-/* must be called with the SELECTOR_LOCK, will block until the running time
+/* must be called without the SELECTOR_LOCK, will wait until the running time
* of the active pad is after this pad or return TRUE when flushing */
static gboolean
gst_input_selector_wait_running_time (GstInputSelector * sel,
- GstSelectorPad * pad, GstBuffer * buf)
+ GstSelectorPad * selpad, GstBuffer * buf)
{
- GstPad *active_sinkpad;
- GstSelectorPad *active_selpad;
- GstSegment *seg, *active_seg;
- GstClockTime running_time, active_running_time = GST_CLOCK_TIME_NONE;
-
- seg = &pad->segment;
-
- active_sinkpad =
- gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (pad));
- active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
- active_seg = &active_selpad->segment;
-
- /* We can only sync if the segments are in time format or
- * if the active pad had no newsegment event yet */
- if (seg->format != GST_FORMAT_TIME ||
- (active_seg->format != GST_FORMAT_TIME
- && active_seg->format != GST_FORMAT_UNDEFINED))
- return FALSE;
+ GstSegment *seg;
- /* If we have no valid timestamp we can't sync this buffer */
- if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf))
- return FALSE;
+ GST_DEBUG_OBJECT (selpad, "entering wait for buffer %p", buf);
- running_time = GST_BUFFER_TIMESTAMP (buf);
- /* If possible try to get the running time at the end of the buffer */
- if (GST_BUFFER_DURATION_IS_VALID (buf))
- running_time += GST_BUFFER_DURATION (buf);
- if (running_time > seg->stop)
- running_time = seg->stop;
- running_time =
- gst_segment_to_running_time (seg, GST_FORMAT_TIME, running_time);
- /* If this is outside the segment don't sync */
- if (running_time == -1)
+ /* If we have no valid timestamp we can't sync this buffer */
+ if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+ GST_DEBUG_OBJECT (selpad, "leaving wait for buffer with "
+ "invalid timestamp");
return FALSE;
+ }
- /* Get active pad's running time, if no configured segment yet keep at -1 */
- if (active_seg->format == GST_FORMAT_TIME)
- active_running_time =
- gst_segment_to_running_time (active_seg, GST_FORMAT_TIME,
- active_selpad->position);
+ seg = &selpad->segment;
/* Wait until
* a) this is the active pad
* b) the pad or the selector is flushing
* c) the selector is not blocked
- * d) the active pad has no running time or the active
- * pad's running time is before this running time
- * e) the active pad has a non-time segment
- * f) the active pad changed and has not pushed anything
+ * d) the buffer running time is before the current running time
+ * (either active-seg or clock, depending on sync-mode)
*/
- while (pad != active_selpad && !sel->flushing && !pad->flushing
- && active_selpad->pushed && (sel->blocked || active_running_time == -1
- || running_time >= active_running_time)) {
- if (!sel->blocked)
- GST_DEBUG_OBJECT (pad,
- "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
- GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
- GST_TIME_ARGS (active_running_time));
-
- GST_INPUT_SELECTOR_WAIT (sel);
-
- /* Get new active pad, it might have changed */
+
+ GST_INPUT_SELECTOR_LOCK (sel);
+ while (TRUE) {
+ GstPad *active_sinkpad;
+ GstSelectorPad *active_selpad;
+ GstClock *clock;
+ gint64 cur_running_time;
+ GstClockTime running_time;
+
active_sinkpad =
- gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (pad));
+ gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (selpad));
active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
- active_seg = &active_selpad->segment;
- /* If the active segment is configured but not to time format
- * we can't do any syncing at all */
- if (active_seg->format != GST_FORMAT_TIME
- && active_seg->format != GST_FORMAT_UNDEFINED)
- break;
+ if (seg->format != GST_FORMAT_TIME) {
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ return FALSE;
+ }
- /* Get the new active pad running time */
- if (active_seg->format == GST_FORMAT_TIME)
- active_running_time =
- gst_segment_to_running_time (active_seg, GST_FORMAT_TIME,
- active_selpad->position);
- else
- active_running_time = -1;
+ running_time = GST_BUFFER_TIMESTAMP (buf);
+ /* If possible try to get the running time at the end of the buffer */
+ if (GST_BUFFER_DURATION_IS_VALID (buf))
+ running_time += GST_BUFFER_DURATION (buf);
+ /* Only use the segment to convert to running time if the segment is
+ * in TIME format, otherwise do our best to try to sync */
+ if (GST_CLOCK_TIME_IS_VALID (seg->stop)) {
+ if (running_time > seg->stop) {
+ running_time = seg->stop;
+ }
+ }
+ running_time =
+ gst_segment_to_running_time (seg, GST_FORMAT_TIME, running_time);
+ /* If this is outside the segment don't sync */
+ if (running_time == -1) {
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ return FALSE;
+ }
+
+ cur_running_time = GST_CLOCK_TIME_NONE;
+ if (sel->sync_mode == GST_INPUT_SELECTOR_SYNC_MODE_CLOCK) {
+ clock = gst_element_get_clock (GST_ELEMENT_CAST (sel));
+ if (clock) {
+ GstClockTime base_time;
+
+ cur_running_time = gst_clock_get_time (clock);
+ base_time = gst_element_get_base_time (GST_ELEMENT_CAST (sel));
+ if (base_time <= cur_running_time)
+ cur_running_time -= base_time;
+ else
+ cur_running_time = 0;
+ }
+ } else {
+ GstSegment *active_seg;
+
+ active_seg = &active_selpad->segment;
+
+ /* If the active segment is configured but not to time format
+ * we can't do any syncing at all */
+ if (active_seg->format != GST_FORMAT_TIME
+ && active_seg->format != GST_FORMAT_UNDEFINED) {
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ return FALSE;
+ }
+
+ /* Get active pad's running time, if no configured segment yet keep at -1 */
+ if (active_seg->format == GST_FORMAT_TIME)
+ cur_running_time = gst_segment_to_running_time (active_seg,
+ GST_FORMAT_TIME, active_seg->position);
+ }
- if (!sel->blocked)
- GST_DEBUG_OBJECT (pad,
- "Waited for active streams to advance. %" GST_TIME_FORMAT " >= %"
- GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
- GST_TIME_ARGS (active_running_time));
+ if (selpad != active_selpad && !sel->flushing && !selpad->flushing &&
+ (sel->cache_buffers || active_selpad->pushed) &&
+ (sel->blocked || cur_running_time == -1
+ || running_time >= cur_running_time)) {
+ if (!sel->blocked) {
+ GST_DEBUG_OBJECT (selpad,
+ "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
+ GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
+ GST_TIME_ARGS (cur_running_time));
+ }
+ GST_INPUT_SELECTOR_WAIT (sel);
+ } else {
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ break;
+ }
}
/* Return TRUE if the selector or the pad is flushing */
- return (sel->flushing || pad->flushing);
+ return (sel->flushing || selpad->flushing);
}
static gboolean
@@ -614,6 +733,164 @@ forward_sticky_events (GstPad * sinkpad, GstEvent ** event, gpointer user_data)
return TRUE;
}
+#if DEBUG_CACHED_BUFFERS
+static void
+gst_input_selector_debug_cached_buffers (GstInputSelector * sel)
+{
+ GList *walk;
+
+ for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
+ GstSelectorPad *selpad;
+ GString *timestamps;
+ gchar *str;
+ int i;
+
+ selpad = GST_SELECTOR_PAD_CAST (walk->data);
+ if (!selpad->cached_buffers) {
+ GST_DEBUG_OBJECT (selpad, "Cached buffers timestamps: <none>");
+ continue;
+ }
+
+ timestamps = g_string_new ("Cached buffers timestamps:");
+ for (i = 0; i < selpad->cached_buffers->length; ++i) {
+ GstSelectorPadCachedBuffer *cached_buffer;
+
+ cached_buffer = g_queue_peek_nth (selpad->cached_buffers, i);
+ g_string_append_printf (timestamps, " %" GST_TIME_FORMAT,
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (cached_buffer->buffer)));
+ }
+ str = g_string_free (timestamps, FALSE);
+ GST_DEBUG_OBJECT (selpad, str);
+ g_free (str);
+ }
+}
+#endif
+
+/* must be called with the SELECTOR_LOCK */
+static void
+gst_input_selector_cleanup_old_cached_buffers (GstInputSelector * sel,
+ GstPad * pad)
+{
+ GstClock *clock;
+ gint64 cur_running_time;
+ GList *walk;
+
+ cur_running_time = GST_CLOCK_TIME_NONE;
+ if (sel->sync_mode == GST_INPUT_SELECTOR_SYNC_MODE_CLOCK) {
+ clock = gst_element_get_clock (GST_ELEMENT_CAST (sel));
+ if (clock) {
+ GstClockTime base_time;
+
+ cur_running_time = gst_clock_get_time (clock);
+ base_time = gst_element_get_base_time (GST_ELEMENT_CAST (sel));
+ if (base_time <= cur_running_time)
+ cur_running_time -= base_time;
+ else
+ cur_running_time = 0;
+ }
+ } else {
+ GstPad *active_sinkpad;
+ GstSelectorPad *active_selpad;
+ GstSegment *active_seg;
+
+ active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+ active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
+ active_seg = &active_selpad->segment;
+
+ /* Get active pad's running time, if no configured segment yet keep at -1 */
+ if (active_seg->format == GST_FORMAT_TIME)
+ cur_running_time = gst_segment_to_running_time (active_seg,
+ GST_FORMAT_TIME, active_seg->position);
+ }
+
+ if (!GST_CLOCK_TIME_IS_VALID (cur_running_time))
+ return;
+
+ GST_DEBUG_OBJECT (sel, "Cleaning up old cached buffers");
+ for (walk = GST_ELEMENT_CAST (sel)->sinkpads; walk; walk = g_list_next (walk)) {
+ GstSelectorPad *selpad;
+ GstSegment *seg;
+ GstSelectorPadCachedBuffer *cached_buffer;
+ GSList *maybe_remove;
+ guint queue_position;
+
+ selpad = GST_SELECTOR_PAD_CAST (walk->data);
+ if (!selpad->cached_buffers)
+ continue;
+
+ seg = &selpad->segment;
+
+ maybe_remove = NULL;
+ queue_position = 0;
+ while ((cached_buffer = g_queue_peek_nth (selpad->cached_buffers,
+ queue_position))) {
+ GstBuffer *buffer = cached_buffer->buffer;
+ GstClockTime running_time;
+ GSList *l;
+
+ /* If we have no valid timestamp we can't sync this buffer */
+ if (!GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) {
+ maybe_remove = g_slist_append (maybe_remove, cached_buffer);
+ queue_position = g_slist_length (maybe_remove);
+ continue;
+ }
+
+ /* the buffer is still valid if its duration is valid and the
+ * timestamp + duration is >= time, or if its duration is invalid
+ * and the timestamp is >= time */
+ running_time = GST_BUFFER_TIMESTAMP (buffer);
+ /* If possible try to get the running time at the end of the buffer */
+ if (GST_BUFFER_DURATION_IS_VALID (buffer))
+ running_time += GST_BUFFER_DURATION (buffer);
+ /* Only use the segment to convert to running time if the segment is
+ * in TIME format, otherwise do our best to try to sync */
+ if (GST_CLOCK_TIME_IS_VALID (seg->stop)) {
+ if (running_time > seg->stop) {
+ running_time = seg->stop;
+ }
+ }
+ running_time =
+ gst_segment_to_running_time (seg, GST_FORMAT_TIME, running_time);
+
+ GST_DEBUG_OBJECT (selpad,
+ "checking if buffer %p running time=%" GST_TIME_FORMAT
+ " >= stream time=%" GST_TIME_FORMAT, buffer,
+ GST_TIME_ARGS (running_time), GST_TIME_ARGS (cur_running_time));
+ if (running_time >= cur_running_time) {
+ break;
+ }
+
+ GST_DEBUG_OBJECT (selpad, "Removing old cached buffer %p", buffer);
+ g_queue_pop_nth (selpad->cached_buffers, queue_position);
+ gst_selector_pad_free_cached_buffer (cached_buffer);
+
+ for (l = maybe_remove; l != NULL; l = g_slist_next (l)) {
+ /* A buffer after some invalid buffers was removed, it means the invalid buffers
+ * are old, lets also remove them */
+ cached_buffer = l->data;
+ g_queue_remove (selpad->cached_buffers, cached_buffer);
+ gst_selector_pad_free_cached_buffer (cached_buffer);
+ }
+
+ g_slist_free (maybe_remove);
+ maybe_remove = NULL;
+ queue_position = 0;
+ }
+
+ g_slist_free (maybe_remove);
+ maybe_remove = NULL;
+
+ if (g_queue_is_empty (selpad->cached_buffers)) {
+ g_queue_free (selpad->cached_buffers);
+ selpad->cached_buffers = NULL;
+ }
+ }
+
+#if DEBUG_CACHED_BUFFERS
+ gst_input_selector_debug_cached_buffers (sel);
+#endif
+}
+
static GstFlowReturn
gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
{
@@ -627,10 +904,16 @@ gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
sel = GST_INPUT_SELECTOR (parent);
selpad = GST_SELECTOR_PAD_CAST (pad);
+ GST_DEBUG_OBJECT (selpad,
+ "entering chain for buf %p with timestamp %" GST_TIME_FORMAT, buf,
+ GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
GST_INPUT_SELECTOR_LOCK (sel);
/* wait or check for flushing */
- if (gst_input_selector_wait (sel, selpad))
+ if (gst_input_selector_wait (sel, selpad)) {
+ GST_INPUT_SELECTOR_UNLOCK (sel);
goto flushing;
+ }
GST_LOG_OBJECT (pad, "getting active pad");
@@ -639,13 +922,57 @@ gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
/* In sync mode wait until the active pad has advanced
* after the running time of the current buffer */
- if (sel->sync_streams && active_sinkpad != pad) {
- if (gst_input_selector_wait_running_time (sel, selpad, buf))
- goto flushing;
- }
+ if (sel->sync_streams) {
+ /* call chain for each cached buffer if we are not the active pad
+ * or if we are the active pad but didn't push anything yet. */
+ if (active_sinkpad != pad || !selpad->pushed) {
+ /* no need to check for sel->cache_buffers as selpad->cached_buffers
+ * will only be valid if cache_buffers is TRUE */
+ if (selpad->cached_buffers && !selpad->sending_cached_buffers) {
+ GstSelectorPadCachedBuffer *cached_buffer;
+ GstSegment saved_segment;
+
+ saved_segment = selpad->segment;
+
+ selpad->sending_cached_buffers = TRUE;
+ while (!sel->flushing && !selpad->flushing &&
+ (cached_buffer = g_queue_pop_head (selpad->cached_buffers))) {
+ GST_DEBUG_OBJECT (pad, "Cached buffers found, "
+ "invoking chain for cached buffer %p", cached_buffer->buffer);
+
+ selpad->segment = cached_buffer->segment;
+ selpad->events_pending = TRUE;
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ gst_selector_pad_chain (pad, parent, cached_buffer->buffer);
+ GST_INPUT_SELECTOR_LOCK (sel);
+
+ /* we may have cleaned up the queue in the meantime because of
+ * old buffers */
+ if (!selpad->cached_buffers) {
+ break;
+ }
+ }
+ selpad->sending_cached_buffers = FALSE;
- /* Might have changed while waiting */
- active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+ /* all cached buffers sent, restore segment for current buffer */
+ selpad->segment = saved_segment;
+ selpad->events_pending = TRUE;
+
+ /* Might have changed while calling chain for cached buffers */
+ active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+ }
+ }
+
+ if (active_sinkpad != pad) {
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ if (gst_input_selector_wait_running_time (sel, selpad, buf))
+ goto flushing;
+ GST_INPUT_SELECTOR_LOCK (sel);
+ }
+
+ /* Might have changed while waiting */
+ active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+ }
/* update the segment on the srcpad */
start_time = GST_BUFFER_TIMESTAMP (buf);
@@ -693,10 +1020,29 @@ gst_selector_pad_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
}
/* forward */
- GST_LOG_OBJECT (pad, "Forwarding buffer %p", buf);
+ GST_LOG_OBJECT (pad, "Forwarding buffer %p with timestamp %" GST_TIME_FORMAT,
+ buf, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
+
+ res = gst_pad_push (sel->srcpad, gst_buffer_ref (buf));
+ GST_LOG_OBJECT (pad, "Buffer %p forwarded result=%d", buf, res);
+
+ GST_INPUT_SELECTOR_LOCK (sel);
- res = gst_pad_push (sel->srcpad, buf);
- selpad->pushed = TRUE;
+ if (sel->sync_streams && sel->cache_buffers) {
+ /* Might have changed while pushing */
+ active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+ /* only set pad to pushed if we are still the active pad */
+ if (active_sinkpad == pad)
+ selpad->pushed = TRUE;
+
+ /* cache buffer as we may need it again if we change pads */
+ gst_selector_pad_cache_buffer (selpad, buf);
+ gst_input_selector_cleanup_old_cached_buffers (sel, pad);
+ } else {
+ selpad->pushed = TRUE;
+ gst_buffer_unref (buf);
+ }
+ GST_INPUT_SELECTOR_UNLOCK (sel);
done:
return res;
@@ -725,7 +1071,6 @@ ignore:
flushing:
{
GST_DEBUG_OBJECT (pad, "We are flushing, discard buffer %p", buf);
- GST_INPUT_SELECTOR_UNLOCK (sel);
gst_buffer_unref (buf);
res = GST_FLOW_FLUSHING;
goto done;
@@ -818,16 +1163,59 @@ gst_input_selector_class_init (GstInputSelectorClass * klass)
* GstInputSelector:sync-streams
*
* If set to %TRUE all inactive streams will be synced to the
- * running time of the active stream. This makes sure that no
- * buffers are dropped by input-selector that might be needed
- * when switching the active pad.
+ * running time of the active stream or to the current clock.
+ *
+ * To make sure no buffers are dropped by input-selector
+ * that might be needed when switching the active pad,
+ * sync-mode should be set to "clock" and cache-buffers to TRUE.
*
* Since: 0.10.36
*/
g_object_class_install_property (gobject_class, PROP_SYNC_STREAMS,
g_param_spec_boolean ("sync-streams", "Sync Streams",
- "Synchronize inactive streams to the running time of the active stream",
- DEFAULT_SYNC_STREAMS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ "Synchronize inactive streams to the running time of the active "
+ "stream or to the current clock",
+ DEFAULT_SYNC_STREAMS,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+ GST_PARAM_MUTABLE_READY));
+
+ /**
+ * GstInputSelector:sync-mode
+ *
+ * Select how input-selector will sync buffers when in sync-streams mode.
+ *
+ * Note that when using the "active-segment" mode, the "active-segment" may
+ * be ahead of current clock time when switching the active pad, as the current
+ * active pad may have pushed more buffers than what was displayed/consumed,
+ * which may cause delays and some missing buffers.
+ *
+ * Since: 0.10.36
+ */
+ g_object_class_install_property (gobject_class, PROP_SYNC_MODE,
+ g_param_spec_enum ("sync-mode", "Sync mode",
+ "Behavior in sync-streams mode", GST_TYPE_INPUT_SELECTOR_SYNC_MODE,
+ DEFAULT_SYNC_MODE,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+ GST_PARAM_MUTABLE_READY));
+
+ /**
+ * GstInputSelector:cache-buffers
+ *
+ * If set to %TRUE and GstInputSelector:sync-streams is also set to %TRUE,
+ * the active pad will cache the buffers still considered valid (after current
+ * running time, see sync-mode) to avoid missing frames if/when the pad is
+ * reactivated.
+ *
+ * The active pad may push more buffers than what is currently displayed/consumed
+ * and when changing pads those buffers will be discarded and the only way to
+ * reactivate that pad without loosing the already consumed buffers is to enable cache.
+ */
+ g_object_class_install_property (gobject_class, PROP_CACHE_BUFFERS,
+ g_param_spec_boolean ("cache-buffers", "Cache Buffers",
+ "Cache buffers for active-pad",
+ DEFAULT_CACHE_BUFFERS,
+ G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+ GST_PARAM_MUTABLE_READY));
/**
* GstInputSelector::block:
@@ -880,6 +1268,12 @@ gst_input_selector_init (GstInputSelector * sel)
g_mutex_init (&sel->lock);
g_cond_init (&sel->cond);
sel->blocked = FALSE;
+
+ /* lets give a change for downstream to do something on
+ * active-pad change before we start pushing new buffers */
+ g_signal_connect_data (sel, "notify::active-pad",
+ (GCallback) gst_input_selector_active_pad_changed, NULL,
+ NULL, G_CONNECT_AFTER);
}
static void
@@ -934,13 +1328,6 @@ gst_input_selector_set_active_pad (GstInputSelector * self, GstPad * pad)
active_pad_p = &self->active_sinkpad;
gst_object_replace ((GstObject **) active_pad_p, GST_OBJECT_CAST (pad));
- gst_pad_push_event (pad, gst_event_new_reconfigure ());
-
- /* Wake up all non-active pads in sync mode, they might be
- * the active pad now */
- if (self->sync_streams)
- GST_INPUT_SELECTOR_BROADCAST (self);
-
GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT,
self->active_sinkpad);
@@ -961,17 +1348,35 @@ gst_input_selector_set_property (GObject * object, guint prop_id,
pad = g_value_get_object (value);
GST_INPUT_SELECTOR_LOCK (sel);
+
+#if DEBUG_CACHED_BUFFERS
+ gst_input_selector_debug_cached_buffers (sel);
+#endif
+
gst_input_selector_set_active_pad (sel, pad);
+
+#if DEBUG_CACHED_BUFFERS
+ gst_input_selector_debug_cached_buffers (sel);
+#endif
+
GST_INPUT_SELECTOR_UNLOCK (sel);
break;
}
case PROP_SYNC_STREAMS:
- {
GST_INPUT_SELECTOR_LOCK (sel);
sel->sync_streams = g_value_get_boolean (value);
GST_INPUT_SELECTOR_UNLOCK (sel);
break;
- }
+ case PROP_SYNC_MODE:
+ GST_INPUT_SELECTOR_LOCK (sel);
+ sel->sync_mode = g_value_get_enum (value);
+ GST_INPUT_SELECTOR_UNLOCK (sel);
+ break;
+ case PROP_CACHE_BUFFERS:
+ GST_INPUT_SELECTOR_LOCK (object);
+ sel->cache_buffers = g_value_get_boolean (value);
+ GST_INPUT_SELECTOR_UNLOCK (object);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -979,6 +1384,16 @@ gst_input_selector_set_property (GObject * object, guint prop_id,
}
static void
+gst_input_selector_active_pad_changed (GstInputSelector * sel,
+ GParamSpec * pspec, gpointer user_data)
+{
+ /* Wake up all non-active pads in sync mode, they might be
+ * the active pad now */
+ if (sel->sync_streams)
+ GST_INPUT_SELECTOR_BROADCAST (sel);
+}
+
+static void
gst_input_selector_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec)
{
@@ -1000,6 +1415,16 @@ gst_input_selector_get_property (GObject * object, guint prop_id,
g_value_set_boolean (value, sel->sync_streams);
GST_INPUT_SELECTOR_UNLOCK (object);
break;
+ case PROP_SYNC_MODE:
+ GST_INPUT_SELECTOR_LOCK (object);
+ g_value_set_enum (value, sel->sync_mode);
+ GST_INPUT_SELECTOR_UNLOCK (object);
+ break;
+ case PROP_CACHE_BUFFERS:
+ GST_INPUT_SELECTOR_LOCK (object);
+ g_value_set_boolean (value, sel->cache_buffers);
+ GST_INPUT_SELECTOR_UNLOCK (object);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -1270,7 +1695,7 @@ gst_input_selector_reset (GstInputSelector * sel)
gst_selector_pad_reset (selpad);
if (selpad->tags) {
- gst_tag_list_free (selpad->tags);
+ gst_tag_list_unref (selpad->tags);
selpad->tags = NULL;
}
}
diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h
index 8a5248a..dd48a51 100644
--- a/plugins/elements/gstinputselector.h
+++ b/plugins/elements/gstinputselector.h
@@ -48,6 +48,18 @@ typedef struct _GstInputSelectorClass GstInputSelectorClass;
GST_INPUT_SELECTOR_GET_LOCK(sel)))
#define GST_INPUT_SELECTOR_BROADCAST(sel) (g_cond_broadcast (GST_INPUT_SELECTOR_GET_COND(sel)))
+/**
+ * GstInputSelectorSyncMode:
+ * @GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT: Sync using the current active segment.
+ * @GST_INPUT_SELECTOR_SYNC_MODE_CLOCK: Sync using the clock.
+ *
+ * The different ways that input-selector can behave when in sync-streams mode.
+ */
+typedef enum {
+ GST_INPUT_SELECTOR_SYNC_MODE_ACTIVE_SEGMENT,
+ GST_INPUT_SELECTOR_SYNC_MODE_CLOCK
+} GstInputSelectorSyncMode;
+
struct _GstInputSelector {
GstElement element;
@@ -57,6 +69,8 @@ struct _GstInputSelector {
guint n_pads;
guint padcount;
gboolean sync_streams;
+ GstInputSelectorSyncMode sync_mode;
+ gboolean cache_buffers;
GMutex lock;
GCond cond;
diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c
index 82e2e11..158da10 100644
--- a/plugins/elements/gstqueue2.c
+++ b/plugins/elements/gstqueue2.c
@@ -41,7 +41,7 @@
* The default queue size limits are 100 buffers, 2MB of data, or
* two seconds worth of data, whichever is reached first.
*
- * If you set temp-tmpl to a value such as /tmp/gstreamer-XXXXXX, the element
+ * If you set temp-template to a value such as /tmp/gstreamer-XXXXXX, the element
* will allocate a random free filename and buffer data in the file.
* By using this, it will buffer the entire stream data on the file independently
* of the queue size limits, they will only be used for buffering statistics.
@@ -2427,21 +2427,8 @@ next:
if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER) {
GstBuffer *buffer;
-#if 0
- GstCaps *caps;
-#endif
buffer = GST_BUFFER_CAST (data);
-#if 0
- caps = GST_BUFFER_CAPS (buffer);
-#endif
-
-#if 0
- /* set caps before pushing the buffer so that core does not try to do
- * something fancy to check if this is possible. */
- if (caps && caps != GST_PAD_CAPS (queue->srcpad))
- gst_pad_set_caps (queue->srcpad, caps);
-#endif
result = gst_pad_push (queue->srcpad, buffer);
@@ -2471,23 +2458,9 @@ next:
GST_QUEUE2_MUTEX_LOCK_CHECK (queue, queue->srcresult, out_flushing);
} else if (item_type == GST_QUEUE2_ITEM_TYPE_BUFFER_LIST) {
GstBufferList *buffer_list;
-#if 0
- GstBuffer *first_buf;
- GstCaps *caps;
-#endif
buffer_list = GST_BUFFER_LIST_CAST (data);
-#if 0
- first_buf = gst_buffer_list_get (buffer_list, 0);
- caps = (first_buf != NULL) ? GST_BUFFER_CAPS (first_buf) : NULL;
-
- /* set caps before pushing the buffer so that core does not try to do
- * something fancy to check if this is possible. */
- if (caps && caps != GST_PAD_CAPS (queue->srcpad))
- gst_pad_set_caps (queue->srcpad, caps);
-#endif
-
result = gst_pad_push_list (queue->srcpad, buffer_list);
/* need to check for srcresult here as well */
@@ -3222,7 +3195,7 @@ gst_queue2_set_property (GObject * object,
case PROP_TEMP_LOCATION:
g_free (queue->temp_location);
queue->temp_location = g_value_dup_string (value);
- /* you can set the property back to NULL to make it use the temp-tmpl
+ /* you can set the property back to NULL to make it use the temp-template
* property. */
queue->temp_location_set = queue->temp_location != NULL;
break;
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index 436a4e9..e6c4de2 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -1190,6 +1190,12 @@ gst_type_find_element_activate_sink (GstPad * pad, GstObject * parent)
g_signal_emit (typefind, gst_type_find_element_signals[HAVE_TYPE],
0, probability, found_caps);
typefind->mode = MODE_NORMAL;
+ /* the signal above could have made a downstream element activate
+ * the pad in pull mode, we check if the pad is already active now and if
+ * so, we are done */
+ if (gst_pad_is_active (pad))
+ return TRUE;
+
goto typefind_push;
}
GST_OBJECT_UNLOCK (typefind);
diff --git a/po/af.gmo b/po/af.gmo
index adeef7a..dc52152 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index d799a1d..0530494 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.9.7\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2005-12-05 11:45+0200\n"
"Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
"Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -1131,7 +1131,7 @@ msgstr "geen element \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Wys etikette (ook bekend as metadata)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1201,12 +1201,19 @@ msgstr "FOUT: pyplyn wil nie speel nie.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Pyplyn word gestel na NULL ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/az.gmo b/po/az.gmo
index 1c8cb19..52ec0cf 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index ba265a7..7563ac1 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.8.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2004-03-19 18:40+0200\n"
"Last-Translator: Metin Amiroff <metin@karegen.com>\n"
"Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -1077,7 +1077,7 @@ msgstr ""
msgid "Output tags (also known as metadata)"
msgstr ""
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1145,12 +1145,18 @@ msgstr ""
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/be.gmo b/po/be.gmo
index c7c1783..30c5b03 100644
--- a/po/be.gmo
+++ b/po/be.gmo
Binary files differ
diff --git a/po/be.po b/po/be.po
index af6f723..659461a 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.9.7\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2006-01-18 22:26+0200\n"
"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
"Language-Team: Belarusian <i18n@mova.org>\n"
@@ -1086,7 +1086,7 @@ msgstr ""
msgid "Output tags (also known as metadata)"
msgstr ""
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1154,12 +1154,18 @@ msgstr ""
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/bg.gmo b/po/bg.gmo
index 1e937d5..19c9a1e 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 3929568..b36f1cc 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-04-26 22:40+0300\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -1129,7 +1129,7 @@ msgstr "елементът „%s“ липсва"
msgid "Output tags (also known as metadata)"
msgstr "Изходни съобщения за етикетите (метаданните)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1198,12 +1198,20 @@ msgstr "ГРЕШКА: конвейерът не иска да проработи
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "Включен е EOS при спиране — извеждане на EOS по конвейера\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "Включен е EOS при спиране — извеждане на EOS по конвейера\n"
+
msgid "Waiting for EOS...\n"
msgstr "Изчакване на EOS…\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Получен е край на поток: конвейерът се спира…\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Прекъсване: Конвейерът се спира…\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Възникна грешка при изчакването на EOS\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index 0592c61..064bef0 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 82f7d81..dd4c7a9 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-11-04 19:41+0100\n"
"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
@@ -1136,7 +1136,7 @@ msgstr "no hi ha cap element «%s»"
msgid "Output tags (also known as metadata)"
msgstr "Mostra els marcadors (també coneguts com metadades)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1206,12 +1206,22 @@ msgstr ""
"S'ha habilitat el final del flux en tancar -- S'està forçant un final del "
"flux al conducte\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"S'ha habilitat el final del flux en tancar -- S'està forçant un final del "
+"flux al conducte\n"
+
msgid "Waiting for EOS...\n"
msgstr "S'està esperant al final del flux…\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "S'ha rebut un final del flux - s'està aturant el conducte…\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrupció: S'està aturant el conducte…\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "S'ha produït un error en esperar al final del flux\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index f56fc51..2e8bb95 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 7e343ac..1575e42 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-12-01 08:17+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -1132,7 +1132,7 @@ msgstr "prvek „%s“ neexistuje"
msgid "Output tags (also known as metadata)"
msgstr "Vypsat štítky (známé také jako metadata)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1205,12 +1205,22 @@ msgstr ""
"Zakončení proudu (EOS) při vypnutí povoleno -- Vynucuje se zakončení proudu "
"v rouře\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Zakončení proudu (EOS) při vypnutí povoleno -- Vynucuje se zakončení proudu "
+"v rouře\n"
+
msgid "Waiting for EOS...\n"
msgstr "Čeká se na konec proudu (EOS)…\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Obdržen konec proudu (EOS) – zastavuje se roura…\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Přerušení: Zastavuje se roura…\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Nastala chyba při čekání na konec proudu (EOS)\n"
diff --git a/po/da.gmo b/po/da.gmo
index b4debcb..6f209f8 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 2170f7b..13a430e 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-11-06 22:52+0100\n"
"Last-Translator: Mogens Jaeger <mogensjaeger@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -1131,7 +1131,7 @@ msgstr "intet element \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Uddatamærkater (også kendt som metadata)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1200,12 +1200,21 @@ msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
"Medieslut ved nedlukning aktiveret -- Gennemtving medieslut på rørledningen\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Medieslut ved nedlukning aktiveret -- Gennemtving medieslut på rørledningen\n"
+
msgid "Waiting for EOS...\n"
msgstr "Venter på medieslut...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Medieslut modtaget - stopper rørledning...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Afbrydelse: Stopper rørledning...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "En fejl opstod mens der ventedes på medieslut\n"
diff --git a/po/de.gmo b/po/de.gmo
index 96fb320..8dc740f 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 49cd9e6..e2166e8 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-04-27 23:44+0200\n"
"Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -1153,7 +1153,7 @@ msgstr "Kein Element »%s«"
msgid "Output tags (also known as metadata)"
msgstr "Kennzeichen (auch bekannt als Metadaten) ausgeben"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1222,12 +1222,21 @@ msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
"EOS bei Beenden ist eingeschaltet -- EOS wird auf die Leitung erzwungen\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"EOS bei Beenden ist eingeschaltet -- EOS wird auf die Leitung erzwungen\n"
+
msgid "Waiting for EOS...\n"
msgstr "Auf EOS wird gewartet …\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS erhalten - Leitung wird angehalten …\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrupt: Leitung wird gestoppt ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Ein Fehler ist beim Warten auf EOS aufgetreten\n"
diff --git a/po/el.gmo b/po/el.gmo
index 8940cd0..c1c3012 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index f1505a9..343f4e9 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-11-29 11:14+0200\n"
"Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
"Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -1144,7 +1144,7 @@ msgstr "δεν υπάρχει στοιχείο «%s»"
msgid "Output tags (also known as metadata)"
msgstr "Ετικέτες εξόδου (επίσης γνωστές ως μεταδεδομένα)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1213,12 +1213,21 @@ msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
"Ενεργοποίηση του EOS κατά τον τερματισμό -- Επιβολή του EOS στη διασωλήνωση\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Ενεργοποίηση του EOS κατά τον τερματισμό -- Επιβολή του EOS στη διασωλήνωση\n"
+
msgid "Waiting for EOS...\n"
msgstr "Αναμονή για EOS…\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Λήψη EOS - διακοπή διασωλήνωσης…\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Διακοπή: Τερματισμός διασωλήνωσης…\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Προέκυψε σφάλμα κατά την αναμονή για EOS\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 5653952..9f5718e 100644
--- a/po/en_GB.gmo
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index febb66a..de86948 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.1\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2004-04-26 10:36-0400\n"
"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
"Language-Team: English (British) <en_gb@li.org>\n"
@@ -1133,7 +1133,7 @@ msgstr "no element \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Output tags (also known as metadata)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1204,12 +1204,18 @@ msgstr "ERROR: pipeline doesn't want to play.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/eo.gmo b/po/eo.gmo
index 6e295da..95c5c6a 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index c24eecb..f15bdc2 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\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"
@@ -1068,7 +1068,7 @@ msgstr "neniu elemento \"%s\""
msgid "Output tags (also known as metadata)"
msgstr ""
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1136,12 +1136,18 @@ msgstr ""
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/es.gmo b/po/es.gmo
index f6ca501..2799c43 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index ffd14fa..42c91a9 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-10-02 15:45+0200\n"
"Last-Translator: Jorge González González <aloriel@gmail.com>\n"
"Language-Team: Spanish <es@li.org>\n"
@@ -1138,7 +1138,7 @@ msgstr "no hay un elemento «%s»"
msgid "Output tags (also known as metadata)"
msgstr "Etiquetas de salida (también conocidos como metadatos)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1206,12 +1206,20 @@ msgstr "ERROR: el conducto no quiere reproducir.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS al apagar activado; Forzando EOS en la tubería\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS al apagar activado; Forzando EOS en la tubería\n"
+
msgid "Waiting for EOS...\n"
msgstr "Esperando a EOS…\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS recibido: parando el conducto …\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrumpir: parando el conducto …\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Ocurrió un error al esperar a EOS\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index dc74212..a0e0ce4 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index f8791f5..7142b11 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.10.26.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-03-25 13:10+0100\n"
"Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
"Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -1136,7 +1136,7 @@ msgstr "ez dago \"%s\" elementua"
msgid "Output tags (also known as metadata)"
msgstr "Erakutsi etiketak (metadatu gisa ere ezagutzen direnak)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1204,12 +1204,20 @@ msgstr "ERROREA: ezin da kanalizazioa erreproduzitu.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS itzaltzean gaituta -- EOS derrigortzen kanalizazioan\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS itzaltzean gaituta -- EOS derrigortzen kanalizazioan\n"
+
msgid "Waiting for EOS...\n"
msgstr "EOSren zain...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOSa jasota - kanalizazioa gelditzen...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Eten: Kanalizazioa gelditzen... \n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Errorea gertatu da EOSren zain egotean\n"
diff --git a/po/fi.gmo b/po/fi.gmo
index d3bcae5..5c9cecb 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 517739e..a4cc57b 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-11-17 23:10+0200\n"
"Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -1129,7 +1129,7 @@ msgstr "ei elementtiä ”%s”"
msgid "Output tags (also known as metadata)"
msgstr "Tulostemerkinnät (tunnetaan myös metadatana)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1199,12 +1199,22 @@ msgstr ""
"Virran-loppu sammutettaessa käytössä -- pakotetaan virran-loppu "
"liukuhihnalle\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Virran-loppu sammutettaessa käytössä -- pakotetaan virran-loppu "
+"liukuhihnalle\n"
+
msgid "Waiting for EOS...\n"
msgstr "Odotetaan virran loppua...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Virran-loppu vastaanotettu - pysäytetään liukuhihna...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Keskeytys: Pysäytetään liukuhihna ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Tapahtui virhe odotettaessa virran-loppua\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index 8b6a749..ba0fc13 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 1182495..811f620 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-04-28 09:34+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: French <traduc@traduc.org>\n"
@@ -1133,7 +1133,7 @@ msgstr "pas d'élément « %s »"
msgid "Output tags (also known as metadata)"
msgstr "Affiche les balises (aussi connues sous le nom de métadonnées)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1201,12 +1201,20 @@ msgstr "ERREUR : le pipeline refuse de passer en mode actif.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS à la fermeture est activé -- EOS forcé sur le pipeline\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS à la fermeture est activé -- EOS forcé sur le pipeline\n"
+
msgid "Waiting for EOS...\n"
msgstr "Attente d'EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS reçu - arrêt du pipeline...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interruption : arrêt du pipeline...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Une erreur s'est produite lors de l'attente de l'EOS\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index 5172843..f4b527b 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 9713502..5f0d995 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-09-05 12:49+0200\n"
"Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
"Language-Team: Galician <proxecto@trasno.net>\n"
@@ -1128,7 +1128,7 @@ msgstr "non hai un elemento «%s»"
msgid "Output tags (also known as metadata)"
msgstr "Etiquetas de saída (tamén coñecido como metadatos)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1196,12 +1196,20 @@ msgstr "ERRO: a tubería non quere reproducirse.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS ao apagar activado; Forzando EOS na tubería\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS ao apagar activado; Forzando EOS na tubería\n"
+
msgid "Waiting for EOS...\n"
msgstr "Agardando pola EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS recibido: detendo a tubería...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interromper: parando a canalización …\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Produciuse un erro ao esperar a EOS\n"
diff --git a/po/gstreamer-1.0.pot b/po/gstreamer-1.0.pot
index 293261a..0429d35 100644
--- a/po/gstreamer-1.0.pot
+++ b/po/gstreamer-1.0.pot
@@ -5,9 +5,9 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: gstreamer 0.11.91\n"
+"Project-Id-Version: gstreamer 0.11.92\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\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"
@@ -98,7 +98,7 @@ msgstr ""
msgid "Show GStreamer Options"
msgstr ""
-#: gst/gst.c:927
+#: gst/gst.c:926
msgid "Unknown option"
msgstr ""
@@ -299,554 +299,554 @@ msgstr ""
msgid "Selected clock cannot be used in pipeline."
msgstr ""
-#: gst/gsttaglist.c:101
+#: gst/gsttaglist.c:110
msgid "title"
msgstr ""
-#: gst/gsttaglist.c:101
+#: gst/gsttaglist.c:110
msgid "commonly used title"
msgstr ""
-#: gst/gsttaglist.c:104
+#: gst/gsttaglist.c:113
msgid "title sortname"
msgstr ""
-#: gst/gsttaglist.c:104
+#: gst/gsttaglist.c:113
msgid "commonly used title for sorting purposes"
msgstr ""
-#: gst/gsttaglist.c:107
+#: gst/gsttaglist.c:116
msgid "artist"
msgstr ""
-#: gst/gsttaglist.c:108
+#: gst/gsttaglist.c:117
msgid "person(s) responsible for the recording"
msgstr ""
-#: gst/gsttaglist.c:112
+#: gst/gsttaglist.c:121
msgid "artist sortname"
msgstr ""
-#: gst/gsttaglist.c:113
+#: gst/gsttaglist.c:122
msgid "person(s) responsible for the recording for sorting purposes"
msgstr ""
-#: gst/gsttaglist.c:116
+#: gst/gsttaglist.c:125
msgid "album"
msgstr ""
-#: gst/gsttaglist.c:117
+#: gst/gsttaglist.c:126
msgid "album containing this data"
msgstr ""
-#: gst/gsttaglist.c:120
+#: gst/gsttaglist.c:129
msgid "album sortname"
msgstr ""
-#: gst/gsttaglist.c:121
+#: gst/gsttaglist.c:130
msgid "album containing this data for sorting purposes"
msgstr ""
-#: gst/gsttaglist.c:124
+#: gst/gsttaglist.c:133
msgid "album artist"
msgstr ""
-#: gst/gsttaglist.c:125
+#: gst/gsttaglist.c:134
msgid "The artist of the entire album, as it should be displayed"
msgstr ""
-#: gst/gsttaglist.c:129
+#: gst/gsttaglist.c:138
msgid "album artist sortname"
msgstr ""
-#: gst/gsttaglist.c:130
+#: gst/gsttaglist.c:139
msgid "The artist of the entire album, as it should be sorted"
msgstr ""
-#: gst/gsttaglist.c:132
+#: gst/gsttaglist.c:141
msgid "date"
msgstr ""
-#: gst/gsttaglist.c:132
+#: gst/gsttaglist.c:141
msgid "date the data was created (as a GDate structure)"
msgstr ""
-#: gst/gsttaglist.c:134
+#: gst/gsttaglist.c:143
msgid "datetime"
msgstr ""
-#: gst/gsttaglist.c:135
+#: gst/gsttaglist.c:144
msgid "date and time the data was created (as a GstDateTime structure)"
msgstr ""
-#: gst/gsttaglist.c:139
+#: gst/gsttaglist.c:148
msgid "genre"
msgstr ""
-#: gst/gsttaglist.c:140
+#: gst/gsttaglist.c:149
msgid "genre this data belongs to"
msgstr ""
-#: gst/gsttaglist.c:143
+#: gst/gsttaglist.c:152
msgid "comment"
msgstr ""
-#: gst/gsttaglist.c:144
+#: gst/gsttaglist.c:153
msgid "free text commenting the data"
msgstr ""
-#: gst/gsttaglist.c:147
+#: gst/gsttaglist.c:156
msgid "extended comment"
msgstr ""
-#: gst/gsttaglist.c:148
+#: gst/gsttaglist.c:157
msgid "free text commenting the data in key=value or key[en]=comment form"
msgstr ""
-#: gst/gsttaglist.c:152
+#: gst/gsttaglist.c:161
msgid "track number"
msgstr ""
-#: gst/gsttaglist.c:153
+#: gst/gsttaglist.c:162
msgid "track number inside a collection"
msgstr ""
-#: gst/gsttaglist.c:156
+#: gst/gsttaglist.c:165
msgid "track count"
msgstr ""
-#: gst/gsttaglist.c:157
+#: gst/gsttaglist.c:166
msgid "count of tracks inside collection this track belongs to"
msgstr ""
-#: gst/gsttaglist.c:161
+#: gst/gsttaglist.c:170
msgid "disc number"
msgstr ""
-#: gst/gsttaglist.c:162
+#: gst/gsttaglist.c:171
msgid "disc number inside a collection"
msgstr ""
-#: gst/gsttaglist.c:165
+#: gst/gsttaglist.c:174
msgid "disc count"
msgstr ""
-#: gst/gsttaglist.c:166
+#: gst/gsttaglist.c:175
msgid "count of discs inside collection this disc belongs to"
msgstr ""
-#: gst/gsttaglist.c:170
+#: gst/gsttaglist.c:179
msgid "location"
msgstr ""
-#: gst/gsttaglist.c:170
+#: gst/gsttaglist.c:179
msgid ""
"Origin of media as a URI (location, where the original of the file or stream "
"is hosted)"
msgstr ""
-#: gst/gsttaglist.c:175
+#: gst/gsttaglist.c:184
msgid "homepage"
msgstr ""
-#: gst/gsttaglist.c:176
+#: gst/gsttaglist.c:185
msgid "Homepage for this media (i.e. artist or movie homepage)"
msgstr ""
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:188
msgid "description"
msgstr ""
-#: gst/gsttaglist.c:179
+#: gst/gsttaglist.c:189
msgid "short text describing the content of the data"
msgstr ""
-#: gst/gsttaglist.c:182
+#: gst/gsttaglist.c:192
msgid "version"
msgstr ""
-#: gst/gsttaglist.c:182
+#: gst/gsttaglist.c:192
msgid "version of this data"
msgstr ""
-#: gst/gsttaglist.c:183
+#: gst/gsttaglist.c:194
msgid "ISRC"
msgstr ""
-#: gst/gsttaglist.c:185
+#: gst/gsttaglist.c:196
msgid "International Standard Recording Code - see http://www.ifpi.org/isrc/"
msgstr ""
-#: gst/gsttaglist.c:189
+#: gst/gsttaglist.c:200
msgid "organization"
msgstr ""
-#: gst/gsttaglist.c:191
+#: gst/gsttaglist.c:203
msgid "copyright"
msgstr ""
-#: gst/gsttaglist.c:191
+#: gst/gsttaglist.c:203
msgid "copyright notice of the data"
msgstr ""
-#: gst/gsttaglist.c:193
+#: gst/gsttaglist.c:205
msgid "copyright uri"
msgstr ""
-#: gst/gsttaglist.c:194
+#: gst/gsttaglist.c:206
msgid "URI to the copyright notice of the data"
msgstr ""
-#: gst/gsttaglist.c:196
+#: gst/gsttaglist.c:208
msgid "encoded by"
msgstr ""
-#: gst/gsttaglist.c:196
+#: gst/gsttaglist.c:208
msgid "name of the encoding person or organization"
msgstr ""
-#: gst/gsttaglist.c:200
+#: gst/gsttaglist.c:212
msgid "contact"
msgstr ""
-#: gst/gsttaglist.c:200
+#: gst/gsttaglist.c:212
msgid "contact information"
msgstr ""
-#: gst/gsttaglist.c:202
+#: gst/gsttaglist.c:214
msgid "license"
msgstr ""
-#: gst/gsttaglist.c:202
+#: gst/gsttaglist.c:214
msgid "license of data"
msgstr ""
-#: gst/gsttaglist.c:204
+#: gst/gsttaglist.c:216
msgid "license uri"
msgstr ""
-#: gst/gsttaglist.c:205
+#: gst/gsttaglist.c:217
msgid "URI to the license of the data"
msgstr ""
-#: gst/gsttaglist.c:208
+#: gst/gsttaglist.c:220
msgid "performer"
msgstr ""
-#: gst/gsttaglist.c:209
+#: gst/gsttaglist.c:221
msgid "person(s) performing"
msgstr ""
-#: gst/gsttaglist.c:212
+#: gst/gsttaglist.c:224
msgid "composer"
msgstr ""
-#: gst/gsttaglist.c:213
+#: gst/gsttaglist.c:225
msgid "person(s) who composed the recording"
msgstr ""
-#: gst/gsttaglist.c:217
+#: gst/gsttaglist.c:229
msgid "duration"
msgstr ""
-#: gst/gsttaglist.c:217
+#: gst/gsttaglist.c:229
msgid "length in GStreamer time units (nanoseconds)"
msgstr ""
-#: gst/gsttaglist.c:220
+#: gst/gsttaglist.c:232
msgid "codec"
msgstr ""
-#: gst/gsttaglist.c:221
+#: gst/gsttaglist.c:233
msgid "codec the data is stored in"
msgstr ""
-#: gst/gsttaglist.c:224
+#: gst/gsttaglist.c:236
msgid "video codec"
msgstr ""
-#: gst/gsttaglist.c:224
+#: gst/gsttaglist.c:236
msgid "codec the video data is stored in"
msgstr ""
-#: gst/gsttaglist.c:227
+#: gst/gsttaglist.c:239
msgid "audio codec"
msgstr ""
-#: gst/gsttaglist.c:227
+#: gst/gsttaglist.c:239
msgid "codec the audio data is stored in"
msgstr ""
-#: gst/gsttaglist.c:230
+#: gst/gsttaglist.c:242
msgid "subtitle codec"
msgstr ""
-#: gst/gsttaglist.c:230
+#: gst/gsttaglist.c:242
msgid "codec the subtitle data is stored in"
msgstr ""
-#: gst/gsttaglist.c:232
+#: gst/gsttaglist.c:244
msgid "container format"
msgstr ""
-#: gst/gsttaglist.c:233
+#: gst/gsttaglist.c:245
msgid "container format the data is stored in"
msgstr ""
-#: gst/gsttaglist.c:235
+#: gst/gsttaglist.c:247
msgid "bitrate"
msgstr ""
-#: gst/gsttaglist.c:235
+#: gst/gsttaglist.c:247
msgid "exact or average bitrate in bits/s"
msgstr ""
-#: gst/gsttaglist.c:237
+#: gst/gsttaglist.c:249
msgid "nominal bitrate"
msgstr ""
-#: gst/gsttaglist.c:237
+#: gst/gsttaglist.c:249
msgid "nominal bitrate in bits/s"
msgstr ""
-#: gst/gsttaglist.c:239
+#: gst/gsttaglist.c:251
msgid "minimum bitrate"
msgstr ""
-#: gst/gsttaglist.c:239
+#: gst/gsttaglist.c:251
msgid "minimum bitrate in bits/s"
msgstr ""
-#: gst/gsttaglist.c:241
+#: gst/gsttaglist.c:253
msgid "maximum bitrate"
msgstr ""
-#: gst/gsttaglist.c:241
+#: gst/gsttaglist.c:253
msgid "maximum bitrate in bits/s"
msgstr ""
-#: gst/gsttaglist.c:244
+#: gst/gsttaglist.c:256
msgid "encoder"
msgstr ""
-#: gst/gsttaglist.c:244
+#: gst/gsttaglist.c:256
msgid "encoder used to encode this stream"
msgstr ""
-#: gst/gsttaglist.c:247
+#: gst/gsttaglist.c:259
msgid "encoder version"
msgstr ""
-#: gst/gsttaglist.c:248
+#: gst/gsttaglist.c:260
msgid "version of the encoder used to encode this stream"
msgstr ""
-#: gst/gsttaglist.c:250
+#: gst/gsttaglist.c:262
msgid "serial"
msgstr ""
-#: gst/gsttaglist.c:250
+#: gst/gsttaglist.c:262
msgid "serial number of track"
msgstr ""
-#: gst/gsttaglist.c:252
+#: gst/gsttaglist.c:264
msgid "replaygain track gain"
msgstr ""
-#: gst/gsttaglist.c:252
+#: gst/gsttaglist.c:264
msgid "track gain in db"
msgstr ""
-#: gst/gsttaglist.c:254
+#: gst/gsttaglist.c:266
msgid "replaygain track peak"
msgstr ""
-#: gst/gsttaglist.c:254
+#: gst/gsttaglist.c:266
msgid "peak of the track"
msgstr ""
-#: gst/gsttaglist.c:256
+#: gst/gsttaglist.c:268
msgid "replaygain album gain"
msgstr ""
-#: gst/gsttaglist.c:256
+#: gst/gsttaglist.c:268
msgid "album gain in db"
msgstr ""
-#: gst/gsttaglist.c:258
+#: gst/gsttaglist.c:270
msgid "replaygain album peak"
msgstr ""
-#: gst/gsttaglist.c:258
+#: gst/gsttaglist.c:270
msgid "peak of the album"
msgstr ""
-#: gst/gsttaglist.c:260
+#: gst/gsttaglist.c:272
msgid "replaygain reference level"
msgstr ""
-#: gst/gsttaglist.c:261
+#: gst/gsttaglist.c:273
msgid "reference level of track and album gain values"
msgstr ""
-#: gst/gsttaglist.c:263
+#: gst/gsttaglist.c:275
msgid "language code"
msgstr ""
-#: gst/gsttaglist.c:264
+#: gst/gsttaglist.c:276
msgid "language code for this stream, conforming to ISO-639-1 or ISO-639-2"
msgstr ""
-#: gst/gsttaglist.c:267
+#: gst/gsttaglist.c:279
msgid "language name"
msgstr ""
-#: gst/gsttaglist.c:268
+#: gst/gsttaglist.c:280
msgid "freeform name of the language this stream is in"
msgstr ""
-#: gst/gsttaglist.c:270
+#: gst/gsttaglist.c:282
msgid "image"
msgstr ""
-#: gst/gsttaglist.c:270
+#: gst/gsttaglist.c:282
msgid "image related to this stream"
msgstr ""
#. TRANSLATORS: 'preview image' = image that shows a preview of the full image
-#: gst/gsttaglist.c:273
+#: gst/gsttaglist.c:286
msgid "preview image"
msgstr ""
-#: gst/gsttaglist.c:273
+#: gst/gsttaglist.c:286
msgid "preview image related to this stream"
msgstr ""
-#: gst/gsttaglist.c:275
+#: gst/gsttaglist.c:288
msgid "attachment"
msgstr ""
-#: gst/gsttaglist.c:275
+#: gst/gsttaglist.c:288
msgid "file attached to this stream"
msgstr ""
-#: gst/gsttaglist.c:278
+#: gst/gsttaglist.c:291
msgid "beats per minute"
msgstr ""
-#: gst/gsttaglist.c:278
+#: gst/gsttaglist.c:292
msgid "number of beats per minute in audio"
msgstr ""
-#: gst/gsttaglist.c:280
+#: gst/gsttaglist.c:294
msgid "keywords"
msgstr ""
-#: gst/gsttaglist.c:280
+#: gst/gsttaglist.c:294
msgid "comma separated keywords describing the content"
msgstr ""
-#: gst/gsttaglist.c:283
+#: gst/gsttaglist.c:297
msgid "geo location name"
msgstr ""
-#: gst/gsttaglist.c:283
+#: gst/gsttaglist.c:298
msgid ""
"human readable descriptive location of where the media has been recorded or "
"produced"
msgstr ""
-#: gst/gsttaglist.c:286
+#: gst/gsttaglist.c:301
msgid "geo location latitude"
msgstr ""
-#: gst/gsttaglist.c:287
+#: gst/gsttaglist.c:302
msgid ""
"geo latitude location of where the media has been recorded or produced in "
"degrees according to WGS84 (zero at the equator, negative values for "
"southern latitudes)"
msgstr ""
-#: gst/gsttaglist.c:291
+#: gst/gsttaglist.c:306
msgid "geo location longitude"
msgstr ""
-#: gst/gsttaglist.c:292
+#: gst/gsttaglist.c:307
msgid ""
"geo longitude location of where the media has been recorded or produced in "
"degrees according to WGS84 (zero at the prime meridian in Greenwich/UK, "
"negative values for western longitudes)"
msgstr ""
-#: gst/gsttaglist.c:296
+#: gst/gsttaglist.c:311
msgid "geo location elevation"
msgstr ""
-#: gst/gsttaglist.c:297
+#: gst/gsttaglist.c:312
msgid ""
"geo elevation of where the media has been recorded or produced in meters "
"according to WGS84 (zero is average sea level)"
msgstr ""
-#: gst/gsttaglist.c:300
+#: gst/gsttaglist.c:315
msgid "geo location country"
msgstr ""
-#: gst/gsttaglist.c:301
+#: gst/gsttaglist.c:316
msgid "country (english name) where the media has been recorded or produced"
msgstr ""
-#: gst/gsttaglist.c:304
+#: gst/gsttaglist.c:319
msgid "geo location city"
msgstr ""
-#: gst/gsttaglist.c:305
+#: gst/gsttaglist.c:320
msgid "city (english name) where the media has been recorded or produced"
msgstr ""
-#: gst/gsttaglist.c:308
+#: gst/gsttaglist.c:323
msgid "geo location sublocation"
msgstr ""
-#: gst/gsttaglist.c:309
+#: gst/gsttaglist.c:324
msgid ""
"a location whithin a city where the media has been produced or created (e.g. "
"the neighborhood)"
msgstr ""
-#: gst/gsttaglist.c:312
+#: gst/gsttaglist.c:327
msgid "geo location horizontal error"
msgstr ""
-#: gst/gsttaglist.c:313
+#: gst/gsttaglist.c:328
msgid "expected error of the horizontal positioning measures (in meters)"
msgstr ""
-#: gst/gsttaglist.c:316
+#: gst/gsttaglist.c:331
msgid "geo location movement speed"
msgstr ""
-#: gst/gsttaglist.c:317
+#: gst/gsttaglist.c:332
msgid ""
"movement speed of the capturing device while performing the capture in m/s"
msgstr ""
-#: gst/gsttaglist.c:320
+#: gst/gsttaglist.c:335
msgid "geo location movement direction"
msgstr ""
-#: gst/gsttaglist.c:321
+#: gst/gsttaglist.c:336
msgid ""
"indicates the movement direction of the device performing the capture of a "
"media. It is represented as degrees in floating point representation, 0 "
"means the geographic north, and increases clockwise"
msgstr ""
-#: gst/gsttaglist.c:326
+#: gst/gsttaglist.c:341
msgid "geo location capture direction"
msgstr ""
-#: gst/gsttaglist.c:327
+#: gst/gsttaglist.c:342
msgid ""
"indicates the direction the device is pointing to when capturing a media. "
"It is represented as degrees in floating point representation, 0 means the "
@@ -854,117 +854,117 @@ msgid ""
msgstr ""
#. TRANSLATORS: 'show name' = 'TV/radio/podcast show name' here
-#: gst/gsttaglist.c:333
+#: gst/gsttaglist.c:348
msgid "show name"
msgstr ""
-#: gst/gsttaglist.c:334
+#: gst/gsttaglist.c:349
msgid "Name of the tv/podcast/series show the media is from"
msgstr ""
#. TRANSLATORS: 'show sortname' = 'TV/radio/podcast show name as used for sorting purposes' here
-#: gst/gsttaglist.c:338
+#: gst/gsttaglist.c:354
msgid "show sortname"
msgstr ""
-#: gst/gsttaglist.c:339
+#: gst/gsttaglist.c:355
msgid ""
"Name of the tv/podcast/series show the media is from, for sorting purposes"
msgstr ""
-#: gst/gsttaglist.c:342
+#: gst/gsttaglist.c:358
msgid "episode number"
msgstr ""
-#: gst/gsttaglist.c:343
+#: gst/gsttaglist.c:359
msgid "The episode number in the season the media is part of"
msgstr ""
-#: gst/gsttaglist.c:346
+#: gst/gsttaglist.c:362
msgid "season number"
msgstr ""
-#: gst/gsttaglist.c:347
+#: gst/gsttaglist.c:363
msgid "The season number of the show the media is part of"
msgstr ""
-#: gst/gsttaglist.c:350
+#: gst/gsttaglist.c:366
msgid "lyrics"
msgstr ""
-#: gst/gsttaglist.c:350
+#: gst/gsttaglist.c:366
msgid "The lyrics of the media, commonly used for songs"
msgstr ""
-#: gst/gsttaglist.c:353
+#: gst/gsttaglist.c:369
msgid "composer sortname"
msgstr ""
-#: gst/gsttaglist.c:354
+#: gst/gsttaglist.c:370
msgid "person(s) who composed the recording, for sorting purposes"
msgstr ""
-#: gst/gsttaglist.c:356
+#: gst/gsttaglist.c:372
msgid "grouping"
msgstr ""
-#: gst/gsttaglist.c:357
+#: gst/gsttaglist.c:373
msgid ""
"Groups related media that spans multiple tracks, like the different pieces "
"of a concerto. It is a higher level than a track, but lower than an album"
msgstr ""
-#: gst/gsttaglist.c:361
+#: gst/gsttaglist.c:377
msgid "user rating"
msgstr ""
-#: gst/gsttaglist.c:362
+#: gst/gsttaglist.c:378
msgid ""
"Rating attributed by a user. The higher the rank, the more the user likes "
"this media"
msgstr ""
-#: gst/gsttaglist.c:365
+#: gst/gsttaglist.c:381
msgid "device manufacturer"
msgstr ""
-#: gst/gsttaglist.c:366
+#: gst/gsttaglist.c:382
msgid "Manufacturer of the device used to create this media"
msgstr ""
-#: gst/gsttaglist.c:368
+#: gst/gsttaglist.c:384
msgid "device model"
msgstr ""
-#: gst/gsttaglist.c:369
+#: gst/gsttaglist.c:385
msgid "Model of the device used to create this media"
msgstr ""
-#: gst/gsttaglist.c:371
+#: gst/gsttaglist.c:387
msgid "application name"
msgstr ""
-#: gst/gsttaglist.c:371
+#: gst/gsttaglist.c:388
msgid "Application used to create the media"
msgstr ""
-#: gst/gsttaglist.c:373
+#: gst/gsttaglist.c:390
msgid "application data"
msgstr ""
-#: gst/gsttaglist.c:374
+#: gst/gsttaglist.c:391
msgid "Arbitrary application data to be serialized into the media"
msgstr ""
-#: gst/gsttaglist.c:376
+#: gst/gsttaglist.c:393
msgid "image orientation"
msgstr ""
-#: gst/gsttaglist.c:377
+#: gst/gsttaglist.c:394
msgid "How the image should be rotated or flipped before display"
msgstr ""
-#: gst/gsttaglist.c:416
+#: gst/gsttaglist.c:433
msgid ", "
msgstr ""
@@ -1048,25 +1048,25 @@ msgstr ""
msgid "empty pipeline not allowed"
msgstr ""
-#: libs/gst/base/gstbasesrc.c:2367
+#: libs/gst/base/gstbasesrc.c:2365
msgid "Internal clock error."
msgstr ""
-#: libs/gst/base/gstbasesrc.c:2709 libs/gst/base/gstbasesrc.c:2718
-#: libs/gst/base/gstbasesink.c:3715 plugins/elements/gstqueue.c:1175
-#: plugins/elements/gstqueue2.c:2577
+#: libs/gst/base/gstbasesrc.c:2707 libs/gst/base/gstbasesrc.c:2716
+#: libs/gst/base/gstbasesink.c:3748 plugins/elements/gstqueue.c:1175
+#: plugins/elements/gstqueue2.c:2550
msgid "Internal data flow error."
msgstr ""
-#: libs/gst/base/gstbasesink.c:2697
+#: libs/gst/base/gstbasesink.c:2708
msgid "A lot of buffers are being dropped."
msgstr ""
-#: libs/gst/base/gstbasesink.c:3104
+#: libs/gst/base/gstbasesink.c:3115
msgid "Internal data flow problem."
msgstr ""
-#: libs/gst/base/gstbasesink.c:3705
+#: libs/gst/base/gstbasesink.c:3738
msgid "Internal data stream error."
msgstr ""
@@ -1173,79 +1173,79 @@ msgstr ""
msgid "Stream contains no data."
msgstr ""
-#: tools/gst-inspect.c:250
+#: tools/gst-inspect.c:248
msgid "Implemented Interfaces:\n"
msgstr ""
-#: tools/gst-inspect.c:336
+#: tools/gst-inspect.c:334
msgid "readable"
msgstr ""
-#: tools/gst-inspect.c:345
+#: tools/gst-inspect.c:343
msgid "writable"
msgstr ""
-#: tools/gst-inspect.c:349
+#: tools/gst-inspect.c:347
msgid "controllable"
msgstr ""
-#: tools/gst-inspect.c:353
+#: tools/gst-inspect.c:351
msgid "changeable in NULL, READY, PAUSED or PLAYING state"
msgstr ""
-#: tools/gst-inspect.c:355
+#: tools/gst-inspect.c:353
msgid "changeable only in NULL, READY or PAUSED state"
msgstr ""
-#: tools/gst-inspect.c:357
+#: tools/gst-inspect.c:355
msgid "changeable only in NULL or READY state"
msgstr ""
-#: tools/gst-inspect.c:958
+#: tools/gst-inspect.c:956
msgid "Blacklisted files:"
msgstr ""
-#: tools/gst-inspect.c:970 tools/gst-inspect.c:1067
+#: tools/gst-inspect.c:968 tools/gst-inspect.c:1065
msgid "Total count: "
msgstr ""
-#: tools/gst-inspect.c:971
+#: tools/gst-inspect.c:969
#, c-format
msgid "%d blacklisted file"
msgid_plural "%d blacklisted files"
msgstr[0] ""
msgstr[1] ""
-#: tools/gst-inspect.c:1068
+#: tools/gst-inspect.c:1066
#, c-format
msgid "%d plugin"
msgid_plural "%d plugins"
msgstr[0] ""
msgstr[1] ""
-#: tools/gst-inspect.c:1071
+#: tools/gst-inspect.c:1069
#, c-format
msgid "%d blacklist entry"
msgid_plural "%d blacklist entries"
msgstr[0] ""
msgstr[1] ""
-#: tools/gst-inspect.c:1076
+#: tools/gst-inspect.c:1074
#, c-format
msgid "%d feature"
msgid_plural "%d features"
msgstr[0] ""
msgstr[1] ""
-#: tools/gst-inspect.c:1514
+#: tools/gst-inspect.c:1511
msgid "Print all elements"
msgstr ""
-#: tools/gst-inspect.c:1516
+#: tools/gst-inspect.c:1513
msgid "Print list of blacklisted files"
msgstr ""
-#: tools/gst-inspect.c:1518
+#: tools/gst-inspect.c:1515
msgid ""
"Print a machine-parsable list of features the specified plugin or all "
"plugins provide.\n"
@@ -1253,20 +1253,20 @@ msgid ""
"automatic plugin installation mechanisms"
msgstr ""
-#: tools/gst-inspect.c:1523
+#: tools/gst-inspect.c:1520
msgid "List the plugin contents"
msgstr ""
-#: tools/gst-inspect.c:1526
+#: tools/gst-inspect.c:1523
msgid "Print supported URI schemes, with the elements that implement them"
msgstr ""
-#: tools/gst-inspect.c:1627
+#: tools/gst-inspect.c:1624
#, c-format
msgid "Could not load plugin file: %s\n"
msgstr ""
-#: tools/gst-inspect.c:1632
+#: tools/gst-inspect.c:1629
#, c-format
msgid "No such element or plugin '%s'\n"
msgstr ""
@@ -1384,7 +1384,7 @@ msgid "Output tags (also known as metadata)"
msgstr ""
#: tools/gst-launch.c:912
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
#: tools/gst-launch.c:914
@@ -1437,7 +1437,7 @@ msgstr ""
msgid "ERROR: the 'pipeline' element wasn't found.\n"
msgstr ""
-#: tools/gst-launch.c:1047 tools/gst-launch.c:1123
+#: tools/gst-launch.c:1047 tools/gst-launch.c:1142
msgid "Setting pipeline to PAUSED ...\n"
msgstr ""
@@ -1469,34 +1469,42 @@ msgstr ""
msgid "ERROR: pipeline doesn't want to play.\n"
msgstr ""
-#: tools/gst-launch.c:1103
+#: tools/gst-launch.c:1107
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
-#: tools/gst-launch.c:1106
+#: tools/gst-launch.c:1111
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
+#: tools/gst-launch.c:1114
msgid "Waiting for EOS...\n"
msgstr ""
-#: tools/gst-launch.c:1111
+#: tools/gst-launch.c:1121
msgid "EOS received - stopping pipeline...\n"
msgstr ""
-#: tools/gst-launch.c:1113
+#: tools/gst-launch.c:1125
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
+#: tools/gst-launch.c:1129
msgid "An error happened while waiting for EOS\n"
msgstr ""
-#: tools/gst-launch.c:1120
+#: tools/gst-launch.c:1139
msgid "Execution ended after %"
msgstr ""
-#: tools/gst-launch.c:1131
+#: tools/gst-launch.c:1150
msgid "Setting pipeline to READY ...\n"
msgstr ""
-#: tools/gst-launch.c:1143
+#: tools/gst-launch.c:1162
msgid "Setting pipeline to NULL ...\n"
msgstr ""
-#: tools/gst-launch.c:1148
+#: tools/gst-launch.c:1167
msgid "Freeing pipeline ...\n"
msgstr ""
diff --git a/po/hu.gmo b/po/hu.gmo
index c1d279c..ff3763d 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index cb710c0..a313e6f 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-11-01 13:39+0100\n"
"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -1121,7 +1121,7 @@ msgstr "nincs „%s” elem"
msgid "Output tags (also known as metadata)"
msgstr "Kimeneti címkék (metaadatok)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1189,12 +1189,20 @@ msgstr "HIBA: az adatcsatorna nem akar lejátszani.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "Leállításkor EOS engedélyezve – EOS kényszerítése az adatcsatornára\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "Leállításkor EOS engedélyezve – EOS kényszerítése az adatcsatornára\n"
+
msgid "Waiting for EOS...\n"
msgstr "Várakozás EOS-ra…\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS érkezett – adatcsatorna leállítása…\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Megszakítás: Adatcsatorna leállítása…\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Hiba történt az EOS-ra várakozáskor\n"
diff --git a/po/id.gmo b/po/id.gmo
index 1282282..3646226 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index c8417cf..41fe05b 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2012-01-28 11:44+0700\n"
"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
"Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -1122,7 +1122,7 @@ msgstr "tak ada elemen \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Tag keluaran (juga dikenal sebagai metadata)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1190,12 +1190,20 @@ msgstr "GALAT: baris pipa tidak ingin diputar.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS pada matikan diaktifkan -- Paksa EOS pada pemipaan\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS pada matikan diaktifkan -- Paksa EOS pada pemipaan\n"
+
msgid "Waiting for EOS...\n"
msgstr "Menunggu untuk EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS diterima - menghentikan baris pipa...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interupsi: Menghentikan baris pipa ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Galat terjadi ketika menunggu EOS\n"
diff --git a/po/it.gmo b/po/it.gmo
index fbc027b..df678d7 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 86b1ace..43251d5 100644
--- a/po/it.po
+++ b/po/it.po
@@ -106,7 +106,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-10-25 10:03+0200\n"
"Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
"Language-Team: Italian <tp@lists.linux.it>\n"
@@ -1299,7 +1299,7 @@ msgstr "nessun elemento «%s»"
msgid "Output tags (also known as metadata)"
msgstr "Stampa i tag (anche noti come metadati)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
# -v, --verbose
@@ -1376,12 +1376,20 @@ msgstr "ERRORE: la pipeline non vuole riprodurre.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS all'arresto abilitato -- Forzato EOS sulla pipeline\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS all'arresto abilitato -- Forzato EOS sulla pipeline\n"
+
msgid "Waiting for EOS...\n"
msgstr "In attesa di EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Ricevuto EOS - arresto della pipeline...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrotto: arresto della pipeline ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Si è verificato un errore durante l'attesa di EOS\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index 34c5221..7cbc23d 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 183808c..88425c2 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.20.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2008-10-16 19:57+0900\n"
"Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -1103,7 +1103,7 @@ msgstr "エレメント \"%s\" がありません"
msgid "Output tags (also known as metadata)"
msgstr "タグ (メタデータ) を出力する"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1172,6 +1172,9 @@ msgstr ""
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
@@ -1179,6 +1182,10 @@ msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr "割り込み: パイプラインを停止しています...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "割り込み: パイプラインを停止しています...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/lt.gmo b/po/lt.gmo
index d6865b6..6d3b5b9 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 428c2a1..e3fe79c 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-07-16 00:50+0300\n"
"Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -1131,7 +1131,7 @@ msgstr "nėra elemento „%s“"
msgid "Output tags (also known as metadata)"
msgstr "Išvesti žymas (dar žinomas kaip metaduomenys)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1199,12 +1199,20 @@ msgstr "KLAIDA: konvejeris nepradeda groti.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "Įjungtas EOS išjungiant – priverstinai naudojama EOS konvejeryje\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "Įjungtas EOS išjungiant – priverstinai naudojama EOS konvejeryje\n"
+
msgid "Waiting for EOS...\n"
msgstr "Laukiama EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS gautas – stabdomas konvejeris...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Pertraukimas: stabdomas konvejeris...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Įvyko klaida laukiant EOS\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index 7602a13..f0b9e74 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index cd8bb27..eb3fcc9 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-10-24 21:36+0200\n"
"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
"Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -1090,7 +1090,7 @@ msgstr "ingen element «%s»"
msgid "Output tags (also known as metadata)"
msgstr ""
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1158,12 +1158,18 @@ msgstr ""
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/nl.gmo b/po/nl.gmo
index 4cff0b7..344dc97 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 64eb2e0..11627b7 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-04-26 23:10+0200\n"
"Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -1136,7 +1136,7 @@ msgstr "geen element \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Tags (ook bekend als metadata) weergeven"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1204,12 +1204,20 @@ msgstr "FOUT: pijplijn wil niet afspelen.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS bij afsluiten ingeschakeld -- Forceer een EOS op de pijplijn\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS bij afsluiten ingeschakeld -- Forceer een EOS op de pijplijn\n"
+
msgid "Waiting for EOS...\n"
msgstr "Wacht op EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS ontvangen - pijplijn wordt gestopt...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrupt: Pijplijn ingesteld op gestopt ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Er trad een fout op bij het wachten op EOS\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 8ffb6dd..bafe73a 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 56e76f7..29de711 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-04-26 17:54+0200\n"
"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -1132,7 +1132,7 @@ msgstr "brak elementu \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Wypisanie znaczników (znanych także jako metadane)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1200,12 +1200,20 @@ msgstr "BŁĄD: potok odmawia odtwarzania.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "Włączony EOS przy wyłączaniu - wymuszanie EOS w potoku\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "Włączony EOS przy wyłączaniu - wymuszanie EOS w potoku\n"
+
msgid "Waiting for EOS...\n"
msgstr "Oczekiwanie na EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Otrzymano EOS - zatrzymywanie potoku...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Przerwanie: Zatrzymywanie potoku...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Wystąpił błąd w trakcie oczekiwania na EOS\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 24b28cc..c8404d8 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 9dbb9e4..2aab407 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,7 +17,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.10.31.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-01-08 01:36-0300\n"
"Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
"Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
@@ -1146,7 +1146,7 @@ msgstr "nenhum elemento \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Exibir etiquetas (metadados)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1219,12 +1219,22 @@ msgstr ""
"Finalizar fluxo ao desligar habilitado -- Forçando finalização do fluxo na "
"fila de processamento\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Finalizar fluxo ao desligar habilitado -- Forçando finalização do fluxo na "
+"fila de processamento\n"
+
msgid "Waiting for EOS...\n"
msgstr "Esperando pelo final do fluxo...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Final do fluxo recebido - parando a fila de processamento...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Interrupção: Parando a fila de processamento...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Um erro ocorreu ao esperar pelo final do fluxo\n"
diff --git a/po/ro.gmo b/po/ro.gmo
index db42dee..82dff00 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 14941bb..d89e598 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-08-16 01:10+0300\n"
"Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -1150,7 +1150,7 @@ msgstr "niciun element „%s”"
msgid "Output tags (also known as metadata)"
msgstr "Marcaje de ieșire (cunoscute și ca „metadata”)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1218,12 +1218,20 @@ msgstr "EROARE: linia de asamblare nu vrea să redea.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS la închidere activat -- Se forțează EOS pe linia de asamblare\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS la închidere activat -- Se forțează EOS pe linia de asamblare\n"
+
msgid "Waiting for EOS...\n"
msgstr "Se așteaptă EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS primit - se oprește linia de asamblare...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Întrerupere: Se oprește linia de asamblare ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "A apărut o eroare în timp ce se aștepta EOS\n"
diff --git a/po/ru.gmo b/po/ru.gmo
index 01d76de..9a2467a 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index ac6d4f0..d00d4de 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-04-26 20:25+0400\n"
"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
"Language-Team: Russian <gnu@mx.ru>\n"
@@ -1131,7 +1131,7 @@ msgstr "элемент «%s» не найден"
msgid "Output tags (also known as metadata)"
msgstr "Выводить теги (метаданные)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1199,12 +1199,20 @@ msgstr "ОШИБКА: конвейер не хочет воспроизводи
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "Включён EOS при закрытии -- Выдача EOS в конвейер\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "Включён EOS при закрытии -- Выдача EOS в конвейер\n"
+
msgid "Waiting for EOS...\n"
msgstr "Ожидание EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Получен EOS - остановка конвейера...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Прерывание: Остановка конвейера...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Во время ожидания EOS произошла ошибка\n"
diff --git a/po/rw.gmo b/po/rw.gmo
index 3fcef6a..d885b61 100644
--- a/po/rw.gmo
+++ b/po/rw.gmo
Binary files differ
diff --git a/po/rw.po b/po/rw.po
index 7efa344..25bd509 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -15,7 +15,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.8\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2005-04-04 10:55-0700\n"
"Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
@@ -1304,7 +1304,7 @@ msgstr "Oya Ikigize:"
msgid "Output tags (also known as metadata)"
msgstr "Nka"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
#, fuzzy
@@ -1381,12 +1381,18 @@ msgstr "Kuri Gukina"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/sk.gmo b/po/sk.gmo
index 44679e8..50b9c95 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index bb0aed0..f7382b0 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.30.3\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-11-08 16:13+0100\n"
"Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
"Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -1144,7 +1144,7 @@ msgstr "prvok \"%s\" neexistuje"
msgid "Output tags (also known as metadata)"
msgstr "Vypísať značky (známe tiež ako metadáta)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1215,12 +1215,20 @@ msgstr "CHYBA: Rúra nechce hrať.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS pri vypnutí je povolený -- Vynucujem EOS pre rúru\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS pri vypnutí je povolený -- Vynucujem EOS pre rúru\n"
+
msgid "Waiting for EOS...\n"
msgstr "Čakám na EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Prijatý EOS - zastavujem rúru ...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Prerušenie: Zastavujem rúru ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Počas čakania na EOS nastala chyba\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index df524c0..20b25c6 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index cbbb25d..aeb5819 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2012-03-01 14:05+0100\n"
"Last-Translator: Klemen Košir <klemen.kosir@gmx.com>\n"
"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -1134,7 +1134,7 @@ msgstr "Manjkajoči element: %s\n"
msgid "Output tags (also known as metadata)"
msgstr "Izhodne oznake (znane tudi kot metapodatki)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1202,12 +1202,20 @@ msgstr "NAPAKA: vsebine cevovoda ni mogoče predvajati.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS ob izklopu je omogočen -- vsiljen EOS vsebine cevovoda\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS ob izklopu je omogočen -- vsiljen EOS vsebine cevovoda\n"
+
msgid "Waiting for EOS...\n"
msgstr "Čakanje na EOS ...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Prejet EOS - zaustavljanje cevovoda ...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Prekinitev: zaustavljanje cevovoda ... \n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Med čakanjem na EOS je prišlo do napake\n"
diff --git a/po/sq.gmo b/po/sq.gmo
index 314517e..f0c7c86 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index ce68d23..727a55c 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.4\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2004-08-07 23:46+0200\n"
"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
"Language-Team: Albanian <begraj@hotmail.com>\n"
@@ -1138,7 +1138,7 @@ msgstr "asnjë element \"%s\""
msgid "Output tags (also known as metadata)"
msgstr "Tags e output (njohur gjithashtu si metadata)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1209,12 +1209,18 @@ msgstr "GABIM: pipeline nuk dëshiron të luajë.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/sr.gmo b/po/sr.gmo
index 521cacc..b6d1d6d 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 1473a33..69356e4 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer-0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-12-05 10:40+0200\n"
"Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <gnu@prevod.org>\n"
@@ -1134,7 +1134,7 @@ msgstr "нема елемента „%s“"
msgid "Output tags (also known as metadata)"
msgstr "Излазне ознаке (такође познате и као метаподаци)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1202,12 +1202,20 @@ msgstr "ГРЕШКА: спојка низа не жели да пусти.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "ЕОС је укључен приликом гашења —— Присиљавам ЕОС на спојци низа\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "ЕОС је укључен приликом гашења —— Присиљавам ЕОС на спојци низа\n"
+
msgid "Waiting for EOS...\n"
msgstr "Чекам на ЕОС...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "ЕОС је примљен — заустављам спојку низа…\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Прекид: Заустављам спојку низа ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Дошло је до грешке док сам чекао на ЕОС\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 847b09f..d740a96 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 74743dc..2ce557d 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.31.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-01-09 19:46+0100\n"
"Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -1140,7 +1140,7 @@ msgstr "inget \"%s\"-element"
msgid "Output tags (also known as metadata)"
msgstr "Utmatningstaggar (även känt som metadata)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1209,6 +1209,10 @@ msgstr "FEL: rörledningen vill inte spela.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "EOS vid avständning aktiverad -- Tvingar EOS på rörledningen\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "EOS vid avständning aktiverad -- Tvingar EOS på rörledningen\n"
+
# EOS = End Of Stream
msgid "Waiting for EOS...\n"
msgstr "Väntar på EOS...\n"
@@ -1216,6 +1220,10 @@ msgstr "Väntar på EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "EOS togs emot - stoppar rörledning...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Avbrott: Stoppar rörledningen ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Ett fel inträffade vid väntan på EOS\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index 79ef04d..37eedd4 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 53658f8..4410c95 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.0\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2004-04-03 03:14+0300\n"
"Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -1139,7 +1139,7 @@ msgstr "\"%s\" öğesi yok"
msgid "Output tags (also known as metadata)"
msgstr "Çıktı etiketleri (metadata olarak da bilinir)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1210,12 +1210,18 @@ msgstr "HATA: boruhattı çalmak istemiyor.\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/po/uk.gmo b/po/uk.gmo
index e97062e..ccb390c 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 5ff70f9..dedf3a1 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.32.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2011-04-30 20:26+0300\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -1128,7 +1128,7 @@ msgstr "немає елемента «%s»"
msgid "Output tags (also known as metadata)"
msgstr "Вивести мітки (також відомі як метадані)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1196,12 +1196,20 @@ msgstr "ПОМИЛКА: канал не може почати відтворен
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "Увімкнено EOS при завершенні - Примусове виведення EOS до каналу\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "Увімкнено EOS при завершенні - Примусове виведення EOS до каналу\n"
+
msgid "Waiting for EOS...\n"
msgstr "Очікування на EOS...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Отримано EOS - завершення роботи каналу...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Переривання: зупинка каналу...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Під час очікування на EOS сталася помилка\n"
diff --git a/po/vi.gmo b/po/vi.gmo
index a2b8fa4..d6f7684 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 34830f6..31951b1 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.29.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-10-03 19:09+1030\n"
"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
"Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -1129,7 +1129,7 @@ msgstr "không có yếu tố « %s »"
msgid "Output tags (also known as metadata)"
msgstr "Thể xuất (cũng được biết là siêu dữ liệu)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1199,12 +1199,22 @@ msgstr ""
"Kết thúc luồng khi tắt phần mềm vẫn còn hoạt động thì đang ép buộc kết thúc "
"luồng trên đường ống\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+"Kết thúc luồng khi tắt phần mềm vẫn còn hoạt động thì đang ép buộc kết thúc "
+"luồng trên đường ống\n"
+
msgid "Waiting for EOS...\n"
msgstr "Đang đợi kết thúc luồng...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "Nhận được tín hiệu kết thúc luồng: đang ngừng chạy đường ống ...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "Ngắt: đang ngừng chạy đường ống ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "Gặp lỗi trong khi đợi kết thúc luồng\n"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 0639218..00cd886 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 5a42a6f..687551a 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.10.25.2\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2010-02-02 18:58+0800\n"
"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -1101,7 +1101,7 @@ msgstr "无组件“%s”"
msgid "Output tags (also known as metadata)"
msgstr "输出标识(也可认为是元数据)"
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1170,12 +1170,20 @@ msgstr "错误: 管道不想播放。\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr "允许关闭时发出 EOS 信号 —— 强制对管道发出 EOS 信号\n"
+#, fuzzy
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr "允许关闭时发出 EOS 信号 —— 强制对管道发出 EOS 信号\n"
+
msgid "Waiting for EOS...\n"
msgstr "等待 EOS 信号...\n"
msgid "EOS received - stopping pipeline...\n"
msgstr "收到 EOS 信号 - 中止管道 ...\n"
+#, fuzzy
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr "中断: 中止管道 ...\n"
+
msgid "An error happened while waiting for EOS\n"
msgstr "等待 EOS 信号时出现一个错误\n"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index 17b7fdc..f25a1bf 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index af719f3..cec0e49 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: gstreamer 0.8.8\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2012-05-13 15:53+0200\n"
+"POT-Creation-Date: 2012-06-07 15:42+0200\n"
"PO-Revision-Date: 2005-04-27 14:55+0800\n"
"Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
"Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -1117,7 +1117,7 @@ msgstr "“%s” 元件不存在"
msgid "Output tags (also known as metadata)"
msgstr ""
-msgid "Ouput TOC (chapters and editions)"
+msgid "Output TOC (chapters and editions)"
msgstr ""
msgid "Output status information and property notifications"
@@ -1188,12 +1188,18 @@ msgstr "錯誤:管線無法執行。\n"
msgid "EOS on shutdown enabled -- Forcing EOS on the pipeline\n"
msgstr ""
+msgid "EOS on shutdown enabled -- waiting for EOS after Error\n"
+msgstr ""
+
msgid "Waiting for EOS...\n"
msgstr ""
msgid "EOS received - stopping pipeline...\n"
msgstr ""
+msgid "Interrupt while waiting for EOS - stopping pipeline...\n"
+msgstr ""
+
msgid "An error happened while waiting for EOS\n"
msgstr ""
diff --git a/tests/Makefile.in b/tests/Makefile.in
index ab64603..48f1506 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = tests
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -256,6 +257,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -408,7 +413,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/benchmarks/Makefile.in b/tests/benchmarks/Makefile.in
index 17b0c45..c4c72ad 100644
--- a/tests/benchmarks/Makefile.in
+++ b/tests/benchmarks/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = caps$(EXEEXT) capsnego$(EXEEXT) complexity$(EXEEXT) \
controller$(EXEEXT) init$(EXEEXT) mass-elements$(EXEEXT) \
gstpollstress$(EXEEXT) gstclockstress$(EXEEXT) \
@@ -293,6 +294,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -445,7 +450,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index b261337..83d9d13 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -52,6 +52,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in $(top_srcdir)/common/check.mak
check_PROGRAMS = gst/gstatomicqueue$(EXEEXT) gst/gstbuffer$(EXEEXT) \
@@ -854,6 +855,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -1006,7 +1011,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/check/elements/funnel.c b/tests/check/elements/funnel.c
index 3a4ed01..3aaff1a 100644
--- a/tests/check/elements/funnel.c
+++ b/tests/check/elements/funnel.c
@@ -93,10 +93,10 @@ release_test_objects (struct TestData *td)
GST_STATE_CHANGE_SUCCESS);
gst_object_unref (td->funnelsrc);
- gst_object_unref (td->funnelsink11);
gst_element_release_request_pad (td->funnel, td->funnelsink11);
- gst_object_unref (td->funnelsink22);
+ gst_object_unref (td->funnelsink11);
gst_element_release_request_pad (td->funnel, td->funnelsink22);
+ gst_object_unref (td->funnelsink22);
gst_caps_unref (td->mycaps);
gst_object_unref (td->funnel);
@@ -150,6 +150,87 @@ GST_START_TEST (test_funnel_simple)
GST_END_TEST;
+guint num_eos = 0;
+
+static gboolean
+eos_event_func (GstPad * pad, GstObject * parent, GstEvent * event)
+{
+ if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
+ ++num_eos;
+
+ return gst_pad_event_default (pad, parent, event);
+}
+
+GST_START_TEST (test_funnel_eos)
+{
+ struct TestData td;
+
+ setup_test_objects (&td, chain_ok);
+
+ num_eos = 0;
+ bufcount = 0;
+
+ gst_pad_set_event_function (td.mysink, eos_event_func);
+
+ fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_OK);
+ fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_OK);
+
+ fail_unless (bufcount == 2);
+
+ fail_unless (gst_pad_push_event (td.mysrc1, gst_event_new_eos ()));
+ fail_unless (num_eos == 0);
+
+ fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_EOS);
+ fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_OK);
+
+ fail_unless (bufcount == 3);
+
+ fail_unless (gst_pad_push_event (td.mysrc2, gst_event_new_eos ()));
+ fail_unless (num_eos == 1);
+
+ fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_EOS);
+ fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_EOS);
+
+ fail_unless (bufcount == 3);
+
+ fail_unless (gst_pad_push_event (td.mysrc1, gst_event_new_flush_start ()));
+ fail_unless (gst_pad_push_event (td.mysrc1, gst_event_new_flush_stop (TRUE)));
+
+ fail_unless (gst_pad_push (td.mysrc1, gst_buffer_new ()) == GST_FLOW_OK);
+ fail_unless (gst_pad_push (td.mysrc2, gst_buffer_new ()) == GST_FLOW_EOS);
+
+ fail_unless (bufcount == 4);
+
+ fail_unless (gst_pad_unlink (td.mysrc1, td.funnelsink11));
+ gst_element_release_request_pad (td.funnel, td.funnelsink11);
+ gst_object_unref (td.funnelsink11);
+ fail_unless (num_eos == 2);
+
+ td.funnelsink11 = gst_element_get_request_pad (td.funnel, "sink_11");
+ fail_unless (td.funnelsink11 != NULL);
+ fail_unless (!strcmp (GST_OBJECT_NAME (td.funnelsink11), "sink_11"));
+
+ fail_unless (GST_PAD_LINK_SUCCESSFUL (gst_pad_link (td.mysrc1,
+ td.funnelsink11)));
+
+ /* This will fail because everything is EOS already */
+ fail_if (gst_pad_push_event (td.mysrc1, gst_event_new_eos ()));
+ fail_unless (num_eos == 2);
+
+ fail_unless (gst_pad_unlink (td.mysrc1, td.funnelsink11));
+ gst_element_release_request_pad (td.funnel, td.funnelsink11);
+ gst_object_unref (td.funnelsink11);
+ fail_unless (num_eos == 2);
+
+ td.funnelsink11 = gst_element_get_request_pad (td.funnel, "sink_11");
+ fail_unless (td.funnelsink11 != NULL);
+ fail_unless (!strcmp (GST_OBJECT_NAME (td.funnelsink11), "sink_11"));
+
+ release_test_objects (&td);
+}
+
+GST_END_TEST;
+
static Suite *
funnel_suite (void)
{
@@ -163,6 +244,7 @@ funnel_suite (void)
tc_chain = tcase_create ("funnel simple");
tcase_add_test (tc_chain, test_funnel_simple);
+ tcase_add_test (tc_chain, test_funnel_eos);
suite_add_tcase (s, tc_chain);
return s;
diff --git a/tests/check/elements/valve.c b/tests/check/elements/valve.c
index 932687c..417dae1 100644
--- a/tests/check/elements/valve.c
+++ b/tests/check/elements/valve.c
@@ -67,9 +67,9 @@ GST_START_TEST (test_valve_basic)
fail_unless (gst_pad_push_event (src, gst_event_new_eos ()) == TRUE);
fail_unless (event_received == TRUE);
- fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
- fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
- fail_unless (g_list_length (buffers) == 2);
+ fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
+ fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
+ fail_unless (buffers == NULL);
caps = gst_pad_query_caps (src, NULL);
templ_caps = gst_pad_get_pad_template_caps (src);
fail_unless (caps && gst_caps_is_equal (caps, templ_caps));
@@ -77,13 +77,16 @@ GST_START_TEST (test_valve_basic)
gst_caps_unref (caps);
gst_check_drop_buffers ();
+ fail_unless (gst_pad_push_event (src, gst_event_new_flush_start ()) == TRUE);
+ fail_unless (gst_pad_push_event (src,
+ gst_event_new_flush_stop (TRUE)) == TRUE);
event_received = buffer_allocated = FALSE;
g_object_set (valve, "drop", TRUE, NULL);
fail_unless (gst_pad_push_event (src, gst_event_new_eos ()) == TRUE);
fail_unless (event_received == FALSE);
- fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
- fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_OK);
+ fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
+ fail_unless (gst_pad_push (src, gst_buffer_new ()) == GST_FLOW_EOS);
fail_unless (buffers == NULL);
caps = gst_pad_query_caps (src, NULL);
templ_caps = gst_pad_get_pad_template_caps (src);
diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c
index b028958..7535945 100644
--- a/tests/check/gst/gstbin.c
+++ b/tests/check/gst/gstbin.c
@@ -1158,6 +1158,117 @@ GST_START_TEST (test_many_bins)
GST_END_TEST;
+static GstPadProbeReturn
+fakesrc_pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, void *arg)
+{
+ GstPipeline *pipeline = (GstPipeline *) arg;
+ GstElement *src, *sink;
+
+ src = gst_bin_get_by_name (GST_BIN (pipeline), "fakesrc");
+ fail_unless (src != NULL, "Could not get fakesrc");
+
+ sink = gst_element_factory_make ("fakesink", "fakesink");
+ fail_unless (sink != NULL, "Could not create fakesink");
+
+ g_object_set (sink, "state-error", 1, NULL);
+ gst_bin_add (GST_BIN (pipeline), sink);
+
+ gst_element_link (src, sink);
+ gst_element_sync_state_with_parent (sink);
+ gst_object_unref (src);
+
+ return GST_PAD_PROBE_REMOVE;
+}
+
+GST_START_TEST (test_state_failure_unref)
+{
+ GstElement *src, *pipeline;
+ GstPad *srcpad;
+ GstBus *bus;
+ GstStateChangeReturn ret;
+ GstMessage *msg;
+
+ pipeline = gst_pipeline_new (NULL);
+ fail_unless (pipeline != NULL, "Could not create pipeline");
+
+ src = gst_element_factory_make ("fakesrc", "fakesrc");
+ fail_unless (src != NULL, "Could not create fakesrc");
+
+ srcpad = gst_element_get_static_pad (src, "src");
+ fail_unless (srcpad != NULL, "Could not get fakesrc srcpad");
+
+ gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+ fakesrc_pad_blocked_cb, pipeline, NULL);
+ gst_object_unref (srcpad);
+
+ gst_bin_add (GST_BIN (pipeline), src);
+
+ bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+ fail_unless (bus != NULL, "Could not get bus");
+
+ gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+ /* Wait for an error message from our fakesink (added from the
+ pad block callback). */
+ msg = gst_bus_poll (bus, GST_MESSAGE_ERROR, GST_SECOND);
+ fail_if (msg == NULL, "No error message within 1 second");
+ gst_message_unref (msg);
+
+ /* Check that after this failure, we can still stop, and then unref, the
+ pipeline. This should always be possible. */
+ ret = gst_element_set_state (pipeline, GST_STATE_NULL);
+ fail_unless (ret == GST_STATE_CHANGE_SUCCESS, "downward state change failed");
+
+ gst_object_unref (bus);
+ gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
+static void
+on_sync_bus_error (GstBus * bus, GstMessage * msg)
+{
+ fail_if (msg != NULL);
+}
+
+GST_START_TEST (test_state_change_skip)
+{
+ GstElement *sink, *pipeline;
+ GstStateChangeReturn ret;
+ GstBus *bus;
+
+ pipeline = gst_pipeline_new (NULL);
+ fail_unless (pipeline != NULL, "Could not create pipeline");
+
+ bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+ fail_unless (bus != NULL, "Could not get bus");
+
+ /* no errors */
+ gst_bus_enable_sync_message_emission (bus);
+ g_signal_connect (bus, "sync-message::error", (GCallback) on_sync_bus_error,
+ NULL);
+
+ sink = gst_element_factory_make ("fakesink", "fakesink");
+ fail_unless (sink != NULL, "Could not create fakesink");
+ gst_element_set_state (sink, GST_STATE_PAUSED);
+
+ g_object_set (sink, "state-error", 5, NULL);
+
+ gst_bin_add (GST_BIN (pipeline), sink);
+ gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+ g_object_set (sink, "state-error", 0, NULL);
+
+ /* Check that after this failure, we can still stop, and then unref, the
+ pipeline. This should always be possible. */
+ ret = gst_element_set_state (pipeline, GST_STATE_NULL);
+ fail_unless (ret == GST_STATE_CHANGE_SUCCESS, "downward state change failed");
+
+ gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
static Suite *
gst_bin_suite (void)
{
@@ -1181,6 +1292,8 @@ gst_bin_suite (void)
tcase_add_test (tc_chain, test_iterate_sorted);
tcase_add_test (tc_chain, test_link_structure_change);
tcase_add_test (tc_chain, test_state_failure_remove);
+ tcase_add_test (tc_chain, test_state_failure_unref);
+ tcase_add_test (tc_chain, test_state_change_skip);
/* fails on OSX build bot for some reason, and is a bit silly anyway */
if (0)
diff --git a/tests/check/gst/gstelementfactory.c b/tests/check/gst/gstelementfactory.c
index cd57387..52a668f 100644
--- a/tests/check/gst/gstelementfactory.c
+++ b/tests/check/gst/gstelementfactory.c
@@ -18,6 +18,7 @@
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
+#include "../../gst/gst_private.h"
#include <gst/check/gstcheck.h>
diff --git a/tests/check/gst/gstevent.c b/tests/check/gst/gstevent.c
index 173bce1..b16b023 100644
--- a/tests/check/gst/gstevent.c
+++ b/tests/check/gst/gstevent.c
@@ -185,7 +185,7 @@ GST_START_TEST (create_events)
GstTagList *taglist = gst_tag_list_new_empty ();
GstTagList *tl2 = NULL;
- event = gst_event_new_tag (taglist);
+ event = gst_event_new_tag ("test", taglist);
fail_if (taglist == NULL);
fail_if (event == NULL);
fail_unless (GST_EVENT_TYPE (event) == GST_EVENT_TAG);
diff --git a/tests/check/gst/gstmessage.c b/tests/check/gst/gstmessage.c
index 91f4e38..deea587 100644
--- a/tests/check/gst/gstmessage.c
+++ b/tests/check/gst/gstmessage.c
@@ -113,7 +113,7 @@ GST_START_TEST (test_parsing)
fail_if (tag == NULL);
/* FIXME, check the actual tags */
gst_message_unref (message);
- gst_tag_list_free (tag);
+ gst_tag_list_unref (tag);
}
/* GST_MESSAGE_BUFFERING */
{
diff --git a/tests/check/gst/gstplugin.c b/tests/check/gst/gstplugin.c
index 0824b06..c4c3395 100644
--- a/tests/check/gst/gstplugin.c
+++ b/tests/check/gst/gstplugin.c
@@ -161,12 +161,16 @@ GST_END_TEST;
GST_START_TEST (test_find_feature)
{
GstPluginFeature *feature;
+ GstPlugin *plugin;
feature = gst_registry_find_feature (gst_registry_get (),
"identity", GST_TYPE_ELEMENT_FACTORY);
fail_if (feature == NULL, "Failed to find identity element factory");
- fail_if (strcmp (feature->plugin_name, "coreelements"),
- "Expected identity to be from coreelements plugin");
+
+ plugin = gst_plugin_feature_get_plugin (feature);
+ fail_unless (plugin != NULL);
+ fail_unless_equals_string (gst_plugin_get_name (plugin), "coreelements");
+ gst_object_unref (plugin);
fail_if (GST_OBJECT_REFCOUNT_VALUE (feature) != 2,
"Refcount of feature should be 2");
diff --git a/tests/check/gst/gsttag.c b/tests/check/gst/gsttag.c
index b690e2d..9dcca2d 100644
--- a/tests/check/gst/gsttag.c
+++ b/tests/check/gst/gsttag.c
@@ -66,8 +66,8 @@ check_tags_empty (const GstTagList * list)
#define NEW_LIST_FIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, mode, FTAG, FIXED1, FTAG, FIXED2, \
FTAG, FIXED3, FTAG, FIXED4, NULL); \
mark_point(); \
@@ -75,8 +75,8 @@ G_STMT_START { \
#define NEW_LIST_UNFIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, mode, UTAG, UNFIXED1, UTAG, UNFIXED2, \
UTAG, UNFIXED3, UTAG, UNFIXED4, NULL); \
mark_point(); \
@@ -84,56 +84,56 @@ G_STMT_START { \
#define NEW_LISTS_FIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1, \
FTAG, FIXED2, NULL); \
- if (list2) gst_tag_list_free (list2); \
- list2 = gst_tag_list_new_empty (); \
+ if (list2) gst_tag_list_unref (list2); \
+ list2 = gst_tag_list_new_empty (); \
gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3, \
FTAG, FIXED4, NULL); \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
#define NEW_LISTS_UNFIXED(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, UTAG, UNFIXED1, \
UTAG, UNFIXED2, NULL); \
- if (list2) gst_tag_list_free (list2); \
- list2 = gst_tag_list_new_empty (); \
+ if (list2) gst_tag_list_unref (list2); \
+ list2 = gst_tag_list_new_empty (); \
gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, UTAG, UNFIXED3,\
UTAG, UNFIXED4, NULL); \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
#define NEW_LISTS_EMPTY1(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
+ if (list) gst_tag_list_unref (list); \
list = NULL; \
- if (list2) gst_tag_list_free (list2); \
- list2 = gst_tag_list_new_empty (); \
+ if (list2) gst_tag_list_unref (list2); \
+ list2 = gst_tag_list_new_empty (); \
gst_tag_list_add (list2, GST_TAG_MERGE_APPEND, FTAG, FIXED3, \
FTAG, FIXED4, NULL); \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
-#define NEW_LISTS_EMPTY2(mode) \
+#define NEW_LISTS_EMPTY2(mode) \
G_STMT_START { \
- if (list) gst_tag_list_free (list); \
- list = gst_tag_list_new_empty (); \
+ if (list) gst_tag_list_unref (list); \
+ list = gst_tag_list_new_empty (); \
gst_tag_list_add (list, GST_TAG_MERGE_APPEND, FTAG, FIXED1, \
FTAG, FIXED2, NULL); \
- if (list2) gst_tag_list_free (list2); \
+ if (list2) gst_tag_list_unref (list2); \
list2 = NULL; \
- if (merge) gst_tag_list_free (merge); \
+ if (merge) gst_tag_list_unref (merge); \
merge = gst_tag_list_merge (list, list2, mode); \
mark_point(); \
} G_STMT_END;
@@ -185,7 +185,7 @@ GST_START_TEST (test_add)
/* clean up */
if (list)
- gst_tag_list_free (list);
+ gst_tag_list_unref (list);
}
GST_END_TEST
@@ -256,11 +256,11 @@ GST_START_TEST (test_merge)
/* clean up */
if (list)
- gst_tag_list_free (list);
+ gst_tag_list_unref (list);
if (list2)
- gst_tag_list_free (list2);
+ gst_tag_list_unref (list2);
if (merge)
- gst_tag_list_free (merge);
+ gst_tag_list_unref (merge);
}
GST_END_TEST
@@ -282,7 +282,7 @@ GST_START_TEST (test_date_tags)
fail_if (tag_list2 == NULL);
fail_if (!gst_tag_list_get_date (tag_list2, GST_TAG_DATE, &date2));
fail_unless (gst_tag_list_is_equal (tag_list2, tag_list));
- gst_tag_list_free (tag_list2);
+ gst_tag_list_unref (tag_list2);
g_free (str);
fail_if (g_date_compare (date, date2) != 0);
@@ -294,7 +294,7 @@ GST_START_TEST (test_date_tags)
fail_if (g_date_get_year (date2) != 2005);
g_date_free (date2);
- gst_tag_list_free (tag_list);
+ gst_tag_list_unref (tag_list);
g_date_free (date);
}
@@ -306,13 +306,9 @@ GST_START_TEST (test_type)
taglist = gst_tag_list_new_empty ();
fail_unless (GST_IS_TAG_LIST (taglist));
- fail_unless (gst_is_tag_list (taglist));
- gst_tag_list_free (taglist);
+ gst_tag_list_unref (taglist);
- /* this isn't okay */
- ASSERT_CRITICAL (fail_if (gst_is_tag_list (NULL)));
-
- /* this however should be fine */
+ /* this should be fine */
fail_if (GST_IS_TAG_LIST (NULL));
/* check gst_tag_list_is_empty */
@@ -321,7 +317,7 @@ GST_START_TEST (test_type)
fail_unless (gst_tag_list_is_empty (taglist));
gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "JD", NULL);
fail_if (gst_tag_list_is_empty (taglist));
- gst_tag_list_free (taglist);
+ gst_tag_list_unref (taglist);
}
GST_END_TEST;
@@ -340,7 +336,7 @@ GST_START_TEST (test_set_non_utf8_string)
/* That string field with a non-UTF8 string should not have been added */
fail_unless (gst_tag_list_is_empty (taglist));
- gst_tag_list_free (taglist);
+ gst_tag_list_unref (taglist);
}
GST_END_TEST;
@@ -380,7 +376,7 @@ GST_START_TEST (test_buffer_tags)
gst_buffer_unref (buf1);
gst_buffer_unref (buf2);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -399,7 +395,7 @@ GST_START_TEST (test_empty_tags)
ASSERT_WARNING (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
GST_TAG_ARTIST, "", NULL));
gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "xyz", NULL);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -425,7 +421,7 @@ GST_START_TEST (test_new_full)
fail_unless_equals_float (track_gain, 4.242);
fail_unless (tags != NULL);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
g_free (artist);
g_free (title);
}
@@ -448,7 +444,7 @@ GST_START_TEST (test_merge_strings_with_comma)
fail_unless (strstr (artists, "Bar") != NULL);
fail_unless (strstr (artists, "Yay") != NULL);
g_free (artists);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -484,8 +480,32 @@ GST_START_TEST (test_equal)
9.87654310, NULL);
fail_unless (!gst_tag_list_is_equal (tags2, tags));
- gst_tag_list_free (tags);
- gst_tag_list_free (tags2);
+ gst_tag_list_unref (tags);
+ gst_tag_list_unref (tags2);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_writability)
+{
+ GstTagList *tags, *wtags;
+
+ tags = gst_tag_list_new_empty ();
+ gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Foo", NULL);
+
+ /* take ref, should no longer be writable */
+ gst_tag_list_ref (tags);
+ ASSERT_CRITICAL (gst_tag_list_add (tags, GST_TAG_MERGE_APPEND,
+ GST_TAG_ARTIST, "Bar", NULL));
+
+ wtags = gst_tag_list_make_writable (tags);
+ /* should be ok now */
+ gst_tag_list_add (wtags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+ gst_tag_list_unref (wtags);
+
+ /* this too, since we dropped the second ref in make_writable */
+ gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_ARTIST, "Bar", NULL);
+ gst_tag_list_unref (tags);
}
GST_END_TEST;
@@ -508,6 +528,7 @@ gst_tag_suite (void)
tcase_add_test (tc_chain, test_empty_tags);
tcase_add_test (tc_chain, test_new_full);
tcase_add_test (tc_chain, test_equal);
+ tcase_add_test (tc_chain, test_writability);
return s;
}
diff --git a/tests/check/gst/gsttagsetter.c b/tests/check/gst/gsttagsetter.c
index 6acdbd3..16e3168 100644
--- a/tests/check/gst/gsttagsetter.c
+++ b/tests/check/gst/gsttagsetter.c
@@ -112,8 +112,8 @@ GST_START_TEST (test_merge)
NULL);
assert_tag_setter_list_length (setter, 2);
- gst_tag_list_free (list2);
- gst_tag_list_free (list1);
+ gst_tag_list_unref (list2);
+ gst_tag_list_unref (list1);
g_object_unref (enc);
}
@@ -160,9 +160,9 @@ GST_START_TEST (test_merge_modes)
fail_unless_equals_int (tag_list_length (gst_tag_setter_get_tag_list
(setter)), tag_list_length (merged));
- gst_tag_list_free (list1);
- gst_tag_list_free (list2);
- gst_tag_list_free (merged);
+ gst_tag_list_unref (list1);
+ gst_tag_list_unref (list2);
+ gst_tag_list_unref (merged);
gst_object_unref (enc);
}
}
@@ -200,9 +200,9 @@ GST_START_TEST (test_merge_modes_skip_empty)
fail_unless_equals_int (tag_list_length (gst_tag_setter_get_tag_list
(setter)), tag_list_length (merged));
- gst_tag_list_free (list1);
- gst_tag_list_free (list2);
- gst_tag_list_free (merged);
+ gst_tag_list_unref (list1);
+ gst_tag_list_unref (list2);
+ gst_tag_list_unref (merged);
gst_object_unref (enc);
}
}
diff --git a/tests/check/gst/gstutils.c b/tests/check/gst/gstutils.c
index d16341e..f26baa4 100644
--- a/tests/check/gst/gstutils.c
+++ b/tests/check/gst/gstutils.c
@@ -504,7 +504,7 @@ GST_START_TEST (test_element_found_tags)
gst_element_set_state (pipeline, GST_STATE_PLAYING);
srcpad = gst_element_get_static_pad (fakesrc, "src");
- gst_pad_push_event (srcpad, gst_event_new_tag (list));
+ gst_pad_push_event (srcpad, gst_event_new_tag ("test", list));
gst_object_unref (srcpad);
bus = gst_element_get_bus (pipeline);
@@ -1025,6 +1025,7 @@ GST_START_TEST (test_pad_proxy_query_caps_aggregation)
/* test intersection */
caps = gst_caps_new_simple ("foo/bar", "barversion", G_TYPE_INT, 1, NULL);
+ GST_OBJECT_FLAG_UNSET (sink2_sink, GST_PAD_FLAG_FIXED_CAPS);
fail_unless (gst_pad_set_caps (sink2_sink, caps));
gst_pad_use_fixed_caps (sink2_sink);
gst_caps_unref (caps);
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 2b91820..85d8849 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -55,6 +55,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/common/parallel-subdirs.mak
subdir = tests/examples
@@ -262,6 +263,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -414,7 +419,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/adapter/Makefile.in b/tests/examples/adapter/Makefile.in
index eff729e..6c99309 100644
--- a/tests/examples/adapter/Makefile.in
+++ b/tests/examples/adapter/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = adapter_test$(EXEEXT)
subdir = tests/examples/adapter
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -253,6 +254,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -405,7 +410,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/controller/Makefile.in b/tests/examples/controller/Makefile.in
index 9dae073..ffd3b16 100644
--- a/tests/examples/controller/Makefile.in
+++ b/tests/examples/controller/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = audio-example$(EXEEXT) control-sources$(EXEEXT) \
text-color-example$(EXEEXT)
subdir = tests/examples/controller
@@ -262,6 +263,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -414,7 +419,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/helloworld/Makefile.in b/tests/examples/helloworld/Makefile.in
index 0b76d4a..d32e06d 100644
--- a/tests/examples/helloworld/Makefile.in
+++ b/tests/examples/helloworld/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = helloworld$(EXEEXT)
subdir = tests/examples/helloworld
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/helloworld/helloworld.c b/tests/examples/helloworld/helloworld.c
index a659f5b..013ae4d 100644
--- a/tests/examples/helloworld/helloworld.c
+++ b/tests/examples/helloworld/helloworld.c
@@ -16,6 +16,7 @@ bus_call (GstBus * bus, GstMessage * msg, gpointer data)
GError *err;
gst_message_parse_error (msg, &err, &debug);
+ g_printerr ("Debugging info: %s\n", (debug) ? debug : "none");
g_free (debug);
g_print ("Error: %s\n", err->message);
@@ -46,9 +47,9 @@ main (gint argc, gchar * argv[])
return 1;
}
- playbin = gst_element_factory_make ("playbin2", NULL);
+ playbin = gst_element_factory_make ("playbin", NULL);
if (!playbin) {
- g_print ("'playbin2' gstreamer plugin missing\n");
+ g_print ("'playbin' gstreamer plugin missing\n");
return 1;
}
diff --git a/tests/examples/launch/Makefile.in b/tests/examples/launch/Makefile.in
index dc26c1e..0fb702a 100644
--- a/tests/examples/launch/Makefile.in
+++ b/tests/examples/launch/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = mp3parselaunch$(EXEEXT)
subdir = tests/examples/launch
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -253,6 +254,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -405,7 +410,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/manual/Makefile.in b/tests/examples/manual/Makefile.in
index ea8c449..c6e01ed 100644
--- a/tests/examples/manual/Makefile.in
+++ b/tests/examples/manual/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
TESTS = bin$(EXEEXT) elementcreate$(EXEEXT) elementfactory$(EXEEXT) \
elementget$(EXEEXT) elementlink$(EXEEXT) elementmake$(EXEEXT) \
ghostpad$(EXEEXT) init$(EXEEXT)
@@ -359,6 +360,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -511,7 +516,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/metadata/Makefile.in b/tests/examples/metadata/Makefile.in
index a3817bb..d8fc778 100644
--- a/tests/examples/metadata/Makefile.in
+++ b/tests/examples/metadata/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = read-metadata$(EXEEXT)
subdir = tests/examples/metadata
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/metadata/read-metadata.c b/tests/examples/metadata/read-metadata.c
index 52ebfe4..9678862 100644
--- a/tests/examples/metadata/read-metadata.c
+++ b/tests/examples/metadata/read-metadata.c
@@ -69,7 +69,7 @@ message_loop (GstElement * element, GstTagList ** tags)
if (*tags) {
old_tags = *tags;
*tags = gst_tag_list_merge (old_tags, new_tags, GST_TAG_MERGE_KEEP);
- gst_tag_list_free (old_tags);
+ gst_tag_list_unref (old_tags);
} else
*tags = new_tags;
break;
@@ -178,7 +178,7 @@ main (int argc, char *argv[])
if (tags) {
g_print ("Metadata for %s:\n", argv[i]);
gst_tag_list_foreach (tags, print_tag, NULL);
- gst_tag_list_free (tags);
+ gst_tag_list_unref (tags);
tags = NULL;
} else
g_print ("No metadata found for %s\n", argv[i]);
diff --git a/tests/examples/queue/Makefile.in b/tests/examples/queue/Makefile.in
index 9a25fc8..4891ef4 100644
--- a/tests/examples/queue/Makefile.in
+++ b/tests/examples/queue/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = queue$(EXEEXT)
subdir = tests/examples/queue
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/stepping/Makefile.in b/tests/examples/stepping/Makefile.in
index e7d9916..e6d4e1f 100644
--- a/tests/examples/stepping/Makefile.in
+++ b/tests/examples/stepping/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = framestep1$(EXEEXT)
subdir = tests/examples/stepping
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/streams/Makefile.in b/tests/examples/streams/Makefile.in
index 12cb5a0..5187d85 100644
--- a/tests/examples/streams/Makefile.in
+++ b/tests/examples/streams/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = stream-status$(EXEEXT) $(am__EXEEXT_1)
@HAVE_PTHREAD_H_TRUE@am__append_1 = rtpool-test
subdir = tests/examples/streams
@@ -261,6 +262,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -413,7 +418,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/examples/typefind/Makefile.in b/tests/examples/typefind/Makefile.in
index 843995f..a5b5743 100644
--- a/tests/examples/typefind/Makefile.in
+++ b/tests/examples/typefind/Makefile.in
@@ -51,6 +51,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
noinst_PROGRAMS = typefind$(EXEEXT)
subdir = tests/examples/typefind
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
@@ -252,6 +253,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -404,7 +409,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tests/misc/Makefile.in b/tests/misc/Makefile.in
index 2ad1eea..e281b0d 100644
--- a/tests/misc/Makefile.in
+++ b/tests/misc/Makefile.in
@@ -50,6 +50,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
subdir = tests/misc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -217,6 +218,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -369,7 +374,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 4e906d7..c282f92 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -53,6 +53,7 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
+target_triplet = @target@
bin_PROGRAMS = gst-inspect-@GST_API_VERSION@$(EXEEXT) \
gst-typefind-@GST_API_VERSION@$(EXEEXT) $(am__EXEEXT_1)
@GST_DISABLE_PARSE_FALSE@am__append_1 = gst-launch-@GST_API_VERSION@
@@ -318,6 +319,10 @@ GST_VERSION_MICRO = @GST_VERSION_MICRO@
GST_VERSION_MINOR = @GST_VERSION_MINOR@
GST_VERSION_NANO = @GST_VERSION_NANO@
GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
HAVE_DOCBOOK2HTML = @HAVE_DOCBOOK2HTML@
HAVE_DOCBOOK2PS = @HAVE_DOCBOOK2PS@
HAVE_DVIPS = @HAVE_DVIPS@
@@ -470,7 +475,11 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
+target = @target@
target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
index a8000e7..9642ea9 100644
--- a/tools/gst-inspect.c
+++ b/tools/gst-inspect.c
@@ -181,31 +181,29 @@ get_rank_name (char *s, gint rank)
return s;
}
-static gboolean
-print_factory_details_metadata (GQuark field_id, const GValue * value,
- gpointer user_data)
-{
- gchar *val = g_strdup_value_contents (value);
- gchar *key = g_strdup (g_quark_to_string (field_id));
-
- key[0] = g_ascii_toupper (key[0]);
- n_print (" %s:\t\t%s\n", key, val);
- g_free (val);
- g_free (key);
- return TRUE;
-}
-
static void
print_factory_details_info (GstElementFactory * factory)
{
+ gchar **keys, **k;
+ GstRank rank;
char s[20];
+ rank = gst_plugin_feature_get_rank (GST_PLUGIN_FEATURE (factory));
n_print ("Factory Details:\n");
- n_print (" Rank:\t\t%s (%d)\n",
- get_rank_name (s, GST_PLUGIN_FEATURE (factory)->rank),
- GST_PLUGIN_FEATURE (factory)->rank);
- gst_structure_foreach ((GstStructure *) factory->metadata,
- print_factory_details_metadata, NULL);
+ n_print (" Rank:\t\t%s (%d)\n", get_rank_name (s, rank), rank);
+
+ keys = gst_element_factory_get_metadata_keys (factory);
+ if (keys != NULL) {
+ for (k = keys; *k != NULL; ++k) {
+ const gchar *val;
+ gchar *key = *k;
+
+ val = gst_element_factory_get_metadata (factory, key);
+ key[0] = g_ascii_toupper (key[0]);
+ n_print (" %s:\t\t%s\n", key, val);
+ }
+ g_strfreev (keys);
+ }
n_print ("\n");
}
@@ -591,14 +589,14 @@ print_pad_templates_info (GstElement * element, GstElementFactory * factory)
GstStaticPadTemplate *padtemplate;
n_print ("Pad Templates:\n");
- if (!factory->numpadtemplates) {
+ if (gst_element_factory_get_num_pad_templates (factory) == 0) {
n_print (" none\n");
return;
}
gstelement_class = GST_ELEMENT_CLASS (G_OBJECT_GET_CLASS (element));
- pads = factory->staticpadtemplates;
+ pads = gst_element_factory_get_static_pad_templates (factory);
while (pads) {
padtemplate = (GstStaticPadTemplate *) (pads->data);
pads = g_list_next (pads);
@@ -1299,6 +1297,7 @@ static int
print_element_info (GstElementFactory * factory, gboolean print_names)
{
GstElement *element;
+ GstPlugin *plugin;
gint maxlevel = 0;
factory =
@@ -1323,14 +1322,11 @@ print_element_info (GstElementFactory * factory, gboolean print_names)
_name = NULL;
print_factory_details_info (factory);
- if (GST_PLUGIN_FEATURE (factory)->plugin_name) {
- GstPlugin *plugin;
- plugin = gst_registry_find_plugin (gst_registry_get (),
- GST_PLUGIN_FEATURE (factory)->plugin_name);
- if (plugin) {
- print_plugin_info (plugin);
- }
+ plugin = gst_plugin_feature_get_plugin (GST_PLUGIN_FEATURE (factory));
+ if (plugin) {
+ print_plugin_info (plugin);
+ gst_object_unref (plugin);
}
print_hierarchy (G_OBJECT_TYPE (element), 0, &maxlevel);
@@ -1453,22 +1449,21 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory)
static void
print_plugin_automatic_install_info (GstPlugin * plugin)
{
- const gchar *plugin_name;
GList *features, *l;
- plugin_name = gst_plugin_get_name (plugin);
-
/* not interested in typefind factories, only element factories */
features = gst_registry_get_feature_list (gst_registry_get (),
GST_TYPE_ELEMENT_FACTORY);
for (l = features; l != NULL; l = l->next) {
GstPluginFeature *feature;
+ GstPlugin *feature_plugin;
feature = GST_PLUGIN_FEATURE (l->data);
/* only interested in the ones that are in the plugin we just loaded */
- if (g_str_equal (plugin_name, feature->plugin_name)) {
+ feature_plugin = gst_plugin_feature_get_plugin (feature);
+ if (feature_plugin == plugin) {
GstElementFactory *factory;
g_print ("element-%s\n", gst_plugin_feature_get_name (feature));
@@ -1477,6 +1472,8 @@ print_plugin_automatic_install_info (GstPlugin * plugin)
print_plugin_automatic_install_info_protocols (factory);
print_plugin_automatic_install_info_codecs (factory);
}
+ if (feature_plugin)
+ gst_object_unref (feature_plugin);
}
g_list_foreach (features, (GFunc) gst_object_unref, NULL);
diff --git a/tools/gst-launch.c b/tools/gst-launch.c
index 9161594..4abb429 100644
--- a/tools/gst-launch.c
+++ b/tools/gst-launch.c
@@ -466,13 +466,13 @@ print_toc_entry (gpointer data, gpointer user_data)
{
GstTocEntry *entry = (GstTocEntry *) data;
const gchar spc[MAX_INDENT + 1] = " ";
- const gchar *entry_types[] = { "chapter", "edition" };
guint indent = MIN (GPOINTER_TO_UINT (user_data), MAX_INDENT);
gint64 start, stop;
gst_toc_entry_get_start_stop (entry, &start, &stop);
- PRINT ("%s%s:", &spc[MAX_INDENT - indent], entry_types[entry->type]);
+ PRINT ("%s%s:", &spc[MAX_INDENT - indent],
+ gst_toc_entry_type_get_nick (entry->type));
if (GST_CLOCK_TIME_IS_VALID (start)) {
PRINT (" start: %" GST_TIME_FORMAT, GST_TIME_ARGS (start));
}
@@ -484,7 +484,7 @@ print_toc_entry (gpointer data, gpointer user_data)
/* print tags */
gst_tag_list_foreach (entry->tags, print_tag_foreach,
- GINT_TO_POINTER (indent));
+ GUINT_TO_POINTER (indent));
/* loop over sub-toc entries */
g_list_foreach (entry->subentries, print_toc_entry,
@@ -663,7 +663,7 @@ event_loop (GstElement * pipeline, gboolean blocking, GstState target_state)
gst_message_parse_tag (message, &tag_list);
gst_tag_list_foreach (tag_list, print_tag, NULL);
- gst_tag_list_free (tag_list);
+ gst_tag_list_unref (tag_list);
}
break;
case GST_MESSAGE_TOC:
@@ -909,7 +909,7 @@ main (int argc, char *argv[])
{"tags", 't', 0, G_OPTION_ARG_NONE, &tags,
N_("Output tags (also known as metadata)"), NULL},
{"toc", 'c', 0, G_OPTION_ARG_NONE, &toc,
- N_("Ouput TOC (chapters and editions)"), NULL},
+ N_("Output TOC (chapters and editions)"), NULL},
{"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
N_("Output status information and property notifications"), NULL},
{"quiet", 'q', 0, G_OPTION_ARG_NONE, &quiet,
@@ -1099,18 +1099,37 @@ main (int argc, char *argv[])
tfthen = gst_util_get_timestamp ();
caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
- if (eos_on_shutdown && caught_error == ELR_INTERRUPT) {
- PRINT (_("EOS on shutdown enabled -- Forcing EOS on the pipeline\n"));
+ if (eos_on_shutdown && caught_error != ELR_NO_ERROR) {
+ gboolean ignore_errors;
+
waiting_eos = TRUE;
- gst_element_send_event (pipeline, gst_event_new_eos ());
+ if (caught_error == ELR_INTERRUPT) {
+ PRINT (_("EOS on shutdown enabled -- Forcing EOS on the pipeline\n"));
+ gst_element_send_event (pipeline, gst_event_new_eos ());
+ ignore_errors = FALSE;
+ } else {
+ PRINT (_("EOS on shutdown enabled -- waiting for EOS after Error\n"));
+ ignore_errors = TRUE;
+ }
PRINT (_("Waiting for EOS...\n"));
- caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
- if (caught_error == ELR_NO_ERROR) {
- /* we got EOS */
- PRINT (_("EOS received - stopping pipeline...\n"));
- } else if (caught_error == ELR_ERROR) {
- PRINT (_("An error happened while waiting for EOS\n"));
+ while (TRUE) {
+ caught_error = event_loop (pipeline, TRUE, GST_STATE_PLAYING);
+
+ if (caught_error == ELR_NO_ERROR) {
+ /* we got EOS */
+ PRINT (_("EOS received - stopping pipeline...\n"));
+ break;
+ } else if (caught_error == ELR_INTERRUPT) {
+ PRINT (_
+ ("Interrupt while waiting for EOS - stopping pipeline...\n"));
+ break;
+ } else if (caught_error == ELR_ERROR) {
+ if (!ignore_errors) {
+ PRINT (_("An error happened while waiting for EOS\n"));
+ break;
+ }
+ }
}
}
tfnow = gst_util_get_timestamp ();
diff --git a/win32/common/config.h b/win32/common/config.h
index 1d32cf7..577e889 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -62,7 +62,7 @@
#define GST_PACKAGE_ORIGIN "Unknown package origin"
/* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2012-05-13"
+#define GST_PACKAGE_RELEASE_DATETIME "2012-06-07"
/* location of the installed gst-plugin-scanner */
#define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner"
@@ -78,46 +78,46 @@
/* Define to 1 if you have the `clock_gettime' function. */
#undef HAVE_CLOCK_GETTIME
-/* Define if the host CPU is an Alpha */
+/* Define if the target CPU is an Alpha */
#undef HAVE_CPU_ALPHA
-/* Define if the host CPU is an ARM */
+/* Define if the target CPU is an ARM */
#undef HAVE_CPU_ARM
-/* Define if the host CPU is a CRIS */
+/* Define if the target CPU is a CRIS */
#undef HAVE_CPU_CRIS
-/* Define if the host CPU is a CRISv32 */
+/* Define if the target CPU is a CRISv32 */
#undef HAVE_CPU_CRISV32
-/* Define if the host CPU is a HPPA */
+/* Define if the target CPU is a HPPA */
#undef HAVE_CPU_HPPA
-/* Define if the host CPU is an x86 */
+/* Define if the target CPU is an x86 */
#define HAVE_CPU_I386 1
-/* Define if the host CPU is a IA64 */
+/* Define if the target CPU is a IA64 */
#undef HAVE_CPU_IA64
-/* Define if the host CPU is a M68K */
+/* Define if the target CPU is a M68K */
#undef HAVE_CPU_M68K
-/* Define if the host CPU is a MIPS */
+/* Define if the target CPU is a MIPS */
#undef HAVE_CPU_MIPS
-/* Define if the host CPU is a PowerPC */
+/* Define if the target CPU is a PowerPC */
#undef HAVE_CPU_PPC
-/* Define if the host CPU is a 64 bit PowerPC */
+/* Define if the target CPU is a 64 bit PowerPC */
#undef HAVE_CPU_PPC64
-/* Define if the host CPU is a S390 */
+/* Define if the target CPU is a S390 */
#undef HAVE_CPU_S390
-/* Define if the host CPU is a SPARC */
+/* Define if the target CPU is a SPARC */
#undef HAVE_CPU_SPARC
-/* Define if the host CPU is a x86_64 */
+/* Define if the target CPU is a x86_64 */
#undef HAVE_CPU_X86_64
/* Define if the GNU dcgettext() function is already present or preinstalled.
@@ -334,7 +334,7 @@
#define PACKAGE_NAME "GStreamer"
/* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 0.11.91"
+#define PACKAGE_STRING "GStreamer 0.11.92"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gstreamer"
@@ -343,7 +343,7 @@
#undef PACKAGE_URL
/* Define to the version of this package. */
-#define PACKAGE_VERSION "0.11.91"
+#define PACKAGE_VERSION "0.11.92"
/* directory where plugins are located */
#ifdef _DEBUG
@@ -370,11 +370,14 @@
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+/* the target CPU */
+#undef TARGET_CPU
+
/* Define if we should poison deallocated memory */
#undef USE_POISONING
/* Version number of package */
-#define VERSION "0.11.91"
+#define VERSION "0.11.92"
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/gstenumtypes.c b/win32/common/gstenumtypes.c
index 436df4b..27bead8 100644
--- a/win32/common/gstenumtypes.c
+++ b/win32/common/gstenumtypes.c
@@ -1174,6 +1174,7 @@ gst_pad_flags_get_type (void)
static const GFlagsValue values[] = {
{C_FLAGS (GST_PAD_FLAG_BLOCKED), "GST_PAD_FLAG_BLOCKED", "blocked"},
{C_FLAGS (GST_PAD_FLAG_FLUSHING), "GST_PAD_FLAG_FLUSHING", "flushing"},
+ {C_FLAGS (GST_PAD_FLAG_EOS), "GST_PAD_FLAG_EOS", "eos"},
{C_FLAGS (GST_PAD_FLAG_BLOCKING), "GST_PAD_FLAG_BLOCKING", "blocking"},
{C_FLAGS (GST_PAD_FLAG_NEED_PARENT), "GST_PAD_FLAG_NEED_PARENT",
"need-parent"},
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index 3823726..ce04b94 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -338,6 +338,7 @@ EXPORTS
gst_element_factory_find
gst_element_factory_get_element_type
gst_element_factory_get_metadata
+ gst_element_factory_get_metadata_keys
gst_element_factory_get_num_pad_templates
gst_element_factory_get_static_pad_templates
gst_element_factory_get_type
@@ -483,7 +484,6 @@ EXPORTS
gst_int64_range_get_type
gst_int_range_get_type
gst_is_initialized
- gst_is_tag_list
gst_iterator_copy
gst_iterator_filter
gst_iterator_find_custom
@@ -748,6 +748,7 @@ EXPORTS
gst_plugin_error_get_type
gst_plugin_error_quark
gst_plugin_feature_check_version
+ gst_plugin_feature_get_plugin
gst_plugin_feature_get_rank
gst_plugin_feature_get_type
gst_plugin_feature_list_copy
@@ -1041,10 +1042,8 @@ EXPORTS
gst_tag_list_add_valist_values
gst_tag_list_add_value
gst_tag_list_add_values
- gst_tag_list_copy
gst_tag_list_copy_value
gst_tag_list_foreach
- gst_tag_list_free
gst_tag_list_get_boolean
gst_tag_list_get_boolean_index
gst_tag_list_get_buffer
@@ -1089,6 +1088,7 @@ EXPORTS
gst_tag_merge_strings_with_comma
gst_tag_merge_use_first
gst_tag_register
+ gst_tag_register_static
gst_tag_setter_add_tag_valist
gst_tag_setter_add_tag_valist_values
gst_tag_setter_add_tag_value
@@ -1124,12 +1124,15 @@ EXPORTS
gst_toc_entry_copy
gst_toc_entry_free
gst_toc_entry_get_start_stop
+ gst_toc_entry_get_type
gst_toc_entry_new
gst_toc_entry_new_with_pad
gst_toc_entry_set_start_stop
+ gst_toc_entry_type_get_nick
gst_toc_entry_type_get_type
gst_toc_find_entry
gst_toc_free
+ gst_toc_get_type
gst_toc_new
gst_toc_setter_add_toc_entry
gst_toc_setter_get_toc