From 31861969a937d4daec993a07ca57aaeb1122a621 Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Thu, 2 Feb 2012 13:45:25 -0500 Subject: [PATCH 01/12] build: avoid touching .po files during 'make' A simple workaround to deal with GNU gettext automake integration failing to deal with git. https://bugzilla.gnome.org/show_bug.cgi?id=669207 --- autogen.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/autogen.sh b/autogen.sh index 6a06491806..b2e9ee46fd 100755 --- a/autogen.sh +++ b/autogen.sh @@ -35,7 +35,9 @@ then ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit fi - +# GNU gettext automake support doesn't get along with git. +# https://bugzilla.gnome.org/show_bug.cgi?id=661128 +touch -t 200001010000 po/gstreamer-0.10.pot CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-failing-tests --enable-poisoning --enable-gtk-doc --enable-docbook' From 911f072f4c1d9d79a54653da102dd741664002cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 23 Feb 2012 10:36:57 +0000 Subject: [PATCH 02/12] Bump version after releases --- configure.ac | 2 +- docs/plugins/gstreamer-plugins.hierarchy | 1 + docs/plugins/inspect/plugin-coreelements.xml | 4 ++-- docs/plugins/inspect/plugin-coreindexers.xml | 4 ++-- win32/common/config.h | 11 +++++++---- win32/common/gstenumtypes.c | 4 ++++ win32/common/gstversion.h | 2 +- 7 files changed, 18 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 90daf079b9..4fab0c9f18 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ(2.60) 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.10.35.1, +AC_INIT(GStreamer, 0.10.36.1, http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, gstreamer) AG_GST_INIT diff --git a/docs/plugins/gstreamer-plugins.hierarchy b/docs/plugins/gstreamer-plugins.hierarchy index ea81e4aad7..141e3b0def 100644 --- a/docs/plugins/gstreamer-plugins.hierarchy +++ b/docs/plugins/gstreamer-plugins.hierarchy @@ -27,6 +27,7 @@ GObject GstTypeFindElement GstValve GstIndex + GstFileIndex GstMemIndex GstPad GstPadTemplate diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml index e99c7802aa..f67a60b703 100644 --- a/docs/plugins/inspect/plugin-coreelements.xml +++ b/docs/plugins/inspect/plugin-coreelements.xml @@ -3,7 +3,7 @@ standard GStreamer elements ../../plugins/elements/.libs/libgstcoreelements.so libgstcoreelements.so - 0.10.35.1 + 0.10.36.1 LGPL gstreamer GStreamer git @@ -331,4 +331,4 @@ - + \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-coreindexers.xml b/docs/plugins/inspect/plugin-coreindexers.xml index 80f072e2a5..8356f0c9e4 100644 --- a/docs/plugins/inspect/plugin-coreindexers.xml +++ b/docs/plugins/inspect/plugin-coreindexers.xml @@ -3,11 +3,11 @@ GStreamer core indexers ../../plugins/indexers/.libs/libgstcoreindexers.so libgstcoreindexers.so - 0.10.35.1 + 0.10.36.1 LGPL gstreamer GStreamer git Unknown package origin - + \ No newline at end of file diff --git a/win32/common/config.h b/win32/common/config.h index af2c8e5d14..dbc82e4c01 100644 --- a/win32/common/config.h +++ b/win32/common/config.h @@ -65,7 +65,7 @@ #define GST_PACKAGE_ORIGIN "Unknown package origin" /* GStreamer package release date/time for plugins as YYYY-MM-DD */ -#define GST_PACKAGE_RELEASE_DATETIME "2011-06-18T12:45Z" +#define GST_PACKAGE_RELEASE_DATETIME "2012-02-23T10:04Z" /* location of the installed gst-plugin-scanner */ #define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner" @@ -256,6 +256,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_POLL_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PRCTL_H @@ -340,7 +343,7 @@ #define PACKAGE_NAME "GStreamer" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GStreamer 0.10.35.1" +#define PACKAGE_STRING "GStreamer 0.10.36.1" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gstreamer" @@ -349,7 +352,7 @@ #undef PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "0.10.35.1" +#define PACKAGE_VERSION "0.10.36.1" /* directory where plugins are located */ #ifdef _DEBUG @@ -380,7 +383,7 @@ #undef USE_POISONING /* Version number of package */ -#define VERSION "0.10.35.1" +#define VERSION "0.10.36.1" /* 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 7a0f5ae30d..e1edd0d125 100644 --- a/win32/common/gstenumtypes.c +++ b/win32/common/gstenumtypes.c @@ -84,6 +84,7 @@ gst_buffer_copy_flags_get_type (void) {C_FLAGS (GST_BUFFER_COPY_TIMESTAMPS), "GST_BUFFER_COPY_TIMESTAMPS", "timestamps"}, {C_FLAGS (GST_BUFFER_COPY_CAPS), "GST_BUFFER_COPY_CAPS", "caps"}, + {C_FLAGS (GST_BUFFER_COPY_QDATA), "GST_BUFFER_COPY_QDATA", "qdata"}, {0, NULL, NULL} }; @@ -160,6 +161,7 @@ gst_caps_flags_get_type (void) { static gsize id = 0; static const GFlagsValue values[] = { + {C_FLAGS (GST_CAPS_FLAGS_NONE), "GST_CAPS_FLAGS_NONE", "none"}, {C_FLAGS (GST_CAPS_FLAGS_ANY), "GST_CAPS_FLAGS_ANY", "any"}, {0, NULL, NULL} }; @@ -1475,6 +1477,7 @@ gst_alloc_trace_flags_get_type (void) { static gsize id = 0; static const GFlagsValue values[] = { + {C_FLAGS (GST_ALLOC_TRACE_NONE), "GST_ALLOC_TRACE_NONE", "none"}, {C_FLAGS (GST_ALLOC_TRACE_LIVE), "GST_ALLOC_TRACE_LIVE", "live"}, {C_FLAGS (GST_ALLOC_TRACE_MEM_LIVE), "GST_ALLOC_TRACE_MEM_LIVE", "mem-live"}, @@ -1495,6 +1498,7 @@ gst_type_find_probability_get_type (void) { static gsize id = 0; static const GEnumValue values[] = { + {C_ENUM (GST_TYPE_FIND_NONE), "GST_TYPE_FIND_NONE", "none"}, {C_ENUM (GST_TYPE_FIND_MINIMUM), "GST_TYPE_FIND_MINIMUM", "minimum"}, {C_ENUM (GST_TYPE_FIND_POSSIBLE), "GST_TYPE_FIND_POSSIBLE", "possible"}, {C_ENUM (GST_TYPE_FIND_LIKELY), "GST_TYPE_FIND_LIKELY", "likely"}, diff --git a/win32/common/gstversion.h b/win32/common/gstversion.h index 044b1815e7..f1154e21f8 100644 --- a/win32/common/gstversion.h +++ b/win32/common/gstversion.h @@ -57,7 +57,7 @@ G_BEGIN_DECLS * * The micro version of GStreamer at compile time: */ -#define GST_VERSION_MICRO (35) +#define GST_VERSION_MICRO (36) /** * GST_VERSION_NANO: * From 0e8a77f83de9e9900dafe6b756494ecdc57c79ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 23 Feb 2012 12:09:31 +0000 Subject: [PATCH 03/12] Update NEWS and RELEASE as well --- NEWS | 184 ++++++++++++++++++++++++++++++++++++++++++++++- RELEASE | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 392 insertions(+), 8 deletions(-) diff --git a/NEWS b/NEWS index 1149ebbc80..2c5b4c937f 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,186 @@ -This is GStreamer 0.10.35 "Nuclear Fission" +This is GStreamer 0.10.36 "Harder" + +Changes since 0.10.35: + + * bin: Don't interpret pipelines without sink elements as always being in EOS state + * bin: Only post EOS messages after reaching the PLAYING state + * buffer: add set/get_qdata() to attach arbitrary metadata to buffers + * caps, structure, gstvalue: some optimisations and improvements + * miniobject: add weak referencing functionality + * gstobject: make gst_object_replace() atomic + * pad: Only do the subset check in gst_pad_accept_caps() if the pad claims to accept the caps + * pad: make public some ghostpad/proxypad API + * preset: allow applications to specify an extra preset directory with application-specific presets + * collectpads: add GstCollectPads2 API + * basebarse: new detect vfunc so subclassed can do some format detection first + * baseparse: new get_sink_caps vfunc so downstream caps restrictions can be propagated upstream + * baseparse: answer position query in stream time and try upstream first + * baseparse: send duration message when updating internal duration + * baseparse: make baseparse-based elements is reusable + * baseparse: provide latency query support + * basesink: don't compensate for render-delay twice + * basesink: try harder to arrange increasing position reporting + * basesrc: allow for the size to change dynamically + * basetransform: add query vfunc + * basetransform: caps negotiation improvements + * basetransform: delay serialized events when src caps are not set yet + * filesrc: do not mistake short reads for EOS + * filesrc/fdsrc: indicate dynamic size handling to basesrc + * inputselector: add sync mode that syncs inactive pads to the running time of the active pad + * queue2: add bufferlist support + * queue2: adjust input data rate estimation + * multiqueue: add mode to synchronize deactivated/not-linked streams by the running time + * multiqueue: check filled state of queues even if another one is empty + * outputselector: don't send last segment/buffer when no segment was configured yet + * tools: teach gst-launch about missing-plugin messages + * tools: make unversioned wrapper look for -0.10 tools only + +Bugs fixed since 0.10.35: + + * 647940 : [basesrc] - fails to send updated segment event when duration changes + * 662777 : Caps negotiation got a lot slow since the last release + * 647493 : Regression: gstbus: Not getting all messages posted on the bus + * 415754 : [API] GstCollectPads2; muxing sparse/subtitle streams + * 459466 : double memory usage for pluginfeature names + * 546570 : gst_caps_append/merge should not require caps2 to be writable + * 609473 : [miniobject] Add support for weak references + * 619844 : [basetransform] transform_caps can ignore pass-through + * 628021 : [baseaudiosink] position reporting not increasing + * 629300 : gstructure: New API for comparing structures + * 643269 : dot file flow direction + * 645017 : [inputselector] Add mode to drop buffers only after the active sinkpad's running time is after the current buffer + * 645107 : [multiqueue] Implement throttling based on stream's running time + * 647756 : [bin] Posting EOS message although not reached PLAYING yet + * 648025 : parse-launch: don't unescape inside quotes + * 650002 : 'No space left on device' message logged continuously, filling /home slice + * 650973 : check: add fail_unless_equals_int64 + * 652037 : basesrc: less persistent caching of size + * 652577 : basesink: s/if/is/ + * 653137 : Warnings in Gstreamer (core) with Clang compiler + * 653172 : Compilation fails when PR_SET_NAME is not defined in prctl.h + * 655155 : Build failure for gstcontroller.c -- (-Wall) assignment discards qualifiers from pointer target type + * 655204 : bad interaction between queue and adder + * 655381 : GstBitReader and GstByteReader functions missing out argument annotations + * 656193 : don't revalidate utf8 elementfactory metadata all the time + * 656265 : Fix compiler warnings reported by ICC + * 656557 : Add Farsight and Nice support to gst-uninstalled + * 657316 : capsfilter is racy when changing the caps during initial pipeline startup + * 657318 : basetranform dosn't allow query handlers to be overridden + * 657421 : Fix compiler warnings reported by ICC + * 658076 : setcaps function for ghost pads never called + * 658449 : Fix typos in docs and code comments + * 658517 : [ghostpad] Peer query does not work with empty GstPlaySinkVideoConvert + * 658518 : basesink: Backport query override support + * 658541 : [API change] caps negotiation failures + * 658918 : [pad] set caps on pad before checking for peer + * 659139 : gstpad: make some debug traces more useful + * 659571 : basetransform: delay events we cannot send right away + * 659606 : Remaining non-subset caps warnings + * 660083 : Fix mingw compiler warnings + * 660144 : [GstBaseParse] make start/stop methods optional + * 660165 : basetransform: send delayed events earlier + * 660760 : .prs presets needs to have a per-application option + * 660778 : multiqueue: check filled state of queues even if another one is empty + * 660955 : gst_type_register_static_full: guard against large instance sizes that don't fit into a guint16 + * 662091 : plugin loader: spawn new plugin loader helper after loading N plugins + * 662199 : [capsfilter] behavior has changed + * 662291 : basetransform: cache transformed caps where appropriate + * 662664 : API: add gst_element_class_add_static_pad_template() and fix template pad ref leaks + * 663333 : basetransfrom cache should be invalidated whenever there is any change in the peer caps + * 663643 : gstvalue: consider lists and ranges equal if they hold the same set + * 664221 : [baseparse] ::sink_get_caps() vfunc breaks API/ABI + * 664720 : API: add gst_buffer_{set,get}_qdata() + * 665921 : filesrc: Incorrect EOF detection in create_read + * 666174 : [basetransform] causes segfaults because gst_pad_alloc_buffer_and_set_caps return a buffer with a size of 0 + * 667284 : registry: add missing #ifndef guard + * 667286 : gstpoll: Include correct poll.h based on autoconf test + * 667288 : plugins: Explicitly cast initialization values to the correct type. + * 667290 : tools: Include locale.h before any i18n headers. + * 667298 : basesink: don't compensate for render-delay twice + * 667444 : baseparse: clear adapter in reset so no old data is read when re-using elements + * 668289 : regression: playbin2: repeat mode only repeats twice in totem + * 668764 : collectpads2: move private stuff into private struct + * 669036 : Missing include in gstpreset.h causes build error + * 669502 : [baseparse] duration msg spam when upstream knows avg bitrate + +API additions since 0.10.35: + + * gst_base_parse_set_latency() + * GstBaseParse::detect + * GstBaseParse::get_sink_caps + * gst_base_src_set_dynamic_size() + * GstBaseTransform::query + * gst_collect_pads2_add_pad() + * gst_collect_pads2_add_pad_full() + * gst_collect_pads2_available() + * gst_collect_pads2()_collect + * gst_collect_pads2_collect_range() + * gst_collect_pads2_flush() + * gst_collect_pads2_get_type() + * gst_collect_pads2_is_active() + * gst_collect_pads2_new() + * gst_collect_pads2_peek() + * gst_collect_pads2_pop() + * gst_collect_pads2_read() + * gst_collect_pads2_read_buffer() + * gst_collect_pads2_remove_pad() + * gst_collect_pads2_set_buffer_function() + * gst_collect_pads2_set_clip_function() + * gst_collect_pads2_set_compare_function() + * gst_collect_pads2_set_event_function() + * gst_collect_pads2_set_flushing() + * gst_collect_pads2_set_function() + * gst_collect_pads2_set_waiting() + * gst_collect_pads2_start() + * gst_collect_pads2_stop() + * gst_collect_pads2_take_buffer() + * gst_buffer_get_qdata() + * gst_buffer_set_qdata() + * gst_caps_is_strictly_equal() + * gst_caps_is_subset_structure + * gst_element_class_add_static_pad_template() + * GstElement::state_changed + * gst_ghost_pad_activate_pull_default() + * gst_ghost_pad_activate_push_default() + * gst_ghost_pad_internal_activate_pull_default() + * gst_ghost_pad_internal_activate_push_default() + * gst_ghost_pad_link_default() + * gst_ghost_pad_setcaps_default() + * gst_ghost_pad_unlink_default() + * gst_mini_object_weak_ref() + * gst_mini_object_weak_unref() + * gst_preset_get_app_dir() + * gst_preset_set_app_dir() + * gst_proxy_pad_acceptcaps_default() + * gst_proxy_pad_bufferalloc_default() + * gst_proxy_pad_chain_default() + * gst_proxy_pad_chain_list_default() + * gst_proxy_pad_checkgetrange_default() + * gst_proxy_pad_event_default() + * gst_proxy_pad_fixatecaps_default() + * gst_proxy_pad_get_internal() + * gst_proxy_pad_getcaps_default() + * gst_proxy_pad_getrange_default() + * gst_proxy_pad_iterate_internal_links_default() + * gst_proxy_pad_query_default() + * gst_proxy_pad_query_type_default() + * gst_proxy_pad_setcaps_default() + * gst_proxy_pad_unlink_default() + * gst_structure_can_intersect() + * gst_structure_intersect() + * gst_structure_is_equal() + * gst_structure_is_subset() + * gst_tag_list_is_equal() + * gst_tag_list_new_from_string() + * gst_tag_list_to_string() + * fail_unless_equals_int64() + +API deprecations since 0.10.35: + + * gst_plugin_feature_type_name_filter() + * GstTypeNameData + * gst_filter_run() + * GstFilterFunc Changes since 0.10.34: diff --git a/RELEASE b/RELEASE index f08961779a..5cb2591685 100644 --- a/RELEASE +++ b/RELEASE @@ -1,5 +1,5 @@ -Release notes for GStreamer 0.10.35 "Nuclear Fission" +Release notes for GStreamer 0.10.36 "Harder" @@ -37,13 +37,186 @@ contains a set of less supported plug-ins that haven't passed the Features of this release - * work around GLib atomic ops API change - * some minor win32/mingw fixes - * don't use G_CONST_RETURN in public headers + * bin: Don't interpret pipelines without sink elements as always being in EOS state + * bin: Only post EOS messages after reaching the PLAYING state + * buffer: add set/get_qdata() to attach arbitrary metadata to buffers + * caps, structure, gstvalue: some optimisations and improvements + * miniobject: add weak referencing functionality + * gstobject: make gst_object_replace() atomic + * pad: Only do the subset check in gst_pad_accept_caps() if the pad claims to accept the caps + * pad: make public some ghostpad/proxypad API + * preset: allow applications to specify an extra preset directory with application-specific presets + * collectpads: add GstCollectPads2 API + * basebarse: new detect vfunc so subclassed can do some format detection first + * baseparse: new get_sink_caps vfunc so downstream caps restrictions can be propagated upstream + * baseparse: answer position query in stream time and try upstream first + * baseparse: send duration message when updating internal duration + * baseparse: make baseparse-based elements is reusable + * baseparse: provide latency query support + * basesink: don't compensate for render-delay twice + * basesink: try harder to arrange increasing position reporting + * basesrc: allow for the size to change dynamically + * basetransform: add query vfunc + * basetransform: caps negotiation improvements + * basetransform: delay serialized events when src caps are not set yet + * filesrc: do not mistake short reads for EOS + * filesrc/fdsrc: indicate dynamic size handling to basesrc + * inputselector: add sync mode that syncs inactive pads to the running time of the active pad + * queue2: add bufferlist support + * queue2: adjust input data rate estimation + * multiqueue: add mode to synchronize deactivated/not-linked streams by the running time + * multiqueue: check filled state of queues even if another one is empty + * outputselector: don't send last segment/buffer when no segment was configured yet + * tools: teach gst-launch about missing-plugin messages + * tools: make unversioned wrapper look for -0.10 tools only Bugs fixed in this release - * 652211 : Use const instead G_CONST_RETURN + * 647940 : [basesrc] - fails to send updated segment event when duration changes + * 662777 : Caps negotiation got a lot slow since the last release + * 647493 : Regression: gstbus: Not getting all messages posted on the bus + * 415754 : [API] GstCollectPads2; muxing sparse/subtitle streams + * 459466 : double memory usage for pluginfeature names + * 546570 : gst_caps_append/merge should not require caps2 to be writable + * 609473 : [miniobject] Add support for weak references + * 619844 : [basetransform] transform_caps can ignore pass-through + * 628021 : [baseaudiosink] position reporting not increasing + * 629300 : gstructure: New API for comparing structures + * 643269 : dot file flow direction + * 645017 : [inputselector] Add mode to drop buffers only after the active sinkpad's running time is after the current buffer + * 645107 : [multiqueue] Implement throttling based on stream's running time + * 647756 : [bin] Posting EOS message although not reached PLAYING yet + * 648025 : parse-launch: don't unescape inside quotes + * 650002 : 'No space left on device' message logged continuously, filling /home slice + * 650973 : check: add fail_unless_equals_int64 + * 652037 : basesrc: less persistent caching of size + * 652577 : basesink: s/if/is/ + * 653137 : Warnings in Gstreamer (core) with Clang compiler + * 653172 : Compilation fails when PR_SET_NAME is not defined in prctl.h + * 655155 : Build failure for gstcontroller.c -- (-Wall) assignment discards qualifiers from pointer target type + * 655204 : bad interaction between queue and adder + * 655381 : GstBitReader and GstByteReader functions missing out argument annotations + * 656193 : don't revalidate utf8 elementfactory metadata all the time + * 656265 : Fix compiler warnings reported by ICC + * 656557 : Add Farsight and Nice support to gst-uninstalled + * 657316 : capsfilter is racy when changing the caps during initial pipeline startup + * 657318 : basetranform dosn't allow query handlers to be overridden + * 657421 : Fix compiler warnings reported by ICC + * 658076 : setcaps function for ghost pads never called + * 658449 : Fix typos in docs and code comments + * 658517 : [ghostpad] Peer query does not work with empty GstPlaySinkVideoConvert + * 658518 : basesink: Backport query override support + * 658541 : [API change] caps negotiation failures + * 658918 : [pad] set caps on pad before checking for peer + * 659139 : gstpad: make some debug traces more useful + * 659571 : basetransform: delay events we cannot send right away + * 659606 : Remaining non-subset caps warnings + * 660083 : Fix mingw compiler warnings + * 660144 : [GstBaseParse] make start/stop methods optional + * 660165 : basetransform: send delayed events earlier + * 660760 : .prs presets needs to have a per-application option + * 660778 : multiqueue: check filled state of queues even if another one is empty + * 660955 : gst_type_register_static_full: guard against large instance sizes that don't fit into a guint16 + * 662091 : plugin loader: spawn new plugin loader helper after loading N plugins + * 662199 : [capsfilter] behavior has changed + * 662291 : basetransform: cache transformed caps where appropriate + * 662664 : API: add gst_element_class_add_static_pad_template() and fix template pad ref leaks + * 663333 : basetransfrom cache should be invalidated whenever there is any change in the peer caps + * 663643 : gstvalue: consider lists and ranges equal if they hold the same set + * 664221 : [baseparse] ::sink_get_caps() vfunc breaks API/ABI + * 664720 : API: add gst_buffer_{set,get}_qdata() + * 665921 : filesrc: Incorrect EOF detection in create_read + * 666174 : [basetransform] causes segfaults because gst_pad_alloc_buffer_and_set_caps return a buffer with a size of 0 + * 667284 : registry: add missing #ifndef guard + * 667286 : gstpoll: Include correct poll.h based on autoconf test + * 667288 : plugins: Explicitly cast initialization values to the correct type. + * 667290 : tools: Include locale.h before any i18n headers. + * 667298 : basesink: don't compensate for render-delay twice + * 667444 : baseparse: clear adapter in reset so no old data is read when re-using elements + * 668289 : regression: playbin2: repeat mode only repeats twice in totem + * 668764 : collectpads2: move private stuff into private struct + * 669036 : Missing include in gstpreset.h causes build error + * 669502 : [baseparse] duration msg spam when upstream knows avg bitrate + +API changed in this release + +- API additions: + + * gst_base_parse_set_latency() + * GstBaseParse::detect + * GstBaseParse::get_sink_caps + * gst_base_src_set_dynamic_size() + * GstBaseTransform::query + * gst_collect_pads2_add_pad() + * gst_collect_pads2_add_pad_full() + * gst_collect_pads2_available() + * gst_collect_pads2()_collect + * gst_collect_pads2_collect_range() + * gst_collect_pads2_flush() + * gst_collect_pads2_get_type() + * gst_collect_pads2_is_active() + * gst_collect_pads2_new() + * gst_collect_pads2_peek() + * gst_collect_pads2_pop() + * gst_collect_pads2_read() + * gst_collect_pads2_read_buffer() + * gst_collect_pads2_remove_pad() + * gst_collect_pads2_set_buffer_function() + * gst_collect_pads2_set_clip_function() + * gst_collect_pads2_set_compare_function() + * gst_collect_pads2_set_event_function() + * gst_collect_pads2_set_flushing() + * gst_collect_pads2_set_function() + * gst_collect_pads2_set_waiting() + * gst_collect_pads2_start() + * gst_collect_pads2_stop() + * gst_collect_pads2_take_buffer() + * gst_buffer_get_qdata() + * gst_buffer_set_qdata() + * gst_caps_is_strictly_equal() + * gst_caps_is_subset_structure + * gst_element_class_add_static_pad_template() + * GstElement::state_changed + * gst_ghost_pad_activate_pull_default() + * gst_ghost_pad_activate_push_default() + * gst_ghost_pad_internal_activate_pull_default() + * gst_ghost_pad_internal_activate_push_default() + * gst_ghost_pad_link_default() + * gst_ghost_pad_setcaps_default() + * gst_ghost_pad_unlink_default() + * gst_mini_object_weak_ref() + * gst_mini_object_weak_unref() + * gst_preset_get_app_dir() + * gst_preset_set_app_dir() + * gst_proxy_pad_acceptcaps_default() + * gst_proxy_pad_bufferalloc_default() + * gst_proxy_pad_chain_default() + * gst_proxy_pad_chain_list_default() + * gst_proxy_pad_checkgetrange_default() + * gst_proxy_pad_event_default() + * gst_proxy_pad_fixatecaps_default() + * gst_proxy_pad_get_internal() + * gst_proxy_pad_getcaps_default() + * gst_proxy_pad_getrange_default() + * gst_proxy_pad_iterate_internal_links_default() + * gst_proxy_pad_query_default() + * gst_proxy_pad_query_type_default() + * gst_proxy_pad_setcaps_default() + * gst_proxy_pad_unlink_default() + * gst_structure_can_intersect() + * gst_structure_intersect() + * gst_structure_is_equal() + * gst_structure_is_subset() + * gst_tag_list_is_equal() + * gst_tag_list_new_from_string() + * gst_tag_list_to_string() + * fail_unless_equals_int64() +- API deprecations: + + * gst_plugin_feature_type_name_filter() + * GstTypeNameData + * gst_filter_run() + * GstFilterFunc Download @@ -77,7 +250,36 @@ Let us know if you want to be added to this list. Contributors to this release + * Antoine Tremblay * David Schleef - * Javier Jardón - * Руслан Ижбулатов + * Edward Hervey + * Emmanuel Pacaud + * Evan Nemerson + * Fabrizio (Misto) Milo + * Guillaume Desmottes + * Havard Graff + * Idar Tollefsen + * Jan Schmidt + * Josep Torra + * João Paulo Pizani Flor + * Mark Nauwelaerts + * Nicolas Dufresne + * Peteris Krisjanis + * Philip Jägenstedt + * Piotr Fusik + * Raimo Järvi + * Raluca Elena Podiuc + * René Stadler + * Reynaldo H. Verdejo Pinochet + * Robert Swain + * Sebastian Dröge + * Shaun Hoopes + * Sjoerd Simons + * Stas Sergeev + * Stefan Kost + * Stefan Sauer + * Thiago Santos + * Tim-Philipp Müller + * Vincent Penquerc'h + * Wim Taymans   \ No newline at end of file From c25b8e153d4515b42f9e522de8655460d5cde1dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 24 Feb 2012 23:19:51 +0000 Subject: [PATCH 04/12] registry: don't forget to clean up registry temp file in another error case Also clean up temp file if we get an error during write() rather than just when doing fsync() or close(). --- gst/gstregistrybinary.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gst/gstregistrybinary.c b/gst/gstregistrybinary.c index 1a588378c8..7cd148e8ee 100644 --- a/gst/gstregistrybinary.c +++ b/gst/gstregistrybinary.c @@ -245,12 +245,13 @@ gst_registry_binary_cache_finish (BinaryRegistryCache * cache, gboolean success) if (close (cache->cache_fd) < 0) goto close_failed; - if (success) { - /* Only do the rename if we wrote the entire file successfully */ - if (g_rename (cache->tmp_location, cache->location) < 0) { - GST_ERROR ("g_rename() failed: %s", g_strerror (errno)); - goto rename_failed; - } + if (!success) + goto fail_after_close; + + /* Only do the rename if we wrote the entire file successfully */ + if (g_rename (cache->tmp_location, cache->location) < 0) { + GST_ERROR ("g_rename() failed: %s", g_strerror (errno)); + goto rename_failed; } g_free (cache->tmp_location); From 031514faebdcaeb05e6c6625d6152f122af1ed6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 24 Feb 2012 23:39:30 +0000 Subject: [PATCH 05/12] registry: fix lseek() return code handling lseek() returns the offset if successful, and this is != 0 and does not indicate an error. And if it does actually fail, don't return FALSE (0) as an int, but -1. None of these things are likely to have made a difference, ever. I don't think the offset seek can ever actually happen, the current file position and the current offset should always be increased in lock step, unless there was an error in which case we'd just error out. --- gst/gstregistrybinary.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gst/gstregistrybinary.c b/gst/gstregistrybinary.c index 7cd148e8ee..584806614f 100644 --- a/gst/gstregistrybinary.c +++ b/gst/gstregistrybinary.c @@ -219,10 +219,11 @@ gst_registry_binary_cache_write (BinaryRegistryCache * cache, { long written; if (offset != cache->currentoffset) { - if (lseek (cache->cache_fd, offset, SEEK_SET) != 0) { - GST_ERROR ("Seeking to new offset failed"); - return FALSE; + if (lseek (cache->cache_fd, offset, SEEK_SET) < 0) { + GST_ERROR ("Seeking to new offset failed: %s", g_strerror (errno)); + return -1; } + GST_LOG ("Seeked from offset %lu to %lu", offset, cache->currentoffset); cache->currentoffset = offset; } From c5b335a0e21410021e9a6fc51ecacfd4ba256aab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 25 Feb 2012 15:07:05 +0000 Subject: [PATCH 06/12] fakesink: answer SEEKING query We don't do seeking, in case anyone wants to know. --- plugins/elements/gstfakesink.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/plugins/elements/gstfakesink.c b/plugins/elements/gstfakesink.c index 202d07b861..93dbd46c74 100644 --- a/plugins/elements/gstfakesink.c +++ b/plugins/elements/gstfakesink.c @@ -131,6 +131,7 @@ static GstFlowReturn gst_fake_sink_preroll (GstBaseSink * bsink, static GstFlowReturn gst_fake_sink_render (GstBaseSink * bsink, GstBuffer * buffer); static gboolean gst_fake_sink_event (GstBaseSink * bsink, GstEvent * event); +static gboolean gst_fake_sink_query (GstBaseSink * bsink, GstQuery * query); static guint gst_fake_sink_signals[LAST_SIGNAL] = { 0 }; @@ -266,6 +267,7 @@ gst_fake_sink_class_init (GstFakeSinkClass * klass) gstbase_sink_class->event = GST_DEBUG_FUNCPTR (gst_fake_sink_event); gstbase_sink_class->preroll = GST_DEBUG_FUNCPTR (gst_fake_sink_preroll); gstbase_sink_class->render = GST_DEBUG_FUNCPTR (gst_fake_sink_render); + gstbase_sink_class->query = GST_DEBUG_FUNCPTR (gst_fake_sink_query); } static void @@ -554,6 +556,29 @@ eos: } } +static gboolean +gst_fake_sink_query (GstBaseSink * bsink, GstQuery * query) +{ + gboolean ret; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_SEEKING:{ + GstFormat fmt; + + /* we don't supporting seeking */ + gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); + gst_query_set_seeking (query, fmt, FALSE, 0, -1); + ret = TRUE; + break; + } + default: + ret = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query); + break; + } + + return ret; +} + static GstStateChangeReturn gst_fake_sink_change_state (GstElement * element, GstStateChange transition) { From 82a954438529a23e0d8a995196f7cb4036c99341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 25 Feb 2012 15:07:43 +0000 Subject: [PATCH 07/12] filesink: implement SEEKING query We may or may not do seeking, depends on the output file/device really, it doesn't have to be a file after all. --- plugins/elements/gstfilesink.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugins/elements/gstfilesink.c b/plugins/elements/gstfilesink.c index 9356c0f692..543dbfe334 100644 --- a/plugins/elements/gstfilesink.c +++ b/plugins/elements/gstfilesink.c @@ -495,6 +495,16 @@ gst_file_sink_query (GstBaseSink * bsink, GstQuery * query) res = TRUE; break; + case GST_QUERY_SEEKING: + gst_query_parse_seeking (query, &format, NULL, NULL, NULL); + if (format == GST_FORMAT_BYTES || format == GST_FORMAT_DEFAULT) { + gst_query_set_seeking (query, GST_FORMAT_BYTES, self->seekable, 0, -1); + } else { + gst_query_set_seeking (query, format, FALSE, 0, -1); + } + res = TRUE; + break; + default: res = GST_BASE_SINK_CLASS (parent_class)->query (bsink, query); break; From 965c610028c17530e86d1430971e59c7f76c725a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 25 Feb 2012 15:08:55 +0000 Subject: [PATCH 08/12] fdsink: implement SEEKING query We may or may not support seeking. stdout to a terminal doesn't support seeking, for example, but ... ! fdsink > file.foo just might. --- plugins/elements/gstfdsink.c | 13 +++++++++++++ plugins/elements/gstfdsink.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/plugins/elements/gstfdsink.c b/plugins/elements/gstfdsink.c index 6383d2a99c..80e1f301ee 100644 --- a/plugins/elements/gstfdsink.c +++ b/plugins/elements/gstfdsink.c @@ -222,6 +222,16 @@ gst_fd_sink_query (GstPad * pad, GstQuery * query) gst_query_set_uri (query, fdsink->uri); return TRUE; + case GST_QUERY_SEEKING: + gst_query_parse_seeking (query, &format, NULL, NULL, NULL); + if (format == GST_FORMAT_BYTES || format == GST_FORMAT_DEFAULT) { + gst_query_set_seeking (query, GST_FORMAT_BYTES, fdsink->seekable, 0, + -1); + } else { + gst_query_set_seeking (query, format, FALSE, 0, -1); + } + return TRUE; + default: return gst_pad_query_default (pad, query); } @@ -384,6 +394,9 @@ gst_fd_sink_start (GstBaseSink * basesink) fdsink->bytes_written = 0; fdsink->current_pos = 0; + fdsink->seekable = gst_fd_sink_do_seek (fdsink, 0); + GST_INFO_OBJECT (fdsink, "seeking supported: %d", fdsink->seekable); + return TRUE; /* ERRORS */ diff --git a/plugins/elements/gstfdsink.h b/plugins/elements/gstfdsink.h index 90913b4d5b..59393d0247 100644 --- a/plugins/elements/gstfdsink.h +++ b/plugins/elements/gstfdsink.h @@ -59,6 +59,8 @@ struct _GstFdSink { int fd; guint64 bytes_written; guint64 current_pos; + + gboolean seekable; }; struct _GstFdSinkClass { From 4594e4311d7016d51999d952fd3e8b7d1bffa2b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 25 Feb 2012 15:18:00 +0000 Subject: [PATCH 09/12] fdsink: implement GstBaseSink::query instead of messing with the pad --- plugins/elements/gstfdsink.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/plugins/elements/gstfdsink.c b/plugins/elements/gstfdsink.c index 80e1f301ee..7667088d97 100644 --- a/plugins/elements/gstfdsink.c +++ b/plugins/elements/gstfdsink.c @@ -118,7 +118,7 @@ static void gst_fd_sink_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec); static void gst_fd_sink_dispose (GObject * obj); -static gboolean gst_fd_sink_query (GstPad * pad, GstQuery * query); +static gboolean gst_fd_sink_query (GstBaseSink * bsink, GstQuery * query); static GstFlowReturn gst_fd_sink_render (GstBaseSink * sink, GstBuffer * buffer); static gboolean gst_fd_sink_start (GstBaseSink * basesink); @@ -161,6 +161,7 @@ gst_fd_sink_class_init (GstFdSinkClass * klass) gstbasesink_class->unlock = GST_DEBUG_FUNCPTR (gst_fd_sink_unlock); gstbasesink_class->unlock_stop = GST_DEBUG_FUNCPTR (gst_fd_sink_unlock_stop); gstbasesink_class->event = GST_DEBUG_FUNCPTR (gst_fd_sink_event); + gstbasesink_class->query = GST_DEBUG_FUNCPTR (gst_fd_sink_query); g_object_class_install_property (gobject_class, ARG_FD, g_param_spec_int ("fd", "fd", "An open file descriptor to write to", @@ -170,11 +171,6 @@ gst_fd_sink_class_init (GstFdSinkClass * klass) static void gst_fd_sink_init (GstFdSink * fdsink, GstFdSinkClass * klass) { - GstPad *pad; - - pad = GST_BASE_SINK_PAD (fdsink); - gst_pad_set_query_function (pad, GST_DEBUG_FUNCPTR (gst_fd_sink_query)); - fdsink->fd = 1; fdsink->uri = g_strdup_printf ("fd://%d", fdsink->fd); fdsink->bytes_written = 0; @@ -195,12 +191,12 @@ gst_fd_sink_dispose (GObject * obj) } static gboolean -gst_fd_sink_query (GstPad * pad, GstQuery * query) +gst_fd_sink_query (GstBaseSink * bsink, GstQuery * query) { GstFdSink *fdsink; GstFormat format; - fdsink = GST_FD_SINK (GST_PAD_PARENT (pad)); + fdsink = GST_FD_SINK (bsink); switch (GST_QUERY_TYPE (query)) { case GST_QUERY_POSITION: @@ -233,7 +229,7 @@ gst_fd_sink_query (GstPad * pad, GstQuery * query) return TRUE; default: - return gst_pad_query_default (pad, query); + return GST_BASE_SINK_CLASS (parent_class)->query (bsink, query); } } From b9a6b3fc6ecb0a349f34bcb0684068840a8fe97d Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Sun, 26 Feb 2012 22:57:02 +0100 Subject: [PATCH 10/12] collectpads2: move "MT save" tags to doc body It is not useful to have "MT safe" tags randomly in body, returns or since paragraphs. --- libs/gst/base/gstcollectpads2.c | 57 ++++++++++++++++----------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/libs/gst/base/gstcollectpads2.c b/libs/gst/base/gstcollectpads2.c index 4d03f7c1da..76374418fb 100644 --- a/libs/gst/base/gstcollectpads2.c +++ b/libs/gst/base/gstcollectpads2.c @@ -278,10 +278,10 @@ gst_collect_pads2_finalize (GObject * object) * * Create a new instance of #GstCollectsPads. * - * Returns: a new #GstCollectPads2, or NULL in case of an error. - * * MT safe. * + * Returns: a new #GstCollectPads2, or NULL in case of an error. + * * Since: 0.10.36 */ GstCollectPads2 * @@ -533,11 +533,11 @@ gst_collect_pads2_set_clip_function (GstCollectPads2 * pads, * This function calls gst_collect_pads2_add_pad() passing a value of NULL * for destroy_notify and TRUE for locked. * + * MT safe. + * * Returns: a new #GstCollectData2 to identify the new pad. Or NULL * if wrong parameters are supplied. * - * MT safe. - * * Since: 0.10.36 */ GstCollectData2 * @@ -579,12 +579,12 @@ gst_collect_pads2_add_pad (GstCollectPads2 * pads, GstPad * pad, guint size) * The pad will be automatically activated in push mode when @pads is * started. * + * MT safe. + * * Since: 0.10.36 * * Returns: a new #GstCollectData2 to identify the new pad. Or NULL * if wrong parameters are supplied. - * - * MT safe. */ GstCollectData2 * gst_collect_pads2_add_pad_full (GstCollectPads2 * pads, GstPad * pad, @@ -655,10 +655,10 @@ find_pad (GstCollectData2 * data, GstPad * pad) * * The pad will be deactivated automatically when @pads is stopped. * - * Returns: %TRUE if the pad could be removed. - * * MT safe. * + * Returns: %TRUE if the pad could be removed. + * * Since: 0.10.36 */ gboolean @@ -742,10 +742,10 @@ unknown_pad: * * This function is currently not implemented. * - * Returns: %TRUE if the pad is active. - * * MT safe. * + * Returns: %TRUE if the pad is active. + * * Since: 0.10.36 */ gboolean @@ -770,10 +770,10 @@ gst_collect_pads2_is_active (GstCollectPads2 * pads, GstPad * pad) * * This function is currently not implemented. * - * Returns: #GstFlowReturn of the operation. - * * MT safe. * + * Returns: #GstFlowReturn of the operation. + * * Since: 0.10.36 */ GstFlowReturn @@ -798,10 +798,10 @@ gst_collect_pads2_collect (GstCollectPads2 * pads) * * This function is currently not implemented. * - * Returns: #GstFlowReturn of the operation. - * * MT safe. * + * Returns: #GstFlowReturn of the operation. + * * Since: 0.10.36 */ GstFlowReturn @@ -861,7 +861,6 @@ gst_collect_pads2_set_flushing_unlocked (GstCollectPads2 * pads, * * MT safe. * - * * Since: 0.10.36 */ void @@ -988,11 +987,11 @@ gst_collect_pads2_stop (GstCollectPads2 * pads) * should be called with the @pads STREAM_LOCK held, such as in the callback * handler. * + * MT safe. + * * Returns: The buffer in @data or NULL if no buffer is queued. * should unref the buffer after usage. * - * MT safe. - * * Since: 0.10.36 */ GstBuffer * @@ -1022,11 +1021,11 @@ gst_collect_pads2_peek (GstCollectPads2 * pads, GstCollectData2 * data) * should be called with the @pads STREAM_LOCK held, such as in the callback * handler. * + * MT safe. + * * Returns: The buffer in @data or NULL if no buffer was queued. * You should unref the buffer after usage. * - * MT safe. - * * Since: 0.10.36 */ GstBuffer * @@ -1076,11 +1075,11 @@ gst_collect_pads2_clear (GstCollectPads2 * pads, GstCollectData2 * data) * This function should be called with @pads STREAM_LOCK held, such as * in the callback. * + * MT safe. + * * Returns: The maximum number of bytes queued on all pads. This function * returns 0 if a pad has no queued buffer. * - * MT safe. - * * Since: 0.10.36 */ /* we might pre-calculate this in some struct field, @@ -1149,12 +1148,12 @@ not_filled: * This function should be called with @pads STREAM_LOCK held, such as * in the callback. * + * MT safe. + * * Returns: The number of bytes available for consumption in the * memory pointed to by @bytes. This can be less than @size and * is 0 if the pad is end-of-stream. * - * MT safe. - * * Since: 0.10.36 */ guint @@ -1191,11 +1190,11 @@ gst_collect_pads2_read (GstCollectPads2 * pads, GstCollectData2 * data, * This function should be called with @pads STREAM_LOCK held, such as * in the callback. * + * MT safe. + * * Returns: The number of bytes flushed This can be less than @size and * is 0 if the pad was end-of-stream. * - * MT safe. - * * Since: 0.10.36 */ guint @@ -1236,13 +1235,13 @@ gst_collect_pads2_flush (GstCollectPads2 * pads, GstCollectData2 * data, * This function should be called with @pads STREAM_LOCK held, such as in the * callback. * + * MT safe. + * * Since: 0.10.36 * * Returns: A sub buffer. The size of the buffer can be less that requested. * A return of NULL signals that the pad is end-of-stream. * Unref the buffer after use. - * - * MT safe. */ GstBuffer * gst_collect_pads2_read_buffer (GstCollectPads2 * pads, GstCollectData2 * data, @@ -1276,13 +1275,13 @@ gst_collect_pads2_read_buffer (GstCollectPads2 * pads, GstCollectData2 * data, * This function should be called with @pads STREAM_LOCK held, such as in the * callback. * + * MT safe. + * * Since: 0.10.36 * * Returns: A sub buffer. The size of the buffer can be less that requested. * A return of NULL signals that the pad is end-of-stream. * Unref the buffer after use. - * - * MT safe. */ GstBuffer * gst_collect_pads2_take_buffer (GstCollectPads2 * pads, GstCollectData2 * data, From 6045e0f58f6f6d44ba0c16469c0f54db88e078c3 Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Sun, 26 Feb 2012 23:10:58 +0100 Subject: [PATCH 11/12] docs: fix a typo in comment --- libs/gst/base/gstcollectpads.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c index 7fb0bf42bd..681102f7ad 100644 --- a/libs/gst/base/gstcollectpads.c +++ b/libs/gst/base/gstcollectpads.c @@ -806,7 +806,7 @@ gst_collect_pads_pop (GstCollectPads * pads, GstCollectData * data) } /* pop and unref the currently queued buffer, should e called with the LOCK - * helt. */ + * held. */ static void gst_collect_pads_clear (GstCollectPads * pads, GstCollectData * data) { From daa5cae78b35a6997f26949e72b8ecc2dde86ce1 Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Sun, 26 Feb 2012 23:11:23 +0100 Subject: [PATCH 12/12] collectpads2: rescue the annotation from collectpads --- libs/gst/base/gstcollectpads2.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libs/gst/base/gstcollectpads2.c b/libs/gst/base/gstcollectpads2.c index 76374418fb..fc051d454d 100644 --- a/libs/gst/base/gstcollectpads2.c +++ b/libs/gst/base/gstcollectpads2.c @@ -280,7 +280,7 @@ gst_collect_pads2_finalize (GObject * object) * * MT safe. * - * Returns: a new #GstCollectPads2, or NULL in case of an error. + * Returns: (transfer full): a new #GstCollectPads2, or NULL in case of an error. * * Since: 0.10.36 */ @@ -307,7 +307,7 @@ gst_collect_pads2_set_buffer_function_locked (GstCollectPads2 * pads, * gst_collect_pads2_set_buffer_function: * @pads: the collectpads to use * @func: the function to set - * @user_data: user data passed to the function + * @user_data: (closure): user data passed to the function * * Set the callback function and user data that will be called with * the oldest buffer when all pads have been collected. @@ -332,7 +332,7 @@ gst_collect_pads2_set_buffer_function (GstCollectPads2 * pads, * gst_collect_pads2_set_compare_function: * @pads: the pads to use * @func: the function to set - * @user_data: user data passed to the function + * @user_data: (closure): user data passed to the function * * Set the timestamp comparison function. * @@ -516,7 +516,7 @@ gst_collect_pads2_set_clip_function (GstCollectPads2 * pads, /** * gst_collect_pads2_add_pad: * @pads: the collectspads to use - * @pad: the pad to add + * @pad: (transfer none): the pad to add * @size: the size of the returned #GstCollectData2 structure * * Add a pad to the collection of collect pads. The pad has to be @@ -530,7 +530,7 @@ gst_collect_pads2_set_clip_function (GstCollectPads2 * pads, * The pad will be automatically activated in push mode when @pads is * started. * - * This function calls gst_collect_pads2_add_pad() passing a value of NULL + * This function calls gst_collect_pads2_add_pad_full() passing a value of NULL * for destroy_notify and TRUE for locked. * * MT safe. @@ -549,7 +549,7 @@ gst_collect_pads2_add_pad (GstCollectPads2 * pads, GstPad * pad, guint size) /** * gst_collect_pads2_add_pad_full: * @pads: the collectspads to use - * @pad: the pad to add + * @pad: (transfer none): the pad to add * @size: the size of the returned #GstCollectData2 structure * @destroy_notify: function to be called before the returned #GstCollectData2 * structure is freed @@ -647,7 +647,7 @@ find_pad (GstCollectData2 * data, GstPad * pad) /** * gst_collect_pads2_remove_pad: * @pads: the collectspads to use - * @pad: the pad to remove + * @pad: (transfer none): the pad to remove * * Remove a pad from the collection of collect pads. This function will also * free the #GstCollectData2 and all the resources that were allocated with @@ -1023,8 +1023,8 @@ gst_collect_pads2_peek (GstCollectPads2 * pads, GstCollectData2 * data) * * MT safe. * - * Returns: The buffer in @data or NULL if no buffer was queued. - * You should unref the buffer after usage. + * Returns: (transfer full): The buffer in @data or NULL if no buffer was + * queued. You should unref the buffer after usage. * * Since: 0.10.36 */ @@ -1139,7 +1139,7 @@ not_filled: * gst_collect_pads2_read: * @pads: the collectspads to query * @data: the data to use - * @bytes: a pointer to a byte array + * @bytes: (out) (transfer none) (array length=size): a pointer to a byte array * @size: the number of bytes to read * * Get a pointer in @bytes where @size bytes can be read from the @@ -1239,7 +1239,7 @@ gst_collect_pads2_flush (GstCollectPads2 * pads, GstCollectData2 * data, * * Since: 0.10.36 * - * Returns: A sub buffer. The size of the buffer can be less that requested. + * Returns: (transfer full): A sub buffer. The size of the buffer can be less that requested. * A return of NULL signals that the pad is end-of-stream. * Unref the buffer after use. */